O serie Taylor este o reprezentare a unei funcții folosind o sumă infinită. Calculatoarele fac adesea aproximări ale valorilor unui trigonometric, exponențial sau alt transcendental funcția prin însumarea unui număr finit al termenilor seriei sale Taylor și puteți recrea acest proces în Piton. Termenii sumei se bazează pe derivate succesive ale funcției, așa că va trebui să identificați un model în valorile acelor derivate pentru a scrie o formulă pentru fiecare termen al seriei. Apoi, utilizați o buclă pentru a acumula suma, controlând acuratețea aproximării dvs. cu numărul de iterații ale buclei.
Pasul 1
Consultați definiția seriei Taylor pentru a înțelege cum poate fi calculat fiecare termen. Fiecare termen al seriei este indexat, de obicei prin „n”, iar valoarea lui este legată de derivata a n-a a funcției reprezentate. Pentru simplitate, utilizați 0 pentru valoarea „a” la prima încercare. Această versiune specială a seriei Taylor se numește seria Maclaurin. Încercați funcția sinus, deoarece derivatele sale succesive sunt ușor de determinat.
Videoclipul zilei
Pasul 2
Notați mai multe valori ale derivatei a n-a a funcției sinus evaluate la 0. Dacă n este 0, valoarea este 0. Dacă n este 1, valoarea este 1. Dacă n este 2, valoarea este 0. Dacă n este 3, valoarea este -1. De aici, modelul se repetă, așa că nu ține cont de fiecare termen indexat par al seriei Taylor, deoarece este înmulțit cu 0. O formulă pentru fiecare termen din seria rezultată este:
(-1)^n/(2n+1)!*x^(2n+1)
„2n+1” este folosit în locul lui „n” pentru a reindexa seria, eliminând efectiv termenii indexați par fără a schimba indexul în sine. Factorul (-1)^n ține cont de alternanța dintre pozitiv și negativ al termenilor succesivi. Această lucrare preliminară de matematică ar putea părea străină, dar codul Python va fi mult mai ușor de scris și reutilizat pe alte serii Taylor dacă indicele începe întotdeauna de la 0 și numără în sus în trepte de 1.
Pasul 3
Deschideți interpretul Python. Începeți prin a tasta următoarele comenzi pentru a defini mai multe variabile:
suma = 0 x = .5236
Variabila „suma” va fi utilizată pentru a acumula suma seriei Taylor pe măsură ce fiecare termen este calculat. Variabila „x” este unghiul (în radiani) pentru care doriți să aproximați funcția sinus. Setează-l la ce vrei.
Pasul 4
Importați modulul „matematic” cu următoarea comandă, astfel încât să aveți acces la funcțiile „pow” și „factorial”:
import matematică
Pasul 5
Inițiază o buclă „for”, setând numărul de iterații cu funcția „interval”:
pentru n în intervalul (4):
Acest lucru va face ca variabila index, n, să înceapă de la zero și să conteze până la 4. Chiar și acest număr mic de iterații va produce un rezultat surprinzător de precis. Bucla nu se execută imediat și nu va începe până când nu ați specificat întregul bloc de cod pe care să îl iterați.
Pasul 6
Tastați următoarea comandă pentru a adăuga valoarea fiecărui termen succesiv la „sum:”
suma += math.pow(-1,n)/math.factorial (2*n+1)*math.pow (x, 2*n+1)
Observați că comanda este indentată cu o filă, ceea ce indică lui Python că face parte din bucla „for”. De asemenea, rețineți cum sunt folosite „pow” și „factorial” în locul „^” și „!” notaţie. Formula din dreapta operatorului de atribuire „+=" este identică cu cea din Pasul 2, dar scrisă în sintaxa Python.
Pasul 7
Apăsați „Enter” pentru a adăuga o linie goală. Pentru Python, aceasta indică terminarea buclei „for”, astfel încât calculul este executat. Tastați comanda „sum” pentru a dezvălui rezultatul. Dacă ați folosit valoarea lui x dată în pasul 3, rezultatul este foarte aproape de .5, sinusul lui pi/6. Încercați din nou procesul pentru diferite valori ale lui x și pentru diferite numere de iterații ale buclei, verificând rezultatele cu funcția „math.sin (x)”. Ați implementat în Python procesul pe care multe computere îl folosesc pentru a calcula valorile sinusului și a altor funcții transcendentale.
Bacsis
Indentați și tastați comanda „sum” pe a doua linie a buclei „for” pentru a obține un total curent al sumei pe măsură ce se execută codul. Aceasta dezvăluie modul în care fiecare termen succesiv al seriei aduce suma din ce în ce mai aproape de valoarea reală a funcției.