Jak napsat Taylorovu sérii s Pythonem

Autor: Frank Hunt
Datum Vytvoření: 15 Březen 2021
Datum Aktualizace: 2 Prosinec 2024
Anonim
Jak napsat Taylorovu sérii s Pythonem - Články
Jak napsat Taylorovu sérii s Pythonem - Články

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)
  1. 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.

  2. 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.

  3. 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.

  4. 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

  5. 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.

  6. 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.

  7. 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.