如何使用 sympy 为 x 的正弦生成泰勒级数
How to use sympy to generate Taylor Series for sine of x
我正在使用 Python 的 sympy 为 sin x
创建泰勒级数
以下是 sin(x) 的泰勒级数。参考here
那么下面是我应该如何编写 python 代码来创建泰勒级数表达式
代码:
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)
问题:
正如您在上面看到的,我使用手写方式制作了 T_sin5
,而使用 sympy
制作了 T_sin5_2
。所以,我的问题是:技术 1 是否与技术 2 相同? T_sin5
和T_sin5_2
是一样的吗
print(T_sin5)
和 print(T_sin5_2)
似乎都打印了如下系列的一半:
-x**3/6 + x
我原以为这两种印刷品都能打印出 Talor 系列的前 5 个术语,如下所示。
1 - x3/6 + x5/120 - x7/5040 + x9/362880
为什么 print(T_sin5_2)
不能像上面那样打印出泰勒级数的 5 项?
Python版本:
我的 python 版本是 3.8.6
series
的n
参数描述
The number of terms up to which the series is to be expanded.
这包括零项(因为它发生在 sin(x)
的每个第二项)。 IE。 n-1
是级数中最大的幂,所以对于 series(x, 0, 5)
这恰好是 4
并且对于这个幂系数为零。
对于您的自定义版本,虽然它应该打印完整系列(这是我得到的输出):
>>> print(T_sin5)
x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1
我正在使用 Python 的 sympy 为 sin x
以下是 sin(x) 的泰勒级数。参考here
那么下面是我应该如何编写 python 代码来创建泰勒级数表达式
代码:
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)
问题:
正如您在上面看到的,我使用手写方式制作了 T_sin5
,而使用 sympy
制作了 T_sin5_2
。所以,我的问题是:技术 1 是否与技术 2 相同? T_sin5
和T_sin5_2
是一样的吗
print(T_sin5)
和 print(T_sin5_2)
似乎都打印了如下系列的一半:
-x**3/6 + x
我原以为这两种印刷品都能打印出 Talor 系列的前 5 个术语,如下所示。
1 - x3/6 + x5/120 - x7/5040 + x9/362880
为什么 print(T_sin5_2)
不能像上面那样打印出泰勒级数的 5 项?
Python版本:
我的 python 版本是 3.8.6
series
的n
参数描述
The number of terms up to which the series is to be expanded.
这包括零项(因为它发生在 sin(x)
的每个第二项)。 IE。 n-1
是级数中最大的幂,所以对于 series(x, 0, 5)
这恰好是 4
并且对于这个幂系数为零。
对于您的自定义版本,虽然它应该打印完整系列(这是我得到的输出):
>>> print(T_sin5)
x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1