Een Taylor-serie schrijven in Python

Een Taylorreeks is een weergave van een functie met een oneindige som. Computers maken vaak benaderingen van de waarden van een trigonometrische, exponentiële of andere transcendentale functie door een eindig aantal van de termen van zijn Taylor-reeks op te tellen, en je kunt dit proces recreëren in Python. De termen van de som zijn gebaseerd op opeenvolgende afgeleiden van de functie, dus je moet een patroon in de waarden van die afgeleiden identificeren om een ​​formule te schrijven voor elke term van de reeks. Gebruik vervolgens een lus om de som te accumuleren en controleer de nauwkeurigheid van uw benadering met het aantal herhalingen van de lus.

Stap 1

Raadpleeg de definitie van de Taylor-reeks om te begrijpen hoe elke term kan worden berekend. Elke term van de reeks wordt geïndexeerd, meestal door "n", en de waarde ervan is gerelateerd aan de n-de afgeleide van de functie die wordt weergegeven. Gebruik voor de eenvoud 0 voor de waarde van "a" bij uw eerste poging. Deze speciale versie van de Taylor-serie wordt de Maclaurin-serie genoemd. Probeer de sinusfunctie, aangezien de opeenvolgende afgeleiden gemakkelijk te bepalen zijn.

Video van de dag

Stap 2

Noteer verschillende waarden van de n-de afgeleide van de sinusfunctie geëvalueerd op 0. Als n 0 is, is de waarde 0. Als n 1 is, is de waarde 1. Als n 2 is, is de waarde 0. Als n 3 is, is de waarde -1. Vanaf hier herhaalt het patroon, dus negeer elke even-geïndexeerde term van de Taylor-reeks aangezien deze met 0 is vermenigvuldigd. Een formule voor elke term van de resulterende reeks is:

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

"2n+1" wordt gebruikt in plaats van "n" om de reeks opnieuw te indexeren, waardoor de even geïndexeerde termen effectief worden weggegooid zonder de index zelf te wijzigen. De (-1)^n-factor verklaart de afwisseling tussen positief en negatief van opeenvolgende termen. Dit voorbereidende wiskundige werk lijkt misschien overbodig, maar de Python-code zal veel gemakkelijker te schrijven en opnieuw te gebruiken zijn op andere Taylor-reeksen als de index altijd begint bij 0 en omhoog telt in stappen van 1.

Stap 3

Open de Python-interpreter. Begin met het typen van de volgende opdrachten om verschillende variabelen te definiëren:

som = 0 x = .5236

De variabele "som" wordt gebruikt om de som van de Taylor-reeks te accumuleren terwijl elke term wordt berekend. De variabele "x" is de hoek (in radialen) waarvoor u de sinusfunctie wilt benaderen. Stel het in op wat je maar wilt.

Stap 4

Importeer de "math" module met het volgende commando zodat je toegang hebt tot de "pow" en "factorial" functies:

wiskunde importeren

Stap 5

Start een "for"-lus en stel het aantal iteraties in met de "range"-functie:

voor n in bereik (4):

Dit zorgt ervoor dat de indexvariabele, n, bij nul begint en tot 4 telt. Zelfs dit kleine aantal iteraties zal een verrassend nauwkeurig resultaat opleveren. De lus wordt niet onmiddellijk uitgevoerd en begint pas als u het hele codeblok hebt opgegeven om te herhalen.

Stap 6

Typ de volgende opdracht om de waarde van elke volgende term toe te voegen aan "sum:"

som += wiskunde.pow(-1,n)/wiskunde.faculteit (2*n+1)*wiskunde.pow (x, 2*n+1)

Merk op dat de opdracht is ingesprongen met een tab, die aan Python aangeeft dat het deel uitmaakt van de "for"-lus. Merk ook op hoe "pow" en "factorial" worden gebruikt in plaats van de "^" en "!" notatie. De formule rechts van de "+=" toewijzingsoperator is identiek aan die in stap 2, maar geschreven in de Python-syntaxis.

Stap 7

Druk op "Enter" om een ​​lege regel toe te voegen. Voor Python betekent dit de beëindiging van de "for"-lus, dus de berekening wordt uitgevoerd. Typ het commando "sum" om het resultaat te onthullen. Als je de waarde van x hebt gebruikt die in stap 3 is gegeven, ligt het resultaat heel dicht bij 0,5, de sinus van pi/6. Probeer het proces opnieuw voor verschillende waarden van x en voor verschillende aantallen iteraties van de lus, waarbij u uw resultaten vergelijkt met de functie "math.sin (x)". Je hebt in Python het proces geïmplementeerd dat veel computers gebruiken om waarden voor sinus en andere transcendentale functies te berekenen.

Tip

Laat de opdracht "sum" inspringen en typ op de tweede regel van de "for"-lus om een ​​lopend totaal van de som te krijgen terwijl de code wordt uitgevoerd. Dit onthult hoe elke opeenvolgende term van de reeks de som steeds dichter bij de werkelijke waarde van de functie brengt.