Kaip parašyti Taylor seriją Python

Taylor serija yra funkcijos vaizdavimas naudojant begalinę sumą. Kompiuteriai dažnai apytiksliai apskaičiuoja trigonometrinių, eksponentinių ar kitų transcendentinių reikšmių reikšmes funkcija, susumavus baigtinį skaičių jos Taylor serijos terminų, ir jūs galite atkurti šį procesą Python. Sumos sąlygos yra pagrįstos nuosekliomis funkcijos išvestinėmis, todėl turėsite nustatyti tų išvestinių verčių modelį, kad galėtumėte parašyti formulę kiekvienam serijos terminui. Tada naudokite kilpą, kad sukauptumėte sumą, kontroliuodami aproksimacijos tikslumą su ciklo iteracijų skaičiumi.

1 žingsnis

Peržiūrėkite Taylor serijos apibrėžimą, kad suprastumėte, kaip galima apskaičiuoti kiekvieną terminą. Kiekvienas serijos terminas yra indeksuojamas, paprastai "n", o jo reikšmė yra susijusi su n-ąja pateikiamos funkcijos išvestine. Paprastumo sumetimais naudokite 0 „a“ reikšmei pirmą kartą bandydami. Ši speciali Taylor serijos versija vadinama Maclaurin serija. Išbandykite sinuso funkciją, nes jos nuoseklias išvestines lengva nustatyti.

Dienos vaizdo įrašas

2 žingsnis

Užrašykite kelias sinusinės funkcijos n-osios išvestinės, įvertintos 0, reikšmes. Jei n yra 0, reikšmė yra 0. Jei n yra 1, reikšmė yra 1. Jei n yra 2, reikšmė yra 0. Jei n yra 3, reikšmė yra -1. Nuo čia modelis kartojasi, todėl nekreipkite dėmesio į kiekvieną lygiu indeksuotą Taylor serijos terminą, nes jis padauginamas iš 0. Kiekvieno gautos serijos termino formulė yra tokia:

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

„2n+1“ naudojamas vietoje „n“, norint pakartotinai indeksuoti eilutę, efektyviai atmetant lyginius indeksuotus terminus, nekeičiant paties indekso. (-1)^n veiksnys lemia teigiamų ir neigiamų nuoseklių terminų kaitą. Šis preliminarus matematikos darbas gali atrodyti pašalinis, tačiau Python kodą bus daug lengviau įrašyti ir pakartotinai panaudoti kitose Taylor serijose, jei indeksas visada prasideda nuo 0 ir skaičiuojamas aukštyn žingsniais po 1.

3 veiksmas

Atidarykite Python interpretatorių. Norėdami apibrėžti kelis kintamuosius, pradėkite įvesdami šias komandas:

suma = 0 x = .5236

Kintamasis „suma“ bus naudojamas Taylor serijos sumai kaupti, kai apskaičiuojamas kiekvienas terminas. Kintamasis "x" yra kampas (radianais), kurio sinusinę funkciją norite aproksimuoti. Nustatykite tai, kas jums patinka.

4 veiksmas

Importuokite „matematikos“ modulį naudodami šią komandą, kad turėtumėte prieigą prie „pow“ ir „factorial“ funkcijų:

importuoti matematiką

5 veiksmas

Inicijuokite "for" kilpą, nustatydami iteracijų skaičių naudodami funkciją "range":

n diapazone (4):

Dėl to indekso kintamasis n prasidės nuo nulio ir skaičiuos iki 4. Net šis nedidelis pakartojimų skaičius duos stebėtinai tikslų rezultatą. Ciklas nevykdomas iš karto ir neprasidės tol, kol nenurodysite viso kodo bloko, kurį reikia kartoti.

6 veiksmas

Įveskite šią komandą, kad pridėtumėte kiekvieno iš eilės einančio termino reikšmę prie „sum“:

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

Atkreipkite dėmesį, kad komanda yra įtraukta su skirtuku, kuris rodo Python, kad ji yra ciklo „for“ dalis. Taip pat atkreipkite dėmesį, kaip "pow" ir "factorial" naudojami vietoj "^" ir "!" žymėjimas. Formulė, esanti dešinėje nuo priskyrimo operatoriaus "+=", yra tokia pati kaip 2 veiksme, bet parašyta Python sintaksė.

7 veiksmas

Paspauskite „Enter“, kad pridėtumėte tuščią eilutę. Python tai reiškia „for“ ciklo pabaigą, todėl skaičiavimas vykdomas. Įveskite komandą „suma“, kad atskleistumėte rezultatą. Jei naudojote 3 veiksme nurodytą x reikšmę, rezultatas yra labai artimas 0,5, pi/6 sinusui. Išbandykite procesą dar kartą naudodami skirtingas x reikšmes ir skirtingą ciklo iteracijų skaičių, patikrindami rezultatus pagal funkciją „math.sin (x)“. „Python“ įdiegėte tą patį procesą, kurį daugelis kompiuterių naudoja sinusinių ir kitų transcendentinių funkcijų vertėms apskaičiuoti.

Patarimas

Įtraukite ir įveskite komandą „sum“ antroje „for“ ciklo eilutėje, kad gautumėte einamąją sumą, kai vykdomas kodas. Tai atskleidžia, kaip kiekvienas sekantis serijos narys priartina sumą prie tikrosios funkcijos vertės.