>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Comment écrire une série de Taylor en Python

Une série de Taylor représente une fonction par une somme infinie. Les ordinateurs approximent souvent les valeurs de fonctions trigonométriques, exponentielles ou autres transcendantales en sommant un nombre fini de termes de leur série de Taylor. Vous pouvez recréer ce processus en Python. Les termes dépendent des dérivées successives de la fonction : identifiez un motif dans les valeurs de ces dérivées pour écrire une formule par terme. Puis utilisez une boucle pour accumuler la somme, contrôlant la précision par le nombre d'itérations.

Étape 1

Consultez la définition de la série de Taylor pour comprendre le calcul de chaque terme. Chaque terme est indexé par « n » et sa valeur relie à la n-ième dérivée de la fonction. Pour simplifier, utilisez 0 pour « a » : c'est la série de Maclaurin. Essayez la fonction sinus, ses dérivées successives étant faciles.

Étape 2

Notez plusieurs valeurs de la n-ième dérivée du sinus évaluée en 0. n=0 → 0 ; n=1 → 1 ; n=2 → 0 ; n=3 → -1. Le motif se répète : ignorez les termes d'indice pair (multipliés par 0). Formule pour chaque terme :

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

« 2n+1 » réindexe la série, éliminant les termes pairs sans changer l'indice. Le facteur (-1)^n gère l'alternance des signes. Ce travail mathématique préliminaire simplifiera grandement le code Python réutilisable pour d'autres séries.

Étape 3

Ouvrez l'interpréteur Python. Définissez des variables :

sum = 0
x = .5236

« sum » accumulera la somme. « x » est l'angle en radians pour approximer le sinus. Mettez ce que vous voulez.

Étape 4

Importez le module « math » pour accéder à « pow » et « factorial » :

import math

Étape 5

Lancez une boucle « for » avec « range » pour le nombre d'itérations :

for n in range(4):

L'index n commence à 0 et monte jusqu'à 4. Même ce petit nombre donne un résultat surprenant. La boucle n'exécute pas tant que le bloc complet n'est pas spécifié.

Étape 6

Ajoutez la valeur de chaque terme à « sum » :

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

La commande est indentée (tabulation), indiquant à Python qu'elle fait partie de la boucle. Notez l'utilisation de « pow » et « factorial » au lieu de « ^ » et « ! ». La formule à droite de « += » est identique à l'étape 2, en syntaxe Python.

Étape 7

Appuyez Entrée pour ligne vide. Pour Python, cela termine la boucle, le calcul s'exécute. Tapez « sum » pour voir le résultat. Avec x=0,5236 (π/6), le résultat est très proche de 0,5 (sinus de π/6). Réessayez avec d'autres x et nombres d'itérations, comparez avec « math.sin(x) ». Vous avez implémenté en Python le processus que beaucoup d'ordinateurs utilisent pour calculer sinus et autres fonctions transcendantales.

Astuce

Indentez et tapez « sum » sur la deuxième ligne de la boucle pour obtenir un total courant pendant l'exécution. Cela montre comment chaque terme rapproche la somme de la valeur réelle.

Vie connectée