Kako napisati Taylorov niz u Pythonu
Taylorov niz je prikaz funkcije pomoću beskonačne sume. Računala često rade aproksimacije vrijednosti trigonometrijske, eksponencijalne ili druge transcendentalne funkcije zbrajanjem konačnog broja članova njenog Taylorovog niza, a ovaj proces možete ponovno stvoriti u Pythonu. Članovi zbroja temelje se na uzastopnim derivatima funkcije, tako da ćete morati identificirati obrazac u vrijednostima tih izvoda da biste napisali formulu za svaki član niza. Zatim upotrijebite petlju za prikupljanje zbroja, kontrolirajući točnost svoje aproksimacije brojem ponavljanja petlje.
1. korak
Konzultirajte definiciju Taylorovog niza da biste razumjeli kako se svaki član može izračunati. Svaki član niza je indeksiran, obično s "n", a njegova je vrijednost povezana s n-tom derivacijom funkcije koja se predstavlja. Radi jednostavnosti, koristite 0 za vrijednost "a" u svom prvom pokušaju. Ova posebna verzija Taylorovog niza naziva se Maclaurinovim nizom. Pokušajte s sinusnom funkcijom jer je njezine uzastopne izvodnice lako odrediti.
2. korak
Zapišite nekoliko vrijednosti n-te derivacije funkcije sinusa 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 član Taylorovog niza s parnim indeksom 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, učinkovito odbacujući parno indeksirane članove bez promjene samog indeksa. Faktor (-1)^n objašnjava izmjenu između pozitivnih i negativnih uzastopnih članova. Ovaj preliminarni matematički rad mogao bi se činiti suvišnim, ali Python kod bit će daleko lakše napisati i ponovno upotrijebiti na drugim Taylorovim serijama ako indeks uvijek počinje od 0 i broji prema gore u koracima od 1.
3. korak
Otvorite Python tumač. Započnite upisivanjem sljedećih naredbi za definiranje nekoliko varijabli:
zbroj =0 x =.5236
Varijabla "sum" koristit će se za akumuliranje zbroja Taylorovog niza pri izračunavanju svakog člana. Varijabla "x" je kut (u radijanima) za koji želite aproksimirati funkciju sinusa. Postavite na što god želite.
4. korak
Uvezite modul "math" sljedećom naredbom kako biste imali pristup funkcijama "pow" i "factorial":
uvezi matematiku
Korak 5
Pokrenite petlju "for", postavljajući broj ponavljanja s funkcijom "range":
za n u rasponu(4):
To će uzrokovati da varijabla indeksa, n, počne od nule i broji do 4. Čak će i ovaj mali broj ponavljanja dati iznenađujuće točan rezultat. Petlja se ne izvršava odmah i neće započeti dok ne navedete cijeli blok koda za ponavljanje.
Korak 6
Upišite sljedeću naredbu za dodavanje vrijednosti svakog uzastopnog izraza u "zbroj:"
sum += 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 je napisana u sintaksi Pythona.
7. korak
Pritisnite "Enter" da biste dodali prazan redak. Za Python, ovo označava prekid "for" petlje, tako da se izračun izvršava. Upišite naredbu "sum" da biste otkrili rezultat. Ako ste koristili vrijednost x danu u koraku 3, rezultat je vrlo blizu 0,5, sinusa od pi/6. Ponovno pokušajte postupak za različite vrijednosti x i za različite brojeve ponavljanja petlje, provjeravajući svoje rezultate u odnosu na funkciju "math.sin(x)". U Python ste implementirali isti proces koji mnoga računala koriste za izračunavanje vrijednosti za sinus i druge transcendentalne funkcije.
Savjet
Uvucite i upišite naredbu "sum" u drugom retku petlje "for" da biste dobili tekuću ukupnu sumu dok se kôd izvršava. Ovo otkriva kako svaki uzastopni član niza dovodi zbroj sve bliže i bliže stvarnoj vrijednosti funkcije.