Używam Pythona's href="https://www.sympy.org/en/index.html" ren="nofollow NefErrer"> Sympy , aby utworzyć serię Taylor dla sin x

Poniżej znajduje się seria taylor dla grzechu (x). Odniesienie Oto

Następnie następuje, jak powinienem napisać kod Pythona, aby utworzyć wyrażenie serii Taylora

Kod:

import sympy as sym
import math

x = sym.symbols('x')

# Technique 1: Compute the 5 first terms in a Taylor series for sin(x) around x = 0. 
T_sin5 = 1 - (x**3/math.factorial(3)) + (x**5/math.factorial(5)) - (x**7/math.factorial(7)) + (x**9/math.factorial(9))
print(T_sin5)

# Technique 2: Compute the 5 first terms in a Taylor series for sin(x) around x = 0 using sympy
T_sin5_2 = sym.sin(x).series(x, 0, 5).removeO()
print(T_sin5_2)

Pytanie:
Jak widać powyżej, zrobiłem T_sin5 za pomocą ręcznego napisanego drogi, podczas gdy T_sin5_2 jest wykonany przy użyciu sympy. Tak więc moje pytanie brzmi: jest technika 1 taka sama jak technika 2? Są T_sin5 i T_sin5_2 to samo.

print(T_sin5) i print(T_sin5_2) Oboje wydają się drukować połowę serii jak poniżej:

-x ** 3/6 + x

Spodziewałem się zarówno wydruków, aby wydrukować serię Taylor za pierwsze 5 terminów, które będą poniżej.

1 - x 3/6 + x 5/120 - x 7/5040 + x 9/362880

Dlaczego nie print(T_sin5_2) wydrukuje 5 warunków serii Taylor jak powyżej?

Wersja Pythona:
Moja wersja Pythona wynosi 3,8.6

1
TheWaterProgrammer 25 październik 2020, 23:07

1 odpowiedź

Najlepsza odpowiedź

Parametr {{X0} X1}} opisuje

Liczba warunków, do których należy rozszerzyć serię.

Obejmuje to terminy, które są zerowe (jak to się dzieje dla każdej drugiej kadencji dla sin(x)). To znaczy. n-1 jest największą mocą w serii, więc dla series(x, 0, 5) ma to być 4 i dla tej mocy współczynnik wynosi zero.

W przypadku wersji niestandardowej, choć powinna drukować pełną serię (to jest wyjście, które otrzymuję):

>>> print(T_sin5)
x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1
2
a_guest 25 październik 2020, 20:14