Obsah
Taylorova řada je reprezentací funkce pomocí nekonečného součtu. Počítače obecně přibližují hodnoty trigonometrické, exponenciální nebo jiné transcendentní funkce pomocí konečného počtu termínů v odpovídající Taylorově řadě a tento proces můžete v Pythonu znovu vytvořit. Termíny součtu jsou založeny na následných derivátech funkce, a proto je třeba určit jejich vzorec pro zápis vzorce pro každý termín v sérii. Pak použijete smyčku k akumulaci součtu, řízení přesnosti vaší aproximace s počtem iterací.
Pokyny
V Pythonu najděte Taylorovu řadu (Hemera Technologies / AbleStock.com / Getty Images)-
Viz definice Taylorovy řady, abyste pochopili, jak lze každý termín vypočítat. Každý je indexován, obvykle s "n", a jeho hodnota se týká derivace "n" pořadí funkce, která má být reprezentována. Pro jednoduchost použijte hodnotu 0 pro hodnotu „a“ při prvním pokusu. Tato speciální verze Taylorovy řady se nazývá "série MacLaurin". Použijte funkci "sinus", protože následné deriváty lze snadno určit.
-
Zapište několik hodnot derivace "n" funkce sinus vyhodnocené na hodnotu 0. Pokud je hodnota "n" rovna 0, hodnota bude 0. Pro n = 1 bude hodnota 1. V případě n = 2 bude hodnota 0. Když n = 3, hodnota bude -1. Vzor se zde opakuje, takže můžete eliminovat všechny sudé výrazy v Taylorově sérii, protože bude násobeno 0. Vzorec pro každý termín ve výsledné sérii bude:
(1n) 2n + (2n + 1)
Pokud "2n + 1" je použito namísto "n" k reindexování série, efektivně eliminuje i výrazy indexu bez změny indexů. Faktor "(-1) ^ n" umožňuje změnit znaménko následných termínů. Tato lekce matematiky se může jevit jako podivná, ale kód Python bude mnohem snazší psát a znovu používat v jiných sériích, pokud index začíná vždy na 0 a je zvýšen o 1.
-
Otevřete interpret Pythonu. Chcete-li definovat proměnné, začněte zadáním následujících příkazů:
sum = 0x = .5236
Součtová proměnná bude použita k akumulaci součtu Taylorovy řady s každou iterací výpočtu termínu. Proměnná "x" je úhel (v radiánech), ke kterému chcete přiblížit funkci sinus. Pokud chcete, nastavte jinou hodnotu.
-
Modul "matematika" importujte pomocí níže uvedeného příkazu, abyste získali přístup k funkcím "pow" (power) a "factorial" (faktoriál):
import matematiky
-
Otevřete smyčku "for", která určuje množství interakcí s funkcí "range":
pro n v rozsahu (4):
To způsobí, že proměnná indexu n začne na 0 a bude zvýšena na 4. Toto snížené množství iterací způsobí překvapivě přesný výsledek. Smyčka se neprovádí okamžitě a nezačne, dokud nezadáte blok kódu, který chcete iterovat.
-
Zadejte následující příkaz pro akumulaci hodnoty každého následného výrazu do proměnné "suma":
sum + = math.pow (-1, n) /math.factorial (2n + 1)math.pow (x, 2 * n + 1)
Příkaz musí mít mezeru před ní, aby mohl Python označit za součást smyčky "for". Všimněte si také, že místo "^" a "!" Jsou použity funkce "pow" a "factorial". Vzorec vpravo od operátoru přiřazení "+ =" je totožný s vzorcem kroku 2, ale napsaný syntaxí Pythonu.
-
Stiskněte "Enter" pro přidání prázdného řádku. Python to bude interpretovat jako konec smyčky "for" a provede výpočty. Zadejte příkaz "sum", abyste výsledek odhalili. Pro hodnotu "x" uvedenou v kroku 3 bude výsledek velmi blízký .5, hodnota sinus pi / 6. Zkuste to znovu s různými hodnotami pro "x" a pro různé počty iterací smyčky a porovnejte výsledky s funkcí "math.sin (x)". Právě jste implementovali v Pythonu stejný proces, jaký používá mnoho počítačů pro výpočet hodnot sinusových a dalších transcendentních funkcí.
Jak
- Ponechte mezeru a zadejte příkaz "sum" na druhém řádku smyčky "for" tak, aby byl zobrazen výsledek spuštění kódu. To ukáže, jak se každé následující období v sérii přibližuje plus a mínus skutečné hodnoty funkce.