Hogyan írjunk Taylor-sorozatot Pythonban
A Taylor-sorozat egy függvény végtelen összeget használó reprezentációja. A számítógépek gyakran közelítik meg egy trigonometrikus, exponenciális vagy más transzcendentális függvény értékeit a Taylor-sorozat véges számú tagjának összegzésével, és ezt a folyamatot újra létrehozhatja Pythonban. Az összeg feltételei a függvény egymást követő deriváltjain alapulnak, ezért a sorozat minden tagjához képlet írásához meg kell határoznia egy mintát ezeknek a deriváltaknak az értékeiben. Ezután egy ciklus segítségével gyűjtse össze az összeget, és szabályozza a közelítés pontosságát a hurok iterációinak számával.
1. lépés
Tekintse át a Taylor-sorozat definícióját, hogy megértse, hogyan számíthatók ki az egyes kifejezések. A sorozat minden tagja indexelve van, jellemzően "n"-nel, és értéke a reprezentált függvény n-edik deriváltjához kapcsolódik. Az egyszerűség kedvéért használjon 0-t az "a" értékére az első próbálkozáskor. A Taylor sorozatnak ezt a különleges változatát Maclaurin sorozatnak hívják. Próbáld ki a szinuszfüggvényt, mivel annak egymást követő deriváltjait könnyű meghatározni.
2. lépés
Írja fel a szinuszfüggvény n-edik deriváltjának 0-ra értékelt több értékét. Ha n értéke 0, akkor az értéke 0. Ha n értéke 1, akkor az értéke 1. Ha n értéke 2, akkor az értéke 0. Ha n értéke 3 , az érték -1. Innentől kezdve a minta ismétlődik, ezért hagyja figyelmen kívül a Taylor-sorozat minden páros indexű tagját, mivel azt 0-val szorozzák. Az eredményül kapott sorozat minden tagjának képlete:
(-1)^n/(2n+1)!*x^(2n+1)
A „2n+1” az „n” helyett a sorozat újraindexelésére szolgál, hatékonyan elveti a páros indexelt tagokat anélkül, hogy magát az indexet megváltoztatná. A (-1)^n tényező magyarázza az egymást követő tagok pozitív és negatív váltakozását. Ez az előzetes matematikai munka feleslegesnek tűnhet, de a Python-kód sokkal könnyebben írható és használható más Taylor-sorozatokon, ha az index mindig 0-val kezdődik, és 1-gyel számol felfelé.
3. lépés
Nyissa meg a Python értelmezőt. Kezdje a következő parancsok beírásával több változó meghatározásához:
összeg =0 x =.5236
Az "összeg" változót a Taylor-sorozat összegének felhalmozására használjuk az egyes tagok kiszámításakor. Az "x" változó az a szög (radiánban), amelyre a szinuszfüggvényt közelíteni kívánja. Állítsd be tetszőlegesre.
4. lépés
Importálja a "math" modult a következő paranccsal, hogy hozzáférjen a "pow" és a "factorial" függvényekhez:
matek importálása
5. lépés
Indítson el egy "for" ciklust, és állítsa be az iterációk számát a "tartomány" függvénnyel:
n esetén a(4) tartományban:
Ez azt eredményezi, hogy az n indexváltozó nulláról indul, és 4-ig számol. Még ez a kis számú iteráció is meglepően pontos eredményt ad. A ciklus nem hajtódik végre azonnal, és addig nem indul el, amíg meg nem adtad a teljes kódblokkot az iterációhoz.
6. lépés
Írja be a következő parancsot az egyes egymást követő kifejezések értékének hozzáadásához a "sum:"
-hozsum += math.pow(-1,n)/math.factorial(2*n+1)*math.pow(x,2*n+1)
Figyelje meg, hogy a parancs egy tabulátorral van behúzva, ami azt jelzi a Python számára, hogy a „for” ciklus része. Figyelje meg azt is, hogy a "pow" és a "factorial" kifejezés a "^" és a "!" jelölés. A "+=" hozzárendelési operátortól jobbra lévő képlet megegyezik a 2. lépésben leírtakkal, de Python szintaxissal írják.
7. lépés
Üres sor hozzáadásához nyomja meg az "Enter" billentyűt. A Python számára ez a "for" ciklus befejezését jelzi, így a számítás végrehajtásra kerül. Írja be a „sum” parancsot az eredmény megjelenítéséhez. Ha a 3. lépésben megadott x értékét használta, az eredmény nagyon közel van a 0,5-höz, a pi/6 szinuszához. Próbálja újra a folyamatot x különböző értékeire és a ciklus különböző számú iterációjára, és ellenőrizze az eredményeket a "math.sin(x)" függvénnyel. A Pythonban ugyanazt a folyamatot valósította meg, amelyet sok számítógép használ a szinusz és más transzcendentális függvények értékeinek kiszámítására.
Tipp
Írja be a "sum" parancsot a "for" ciklus második sorába, és írja be a "sum" parancsot, hogy megkapja az összeg futó végösszegét a kód végrehajtásakor. Ez felfedi, hogy a sorozat minden egymást követő tagja hogyan hozza az összeget egyre közelebb a függvény tényleges értékéhez.