Siente el cálculo con tu sentido de la programación

Publicado: 2021-07-08

Creo que las personas que pueden codificar tienen la capacidad de comprender conceptos más complicados que el cálculo. Una de las razones por las que hay muchos programadores talentosos que aún luchan con el cálculo no es que sea difícil. Es principalmente porque nos lo han enseñado de manera incorrecta (junto con muchos otros temas).

Si ha hecho algo de codificación en su vida, incluso algunos ejercicios de juguete como generar números primos, es posible que ya haya hecho cosas similares que suceden en el cálculo, pero nunca tuvo la oportunidad de relacionarse.

El objetivo de este escrito no es enseñarle cálculo ni programación, sino ayudarlo a conectar algunos puntos.

Llegaré a la parte de codificación en un minuto. Pero permítanme dar algunos antecedentes rápidos antes de eso.

Tasa de cambio

El cálculo diferencial habla de la "tasa de cambio". Tratemos de entender lo que eso significa.

Para un cambio en una variable (x), la tasa de cambio de una función es simplemente el cambio en la función dividido por el cambio en x. Vamos a visualizar con números reales:

Considere 2 puntos x=2 y x=6, y una función y=f(x) = x².

Además, considere dx = distancia entre estos 2 puntos en el eje x. Y dy es la distancia entre los valores de y para estos valores de x.

Entonces, la tasa de cambio en y de x=2 a x=6 es

Imagen de cálculo 01

Derivado

Ahora, la derivada dy/dx es la tasa de cambio en y para un cambio infinitesimalmente pequeño en x. Dado que esta distancia (6–2=4) no es infinitesimalmente pequeña, ni siquiera cercana, no podemos llamar derivada a la ecuación anterior. Entonces, elijamos un número más pequeño, 0.1, por ahora.

Cuando x = 0, y = x² = 0² = 0.

Vecino más cercano a la dirección positiva, x = 0.1. Allí y se convierte en 0,1² = 0,01.

Asi que,

Imagen de cálculo 02

Probemos una vez más. Vecino más cercano de 0.1 a la dirección positiva, x = 0.2. Entonces, y se convierte en 0.2² = 0.04. Asi que,

Imagen de cálculo 03

Si repetimos el proceso unas cuantas veces más, esto es lo que obtenemos:

Imagen de cálculo 04

Aquí está el archivo de Excel si desea jugar con él.

dx (que es nuestra distancia ficticia infinitesimalmente pequeña entre 2 puntos adyacentes en el eje x) es 0.1 en nuestro contexto.

x está aumentando en consecuencia.

y es simplemente x².

dy es la distancia entre 2 valores y adyacentes. Por ejemplo, cuando x= 0,1, la distancia entre la y actual (0,01) y la siguiente y (0,04) es 0,03, por lo que dy es 0,03 en x=0,1.

dy/dx es dy dividido por dx.

dy/dx / x es dy/dx dividido por x.

Ahora observe que, a medida que aumenta x, la última fila se acerca a 2, lo que significa que la tasa de cambio de x² con respecto a x se acerca al doble de x, que es 2x .

¿Recuerdas la derivada de x² con respecto a x? 2x! ¿Encontrando alguna conexión?

Tiempo de codificación

Probemos las cosas en código que hemos estado discutiendo hasta ahora.

Suponiendo que ya tiene Python instalado, en la terminal, ejecute:

pip instalar matplotlib

Después de eso, ejecute el siguiente código de Python:

Aquí:

x : que contiene números del 0 al 9.

y : otra matriz, cada elemento es el cuadrado del elemento x correspondiente

dy : Otra matriz inicializada con ceros. Pondremos distancias y en esta matriz.

dydx : Otra matriz inicializada con ceros. Contendrá el valor dy/dx de cada punto.

dx : Bastante obvio: es el tamaño del paso. Distancia entre 2 números consecutivos, que disminuye a medida que aumenta el TAMAÑO. Si TAMAÑO = 10, dx = 1. Si TAMAÑO = 100, dx = 0,1.

Primero, estamos derivando dy para cada punto. Luego calculamos dydx a partir de él.

Darse cuenta de:

Imagen de cálculo 05

Aquí estamos omitiendo los valores primero y último. El primer valor de x es 0, lo que producirá un error de división por cero. Y no podemos calcular el último valor de dy/dx ya que no tenemos el último valor de dy, porque requeriría junto al último valor disponible de y, que no tenemos aquí.

Si todo va bien, obtendrá este gráfico:

gráfico de cálculo

Lo que entiendes de la trama.

Como puede ver, el gráfico se acerca a 2. Aumente el valor de SIZE (lo que significa establecer un valor más bajo de dx) y verá cómo el gráfico se acerca más rápidamente a 2.

Segunda derivada

Ahora que has llegado hasta aquí, solo unos pocos pasos más para darte cuenta de la segunda derivada, que te dará la intuición para la derivada de cualquier orden.

Como recordarás, la segunda derivada es la tasa de cambio de la primera derivada con respecto a x. En pocas palabras, dy/dx en la segunda derivada es como y en la primera derivada.

Hagamos las siguientes modificaciones al código anterior:

Declarar 2 matrices más:

d2ydx2 : Que representará la segunda derivada:

Imagen de cálculo 06

distancia_dydx: para representar la distancia entre el valor dy/dx entre 2 puntos adyacentes

Aquí está el código completo para la segunda derivada:

Después de calcular dydx en el bucle for, ejecutamos otro bucle para calcular la segunda derivada. Con un poco de codificación sabia, podríamos calcular la segunda derivada en el mismo bucle (pruébelo como ejercicio), pero los mantuve separados aquí para mayor claridad.

Además, observe que:

Imagen de cálculo 07

Como hicimos en la primera derivada, aquí también estamos omitiendo algunos valores. Los últimos 2 valores se omiten ya que el penúltimo requeriría el último valor de la "primera derivada", que no pudimos calcular (ya que no teníamos el valor de y requerido, como se describió anteriormente). ¿Significa que tenemos que omitir los últimos 3 valores en el caso de la tercera derivada?

Aquí está el gráfico de salida:

Gráfico de cálculo 02

¿Qué vemos aquí?

Como sabes de la escuela secundaria:

Imagen de cálculo 08

Ahora, como puede ver en el código anterior, la segunda derivada en su mayoría permanece constante, y si continúa aumentando el TAMAÑO, ¡se acerca a 2!

Por qué es importante la tasa de cambio

Quizás te estés preguntando:

— ¿Por qué pasamos por todos estos problemas desagradables? ¿Qué información útil obtenemos de la tasa de cambio o derivada?

— ¿Por qué no podemos aceptar la tasa de cambio para cualquier cantidad? ¿Por qué solo infinitesimalmente pequeño? ¿Qué información obtenemos de la tasa de cambio con respecto a infinitesimalmente pequeños , que no se puede encontrar a partir de la tasa de cambio con respecto a valores más grandes?

— ¿Esta cosa infinitesimalmente pequeña parece un truco? Trabajamos bien con algunos números pequeños arriba, pero seguramente no infinitesimalmente pequeños.

Si me permito continuar, te irías viendo la extensión de este artículo y no habrías llegado tan lejos. Quizás abordemos esas preguntas algún otro día 😀.