Come scrivere una serie di Taylor in Python

Una serie di Taylor è una rappresentazione di una funzione che utilizza una somma infinita. I computer spesso fanno approssimazioni dei valori di un trigonometrico, esponenziale o altro trascendentale funzione sommando un numero finito dei termini della sua serie di Taylor, e puoi ricreare questo processo in Pitone. I termini della somma si basano su successive derivate della funzione, quindi dovrai identificare uno schema nei valori di tali derivate per scrivere una formula per ogni termine della serie. Quindi, usa un ciclo per accumulare la somma, controllando l'accuratezza della tua approssimazione con il numero di iterazioni del ciclo.

Passo 1

Consultare la definizione della serie di Taylor per capire come può essere calcolato ciascun termine. Ogni termine della serie è indicizzato, tipicamente da "n", e il suo valore è correlato alla derivata n-esima della funzione rappresentata. Per semplicità, usa 0 per il valore di "a" al tuo primo tentativo. Questa versione speciale della serie Taylor è chiamata serie Maclaurin. Prova la funzione seno, poiché le sue derivate successive sono facili da determinare.

Video del giorno

Passo 2

Annota diversi valori della derivata n-esima della funzione seno valutata a 0. Se n è 0, il valore è 0. Se n è 1, il valore è 1. Se n è 2, il valore è 0. Se n è 3, il valore è -1. Da qui, lo schema si ripete, quindi ignora ogni termine con indice pari della serie di Taylor poiché è moltiplicato per 0. Una formula per ogni termine della serie risultante è:

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

"2n+1" viene utilizzato al posto di "n" per reindicizzare la serie, scartando di fatto i termini con indicizzazione pari senza modificare l'indice stesso. Il fattore (-1)^n tiene conto dell'alternanza tra positivo e negativo di termini successivi. Questo lavoro di matematica preliminare potrebbe sembrare estraneo, ma il codice Python sarà molto più facile da scrivere e riutilizzare su altre serie di Taylor se l'indice inizia sempre da 0 e conta verso l'alto con incrementi di 1.

Passaggio 3

Apri l'interprete Python. Inizia digitando i seguenti comandi per definire diverse variabili:

somma = 0 x = 0,5236

La variabile "sum" verrà utilizzata per accumulare la somma della serie di Taylor man mano che viene calcolato ogni termine. La variabile "x" è l'angolo (in radianti) per il quale si vuole approssimare la funzione seno. Impostalo come preferisci.

Passaggio 4

Importa il modulo "math" con il seguente comando in modo da avere accesso alle funzioni "pow" e "factoral":

importare matematica

Passaggio 5

Avvia un ciclo "for", impostando il numero di iterazioni con la funzione "range":

per n nell'intervallo (4):

Ciò farà sì che la variabile indice, n, inizi da zero e contenga fino a 4. Anche questo piccolo numero di iterazioni produrrà un risultato sorprendentemente accurato. Il ciclo non viene eseguito immediatamente e non inizierà finché non avrai specificato l'intero blocco di codice su cui eseguire l'iterazione.

Passaggio 6

Digita il seguente comando per aggiungere il valore di ogni termine successivo a "sum:"

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

Nota che il comando è rientrato con una tabulazione, che indica a Python che fa parte del ciclo "for". Nota anche come vengono usati "pow" e "fattoriale" al posto di "^" e "!" notazione. La formula a destra dell'operatore di assegnazione "+=" è identica a quella del passaggio 2, ma scritta nella sintassi Python.

Passaggio 7

Premi "Invio" per aggiungere una riga vuota. Per Python, questo indica la fine del ciclo "for", quindi il calcolo viene eseguito. Digita il comando "sum" per rivelare il risultato. Se hai usato il valore di x dato nel passaggio 3, il risultato è molto vicino a 0,5, il seno di pi/6. Riprovare il processo per diversi valori di x e per diversi numeri di iterazioni del ciclo, verificando i risultati con la funzione "math.sin (x)". Hai implementato in Python lo stesso processo che molti computer usano per calcolare i valori per il seno e altre funzioni trascendentali.

Consiglio

Indentare e digitare il comando "sum" sulla seconda riga del ciclo "for" per ottenere un totale parziale della somma durante l'esecuzione del codice. Questo rivela come ogni termine successivo della serie avvicina sempre di più la somma al valore effettivo della funzione.