Ako napísať Taylorovu sériu v Pythone

Taylorov rad je reprezentácia funkcie pomocou nekonečného súčtu. Počítače často robia aproximácie hodnôt trigonometrických, exponenciálnych alebo iných transcendentálnych hodnôt funkciu sčítaním konečného počtu členov jej Taylorovho radu a tento proces môžete znovu vytvoriť Python. Pojmy súčtu sú založené na postupných deriváciách funkcie, takže budete musieť identifikovať vzor v hodnotách týchto derivácií, aby ste mohli napísať vzorec pre každý člen radu. Potom použite slučku na akumuláciu súčtu, pričom presnosť svojej aproximácie riadite počtom iterácií cyklu.

Krok 1

Pozrite si definíciu Taylorovho radu, aby ste pochopili, ako možno jednotlivé výrazy vypočítať. Každý člen radu je indexovaný, zvyčajne pomocou "n" a jeho hodnota súvisí s n-tou deriváciou reprezentovanej funkcie. Pre jednoduchosť použite 0 pre hodnotu "a" pri prvom pokuse. Táto špeciálna verzia série Taylor sa nazýva séria Maclaurin. Vyskúšajte funkciu sínus, pretože jej následné derivácie sa dajú ľahko určiť.

Video dňa

Krok 2

Napíšte niekoľko hodnôt n-tej derivácie sínusovej funkcie vyhodnotenej ako 0. Ak n je 0, hodnota je 0. Ak n je 1, hodnota je 1. Ak n je 2, hodnota je 0. Ak n je 3, hodnota je -1. Odtiaľto sa vzor opakuje, takže ignorujte každý párne indexovaný výraz Taylorovho radu, pretože je vynásobený 0. Vzorec pre každý člen výsledného radu je:

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

"2n+1" sa používa namiesto "n" na preindexovanie série, čím sa účinne vypustia párne indexované výrazy bez zmeny samotného indexu. Faktor (-1)^n zodpovedá za striedanie kladných a záporných po sebe nasledujúcich členov. Táto predbežná matematická práca sa môže zdať zbytočná, ale kód Python bude oveľa jednoduchšie napísať a znova použiť na iných sériách Taylor, ak index vždy začína na 0 a počíta sa nahor v prírastkoch 1.

Krok 3

Otvorte prekladač Pythonu. Začnite zadaním nasledujúcich príkazov na definovanie niekoľkých premenných:

súčet = 0 x = 0,5236

Premenná "súčet" sa použije na akumuláciu súčtu Taylorovho radu pri výpočte každého člena. Premenná "x" je uhol (v radiánoch), pre ktorý chcete aproximovať funkciu sínus. Nastavte si to, čo chcete.

Krok 4

Importujte „matematický“ modul pomocou nasledujúceho príkazu, aby ste mali prístup k funkciám „pow“ a „factorial“:

importovať matematiku

Krok 5

Spustite cyklus „for“ a nastavte počet iterácií pomocou funkcie „range“:

pre n v rozsahu (4):

To spôsobí, že indexová premenná n začne na nule a bude počítať do 4. Aj tento malý počet iterácií prinesie prekvapivo presný výsledok. Cyklus sa nespustí okamžite a nezačne, kým nešpecifikujete celý blok kódu na iteráciu.

Krok 6

Zadajte nasledujúci príkaz na pridanie hodnoty každého nasledujúceho výrazu k "súčet:"

súčet += math.pow(-1,n)/math.factorial (2*n+1)*math.pow (x, 2*n+1)

Všimnite si, že príkaz je odsadený tabulátorom, čo Pythonu naznačuje, že je súčasťou cyklu „for“. Všimnite si tiež, ako sa používajú výrazy „pow“ a „factorial“ namiesto „^“ a „!“ notový zápis. Vzorec napravo od operátora priradenia "+=" je identický so vzorcom v kroku 2, ale je napísaný v syntaxi Pythonu.

Krok 7

Stlačením "Enter" pridajte prázdny riadok. Pre Python to znamená ukončenie cyklu "for", takže výpočet sa vykoná. Zadajte príkaz „sum“, aby ste odhalili výsledok. Ak ste použili hodnotu x uvedenú v kroku 3, výsledok je veľmi blízko 0,5, sínusu pi/6. Skúste tento proces znova pre rôzne hodnoty x a pre rôzne počty opakovaní cyklu, pričom svoje výsledky porovnajte s funkciou „math.sin (x)“. V Pythone ste implementovali samotný proces, ktorý mnohé počítače používajú na výpočet hodnôt pre sínus a iné transcendentálne funkcie.

Tip

Odsaďte a napíšte príkaz "sum" na druhý riadok cyklu "for", aby ste získali priebežný súčet súčtu počas vykonávania kódu. To ukazuje, ako každý nasledujúci člen radu približuje súčet k skutočnej hodnote funkcie.