Kuinka kirjoittaa Taylor-sarja Pythonissa

Taylor-sarja on funktion esitys, joka käyttää ääretöntä summaa. Tietokoneet tekevät usein likiarvoja trigonometrisen, eksponentiaalisen tai muun transsendentaalisen arvoista funktio summaamalla äärellinen määrä sen Taylor-sarjan termejä, ja voit luoda tämän prosessin uudelleen Python. Summan ehdot perustuvat funktion peräkkäisiin johdannaisiin, joten sinun on tunnistettava näiden johdannaisten arvojen malli, jotta voit kirjoittaa kaavan sarjan jokaiselle termille. Kerää sitten summa silmukan avulla ja säätele likiarvosi tarkkuutta silmukan iteraatioiden lukumäärällä.

Vaihe 1

Tutustu Taylor-sarjan määritelmään ymmärtääksesi, kuinka kukin termi voidaan laskea. Sarjan jokainen termi on indeksoitu, tyypillisesti "n":llä, ja sen arvo on suhteessa esitettävän funktion n: nnen derivaatan kanssa. Käytä yksinkertaisuuden vuoksi 0:lla "a":n arvoa ensimmäisellä kerralla. Tätä Taylor-sarjan erikoisversiota kutsutaan Maclaurin-sarjaksi. Kokeile sinifunktiota, koska sen peräkkäiset derivaatat on helppo määrittää.

Päivän video

Vaihe 2

Kirjoita muistiin useita sinifunktion n: nnen derivaatan arvoja arvolla 0. Jos n on 0, arvo on 0. Jos n on 1, arvo on 1. Jos n on 2, arvo on 0. Jos n on 3, arvo on -1. Tästä eteenpäin kuvio toistuu, joten jätä huomioimatta kaikki Taylor-sarjan parilliset termit, koska se kerrotaan nollalla. Tuloksena olevan sarjan kunkin termin kaava on:

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

"2n+1" käytetään "n":n sijasta sarjan uudelleenindeksoimiseen, mikä hylkää tehokkaasti parilliset termit muuttamatta itse indeksiä. Tekijä (-1)^n selittää peräkkäisten termien positiivisen ja negatiivisen vaihtelun. Tämä alustava matemaattinen työ saattaa tuntua ylimääräiseltä, mutta Python-koodia on paljon helpompi kirjoittaa ja käyttää uudelleen muissa Taylor-sarjoissa, jos indeksi alkaa aina nollasta ja laskee ylöspäin 1:n askelin.

Vaihe 3

Avaa Python-tulkki. Aloita kirjoittamalla seuraavat komennot määrittääksesi useita muuttujia:

summa = 0 x = 0,5236

"Summa"-muuttujaa käytetään keräämään Taylor-sarjan summa, kun jokainen termi lasketaan. Muuttuja "x" on kulma (radiaaneina), jonka sinifunktiota halutaan approksimoida. Aseta se mihin haluat.

Vaihe 4

Tuo "matematiikka"-moduuli seuraavalla komennolla, jotta sinulla on pääsy "pow"- ja "factorial"-toimintoihin:

tuoda matematiikkaa

Vaihe 5

Aloita "for"-silmukka ja aseta iteraatioiden lukumäärä "alue"-funktiolla:

n alueella (4):

Tämä saa indeksimuuttujan n alkamaan nollasta ja laskemaan neljään asti. Tämä pieni iteraatioiden määrä antaa yllättävän tarkan tuloksen. Silmukka ei suoriteta välittömästi eikä ala, ennen kuin olet määrittänyt koko koodilohkon iteroitavaksi.

Vaihe 6

Kirjoita seuraava komento lisätäksesi jokaisen peräkkäisen termin arvon "summaan":

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

Huomaa, että komento on sisennetty sarkaimella, mikä osoittaa Pythonille, että se on osa "for"-silmukkaa. Huomaa myös, kuinka "pow" ja "factorial" käytetään "^" ja "!" merkintä. Tehtäväoperaattorin "+=" oikealla puolella oleva kaava on identtinen vaiheen 2 kaavan kanssa, mutta kirjoitettu Python-syntaksilla.

Vaihe 7

Paina "Enter" lisätäksesi tyhjän rivin. Pythonille tämä tarkoittaa "for"-silmukan päättymistä, joten laskenta suoritetaan. Kirjoita komento "summa" paljastaaksesi tuloksen. Jos käytit vaiheessa 3 annettua x: n arvoa, tulos on hyvin lähellä 0,5:tä, pi/6:n siniä. Kokeile prosessia uudelleen eri x: n arvoille ja silmukan eri iteraatiomäärille ja vertaa tuloksia "math.sin (x)"-funktioon. Olet toteuttanut Pythonissa juuri sen prosessin, jota monet tietokoneet käyttävät sini- ja muiden transsendenttisten funktioiden arvojen laskemiseen.

Kärki

Sisennä ja kirjoita komento "sum" "for"-silmukan toiselle riville saadaksesi juoksevan summan koodin suoritettaessa. Tämä paljastaa, kuinka sarjan jokainen peräkkäinen termi tuo summaa lähemmäs funktion todellista arvoa.