Kako napisati Taylorovu seriju na Pythonu

Taylorov niz je prikaz funkcije pomoću beskonačnog zbroja. Računala često prave aproksimacije vrijednosti trigonometrijskog, eksponencijalnog ili drugog transcendentalnog funkciju zbrajanjem konačnog broja članova njenog Taylorovog niza, a ovaj proces možete ponovno stvoriti u Piton. Uvjeti zbroja temelje se na uzastopnim derivacijama funkcije, tako da ćete morati identificirati uzorak u vrijednostima tih derivacija da biste napisali formulu za svaki član niza. Zatim upotrijebite petlju da akumulirate zbroj, kontrolirajući točnost vaše aproksimacije s brojem iteracija petlje.

Korak 1

Pogledajte definiciju Taylorovog niza da biste razumjeli kako se svaki pojam može izračunati. Svaki član niza je indeksiran, obično s "n", a njegova je vrijednost povezana s n-tim izvodom funkcije koja se predstavlja. Radi jednostavnosti, upotrijebite 0 za vrijednost "a" u svom prvom pokušaju. Ova posebna verzija serije Taylor zove se serija Maclaurin. Isprobajte sinusnu funkciju jer je lako odrediti njene uzastopne derivacije.

Video dana

Korak 2

Zapišite nekoliko vrijednosti n-te derivacije sinusne funkcije procijenjene na 0. Ako je n 0, vrijednost je 0. Ako je n 1, vrijednost je 1. Ako je n 2, vrijednost je 0. Ako je n 3, vrijednost je -1. Odavde se obrazac ponavlja, stoga zanemarite svaki parno indeksirani član Taylorovog niza budući da je pomnožen s 0. Formula za svaki član rezultirajućeg niza je:

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

"2n+1" se koristi umjesto "n" za ponovno indeksiranje serije, efektivno odbacujući parno indeksirane pojmove bez promjene samog indeksa. Faktor (-1)^n objašnjava izmjenu pozitivnih i negativnih uzastopnih članova. Ovaj preliminarni matematički rad mogao bi se činiti suvišnim, ali Python kod će biti daleko lakše napisati i ponovno koristiti na drugim Taylorovim serijama ako indeks uvijek počinje od 0 i broji se prema gore u koracima od 1.

Korak 3

Otvorite Python interpreter. Započnite upisivanjem sljedećih naredbi za definiranje nekoliko varijabli:

zbroj = 0 x = .5236

Varijabla "zbroj" koristit će se za akumuliranje zbroja Taylorovog niza kako se svaki član izračunava. Varijabla "x" je kut (u radijanima) za koji želite aproksimirati sinusnu funkciju. Postavite na što god želite.

4. korak

Uvezite modul "math" sljedećom naredbom tako da imate pristup funkcijama "pow" i "factorial":

uvoz matematike

Korak 5

Pokrenite petlju "for", postavljajući broj iteracija s funkcijom "range":

za n u rasponu (4):

To će uzrokovati da varijabla indeksa, n, počne od nule i broji do 4. Čak i ovaj mali broj iteracija će dati iznenađujuće točan rezultat. Petlja se ne izvršava odmah i neće započeti sve dok ne navedete cijeli blok koda za ponavljanje.

Korak 6

Upišite sljedeću naredbu da biste dodali vrijednost svakog uzastopnog pojma u "sum:"

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

Primijetite da je naredba uvučena tabulatorom, što Pythonu ukazuje da je dio petlje "for". Također imajte na umu kako se "pow" i "factorial" koriste umjesto "^" i "!" notacija. Formula desno od operatora dodjele "+=" identična je onoj u koraku 2, ali napisana u Python sintaksi.

Korak 7

Pritisnite "Enter" da dodate prazan redak. Za Python, to označava završetak petlje "for", pa se izračun izvršava. Upišite naredbu "sum" da biste otkrili rezultat. Ako ste upotrijebili vrijednost x danu u koraku 3, rezultat je vrlo blizu .5, sinus od pi/6. Pokušajte ponoviti postupak za različite vrijednosti x i za različit broj iteracija petlje, provjeravajući svoje rezultate u odnosu na funkciju "math.sin (x)". U Python ste implementirali proces koji mnoga računala koriste za izračunavanje vrijednosti za sinus i druge transcendentne funkcije.

Savjet

Uvucite i upišite naredbu "sum" u drugi redak "for" petlje kako biste dobili tekući zbroj zbroja dok se kôd izvršava. To otkriva kako svaki uzastopni član niza približava zbroj stvarnoj vrijednosti funkcije.