Cómo escribir una serie de Taylor en Python

Una serie de Taylor es una representación de una función usando una suma infinita. Las computadoras a menudo hacen aproximaciones de los valores de una función trigonométrica, exponencial u otra función trascendental sumando un número finito de los términos de su serie de Taylor, y puedes recrear este proceso en Python. Los términos de la suma se basan en derivadas sucesivas de la función, por lo que deberás identificar un patrón en los valores de esas derivadas para escribir una fórmula para cada término de la serie. Luego, usa un ciclo para acumular la suma, controlando la precisión de tu aproximación con el número de iteraciones del ciclo.

Paso 1

Consulte la definición de la serie de Taylor para comprender cómo se puede calcular cada término. Cada término de la serie está indexado, normalmente por "n", y su valor está relacionado con la n-ésima derivada de la función que se representa. En aras de la simplicidad, utilice 0 para el valor de "a" en su primer intento. Esta versión especial de la serie de Taylor se denomina serie de Maclaurin. Pruebe la función seno, ya que sus derivadas sucesivas son fáciles de determinar.

Paso 2

Escriba varios valores de la n-ésima derivada de la función seno evaluada en 0. Si n es 0, el valor es 0. Si n es 1, el valor es 1. Si n es 2, el valor es 0. Si n es 3 , el valor es -1. A partir de aquí, el patrón se repite, así que ignore todos los términos pares indexados de la serie de Taylor, ya que se multiplican por 0. Una fórmula para cada término de la serie resultante es:

(-1)^n/(2n+1)!*x^(2n+1)

"2n+1" se usa en lugar de "n" para volver a indexar la serie, descartando efectivamente los términos indexados pares sin cambiar el índice en sí. El factor (-1)^n explica la alternancia entre positivo y negativo de términos sucesivos. Este trabajo matemático preliminar puede parecer extraño, pero el código de Python será mucho más fácil de escribir y reutilizar en otras series de Taylor si el índice siempre comienza en 0 y cuenta hacia arriba en incrementos de 1.

Paso 3

Abra el intérprete de Python. Comience escribiendo los siguientes comandos para definir varias variables:

suma =0 x =.5236

La variable "suma" se utilizará para acumular la suma de la serie de Taylor a medida que se calcula cada término. La variable "x" es el ángulo (en radianes) para el que desea aproximar la función seno. Configúralo como quieras.

Paso 4

Importe el módulo "matemáticas" con el siguiente comando para que tenga acceso a las funciones "pow" y "factorial":

importar matemáticas

Paso 5

Inicie un ciclo "for", configurando el número de iteraciones con la función "rango":

para n en el rango (4):

Esto hará que la variable de índice, n, comience en cero y cuente hasta 4. Incluso este pequeño número de iteraciones producirá un resultado sorprendentemente preciso. El ciclo no se ejecuta de inmediato y no comenzará hasta que haya especificado todo el bloque de código para iterar.

Paso 6

Escriba el siguiente comando para agregar el valor de cada término sucesivo a "suma:"

sum += math.pow(-1,n)/math.factorial(2*n+1)*math.pow(x,2*n+1)

Tenga en cuenta que el comando tiene una sangría con una tabulación, lo que le indica a Python que es parte del bucle "for". También tenga en cuenta cómo se usan "pow" y "factorial" en lugar de "^" y "!" notación. La fórmula a la derecha del operador de asignación "+=" es idéntica a la del Paso 2, pero escrita en sintaxis de Python.

Paso 7

Presiona "Enter" para agregar una línea en blanco. Para Python, esto indica la terminación del bucle "for", por lo que se ejecuta el cálculo. Escriba el comando "suma" para revelar el resultado. Si usó el valor de x dado en el Paso 3, el resultado es muy cercano a .5, el seno de pi/6. Intente el proceso nuevamente para diferentes valores de x y para diferentes números de iteraciones del ciclo, comparando sus resultados con la función "math.sin(x)". Ha implementado en Python el mismo proceso que utilizan muchas computadoras para calcular valores para el seno y otras funciones trascendentales.

Consejo

Aplica sangría y escribe el comando "sum" en la segunda línea del bucle "for" para obtener un total acumulado de la suma a medida que se ejecuta el código. Esto revela cómo cada término sucesivo de la serie acerca la suma cada vez más al valor real de la función.