如何使用sympy为x

问题描述

我正在使用Python的sympysin 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,5).removeO()
print(T_sin5_2)

问题:
如您在上面看到的,我用手写方式制作了T_sin5,而T_sin5_2是使用sympy制作的。因此,我的问题是:技术1是否与技术2相同? T_sin5T_sin5_2相同。

print(T_sin5)print(T_sin5_2)似乎都打印了该系列的一半,如下所示:

-x ** 3/6 + x

我希望这两张照片都能印出Talor系列的前5个字词,如下所示。

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

为什么print(T_sin5_2)不能像上面那样打印出泰勒级数的5个术语?

Python版本:
我的python版本是3.8.6

解决方法

seriesn参数描述

要扩展的系列的术语数。

这包括零项(因为sin(x)每隔第二项发生一次)。即n-1是该序列中的最大幂,因此对于series(x,5),它恰好是4,并且对于该幂,系数为零。

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

>>> print(T_sin5)
x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...