Jak napsat Taylorovu řadu v Pythonu

click fraud protection

Taylorova řada je reprezentace funkce pomocí nekonečného součtu. Počítače často provádějí aproximace hodnot trigonometrické, exponenciální nebo jiné transcendentální funkce sečtením konečného počtu členů její Taylorovy řady a můžete tento proces znovu vytvořit Krajta. Členy součtu jsou založeny na po sobě jdoucích derivacích funkce, takže budete muset identifikovat vzor v hodnotách těchto derivací, abyste mohli napsat vzorec pro každý člen řady. Poté použijte smyčku k akumulaci součtu a řiďte přesnost vaší aproximace s počtem iterací smyčky.

Krok 1

Podívejte se na definici Taylorovy řady, abyste pochopili, jak lze jednotlivé termíny vypočítat. Každý člen řady je indexován, typicky "n" a jeho hodnota souvisí s n-tou derivací reprezentované funkce. Pro jednoduchost použijte 0 pro hodnotu "a" při prvním pokusu. Tato speciální verze série Taylor se nazývá série Maclaurin. Vyzkoušejte funkci sinus, protože její následné derivace lze snadno určit.

Video dne

Krok 2

Zapište několik hodnot n-té derivace funkce sinus vyčíslené na 0. Pokud n je 0, hodnota je 0. Je-li n 1, je hodnota 1. Je-li n 2, je hodnota 0. Je-li n 3, je hodnota -1. Odtud se vzor opakuje, takže ignorujte každý sudý člen Taylorovy řady, protože je vynásoben 0. Vzorec pro každý člen výsledné řady je:

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

"2n+1" se používá místo "n" k přeindexování řady, čímž se účinně vyřadí termíny se sudým indexem beze změny samotného indexu. Faktor (-1)^n odpovídá za střídání kladných a záporných po sobě jdoucích členů. Tato předběžná matematická práce se může zdát zbytečná, ale kód Pythonu bude mnohem snazší napsat a znovu použít na jiných řadách Taylor, pokud index vždy začíná na 0 a počítá se nahoru v krocích po 1.

Krok 3

Otevřete interpret Pythonu. Začněte zadáním následujících příkazů k definování několika proměnných:

součet = 0 x = 0,5236

Proměnná "součet" bude použita k akumulaci součtu Taylorovy řady při výpočtu každého členu. Proměnná "x" je úhel (v radiánech), pro který chcete aproximovat funkci sinus. Nastavte si to, co chcete.

Krok 4

Importujte „matematický“ modul pomocí následujícího příkazu, abyste měli přístup k funkcím „pow“ a „factorial“:

importovat matematiku

Krok 5

Spusťte cyklus „for“ a nastavte počet iterací pomocí funkce „range“:

pro n v rozsahu (4):

To způsobí, že proměnná indexu n začne na nule a bude počítat až do 4. I tento malý počet iterací přinese překvapivě přesný výsledek. Smyčka se nespustí okamžitě a nezačne, dokud nezadáte celý blok kódu, který se má opakovat.

Krok 6

Zadejte následující příkaz a přidejte hodnotu každého následného výrazu k "součet:"

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

Všimněte si, že příkaz je odsazen tabulátorem, což Pythonu znamená, že je součástí cyklu „for“. Všimněte si také, jak se používají „pow“ a „factorial“ namísto „^“ a „!“ notový zápis. Vzorec napravo od operátoru přiřazení "+=" je identický se vzorcem v kroku 2, ale je napsán v syntaxi Pythonu.

Krok 7

Stiskněte "Enter" pro přidání prázdného řádku. Pro Python to znamená ukončení cyklu "for", takže se provede výpočet. Výsledek zobrazíte zadáním příkazu „součet“. Pokud jste použili hodnotu x uvedenou v kroku 3, výsledek je velmi blízký 0,5, sinus pí/6. Zkuste proces znovu pro různé hodnoty x a pro různé počty iterací cyklu, přičemž své výsledky porovnejte s funkcí "math.sin (x)". V Pythonu jste implementovali proces, který mnoho počítačů používá k výpočtu hodnot pro sinus a další transcendentální funkce.

Spropitné

Odsaďte a zadejte příkaz "sum" na druhém řádku cyklu "for", abyste získali průběžný součet součtu během provádění kódu. To ukazuje, jak každý následující člen řady přibližuje součet více a více skutečné hodnotě funkce.