Kako napisati Taylorjev niz v Pythonu
Taylorjev niz je predstavitev funkcije z uporabo neskončne vsote. Računalniki pogosto naredijo približke vrednosti trigonometrične, eksponentne ali druge transcendentalne funkcije tako, da seštejejo končno število členov njene Taylorjeve serije, ta postopek pa lahko ponovno ustvarite v Pythonu. Izrazi vsote temeljijo na zaporednih izpeljankah funkcije, zato boste morali prepoznati vzorec v vrednostih teh izpeljank, da napišete formulo za vsak člen niza. Nato uporabite zanko, da zberete vsoto, pri čemer nadzirate natančnost svojega približka s številom ponovitev zanke.
1. korak
Oglejte si definicijo Taylorjevega niza, da razumete, kako je mogoče izračunati vsak člen. Vsak člen niza je indeksiran, običajno z "n", njegova vrednost pa je povezana z n-to izpeljanko predstavljene funkcije. Zaradi enostavnosti uporabite 0 za vrednost "a" pri prvem poskusu. Ta posebna različica serije Taylor se imenuje serija Maclaurin. Preizkusite funkcijo sinus, saj je njene zaporedne odvode enostavno določiti.
2. korak
Zapišite več vrednosti n-te odvodnice sinusne funkcije, ovrednotene na 0. Če je n 0, je vrednost 0. Če je n 1, je vrednost 1. Če je n 2, je vrednost 0. Če je n 3 , vrednost je -1. Od tu naprej se vzorec ponavlja, zato zanemarite vsak sodo indeksiran člen Taylorjevega niza, saj je pomnožen z 0. Formula za vsak člen nastalega niza je:
(-1)^n/(2n+1)!*x^(2n+1)
"2n+1" se uporablja namesto "n" za ponovno indeksiranje niza, pri čemer se dejansko zavržejo sodi indeksirani izrazi, ne da bi se spremenil sam indeks. Faktor (-1)^n upošteva menjavo med pozitivnimi in negativnimi zaporednimi členi. To predhodno matematično delo se morda zdi nepotrebno, vendar bo kodo Python veliko lažje napisati in ponovno uporabiti v drugih serijah Taylor, če se indeks vedno začne pri 0 in šteje navzgor v korakih po 1.
3. korak
Odprite tolmača Python. Začnite tako, da vnesete naslednje ukaze, da definirate več spremenljivk:
vsota =0 x =.5236
Spremenljivka "vsota" bo uporabljena za zbiranje vsote Taylorjevega niza, ko je vsak člen izračunan. Spremenljivka "x" je kot (v radianih), za katerega želite približno izračunati sinusno funkcijo. Nastavite, kar želite.
4. korak
Uvozite modul »math« z naslednjim ukazom, da boste imeli dostop do funkcij »pow« in »factorial«:
uvozi matematiko
5. korak
Zaženite zanko "for" in nastavite število ponovitev s funkcijo "range":
za n v območju (4):
To bo povzročilo, da se bo indeksna spremenljivka n začela pri nič in štela do 4. Tudi to majhno število ponovitev bo dalo presenetljivo natančen rezultat. Zanka se ne izvede takoj in se ne bo začela, dokler ne določite celotnega bloka kode za ponavljanje.
6. korak
Vnesite naslednji ukaz, da dodate vrednost vsakega zaporednega izraza v "sum:"
sum += math.pow(-1,n)/math.factorial(2*n+1)*math.pow(x,2*n+1)
Opazite, da je ukaz zamaknjen z zavihkom, kar Pythonu nakazuje, da je del zanke "za". Upoštevajte tudi, kako se "pow" in "factorial" uporabljata namesto "^" in "!" zapis. Formula desno od operatorja dodelitve "+=" je enaka tisti v 2. koraku, vendar napisana v sintaksi Python.
7. korak
Pritisnite "Enter", da dodate prazno vrstico. Za Python to pomeni prekinitev zanke "for", zato se izračun izvede. Vnesite ukaz "vsota", da razkrijete rezultat. Če ste uporabili vrednost x, podano v 3. koraku, je rezultat zelo blizu 0,5, sinusa pi/6. Znova poskusite postopek za različne vrednosti x in za različno število ponovitev zanke ter preverite rezultate glede na funkcijo "math.sin(x)". V Python ste implementirali isti postopek, ki ga mnogi računalniki uporabljajo za izračun vrednosti sinusa in drugih transcendentalnih funkcij.
Nasvet
Zamaknite in vnesite ukaz "sum" v drugi vrstici zanke "for", da dobite tekočo vsoto, ko se koda izvaja. To razkriva, kako vsak zaporedni člen serije približa vsoto vedno bližje dejanski vrednosti funkcije.