Python 如何用sympy生成x的正弦泰勒级数

Python 如何用sympy生成x的正弦泰勒级数,python,sympy,trigonometry,taylor-series,Python,Sympy,Trigonometry,Taylor Series,我正在使用Python为sinx 下面是sin(x)的泰勒级数。参考文献 接下来,我应该如何编写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))

我正在使用Python为
sinx

下面是sin(x)的泰勒级数。参考文献

接下来,我应该如何编写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\u sin5
,而
T\u sin5\u 2
是用
sympy
制作的。所以,我的问题是:技术1和技术2是一样的吗?
T\u sin5
T\u sin5\u 2
相同

print(T\u sin5)
print(T\u sin5\u 2)
似乎都能打印出该系列的一半,如下所示:

-x**3/6+x

我希望这两个印刷品都能为塔洛系列的前5个术语精雕细琢,如下所示

1-x3/6+x5/120-x7/5040+x9/362880

为什么不
打印(T\u sin5\u 2)
像上面那样打印泰勒级数的5项

Python版本:

我的python版本是3.8.6

n
参数

序列要扩展到的项数

这包括零项(对于
sin(x)
,每隔一秒就出现一个零项)。也就是说,
n-1
是序列中的最大幂,因此对于
序列(x,0,5)
这恰好是
4
,对于该幂,系数为零

对于您的自定义版本,虽然它应该打印完整系列(这是我得到的输出):


啊,对。自定义版本打印我添加的所有5个术语。当时我的问题有点不对劲。我会改正的。
>>> print(T_sin5)
x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1