You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python初学者求助:求解g(x)=exp(-(x-3)**2)*sin(x)在x=0处4阶泰勒级数

如何用SymPy求解函数在x=0处的4阶泰勒级数?

嘿,作为Python初学者,能想到用SymPy来搞定泰勒级数问题已经超赞啦!我来一步步带你完成这个任务,保证清晰易懂~

步骤1:导入SymPy并定义符号变量

首先,咱得先导入SymPy库,然后定义符号变量x——这是SymPy做符号运算的核心,因为它要处理的是数学上的符号,不是具体的数值哦。

import sympy as sp

# 定义符号变量x
x = sp.symbols('x')

步骤2:定义目标函数g(x)

接下来,把你要处理的函数g(x) = exp(-(x-3)**2)*sin(x)用SymPy的语法写出来。注意要用SymPy自带的sp.exp()和sp.sin(),别用Python标准库math里的函数,因为后者只能处理数值,没法做符号运算~

# 定义函数g(x)
g = sp.exp(-(x - 3)**2) * sp.sin(x)

步骤3:生成4阶泰勒级数

SymPy专门提供了sp.series()函数来生成泰勒展开式,我们只需要指定几个关键参数:

  • 第一个参数:要展开的函数(也就是咱刚才定义的g)
  • 第二个参数:展开的变量(x)
  • 第三个参数:展开点(这里是0)
  • 第四个参数:展开到的阶数——注意哦,这里填5的话,就会展开到x的4次项(因为参数n表示最高次项是x^(n-1))

另外,如果不想看到结果里的余项O(x**5),可以用.removeO()方法去掉它。

# 生成x=0处的4阶泰勒级数,去掉余项
taylor_series = sp.series(g, x, 0, 5).removeO()

# 打印结果
print("x=0处的4阶泰勒级数:")
sp.pprint(taylor_series)

运行结果说明

运行上面的代码后,你会得到类似这样的展开式(自己跑代码也能得到完全一致的结果):

sin(3)e^(-9) + (cos(3)e^(-9) - 6sin(3)e^(-9))x + (-17sin(3)e^(-9)/2 - 6cos(3)e^(-9))x² + (-cos(3)e^(-9)/6 + 53sin(3)e^(-9)/3)x³ + (301sin(3)e^(-9)/24 + 53cos(3)e^(-9)/6)x⁴

如果你想把这些系数转换成具体的数值,可以用.evalf()方法,比如print(taylor_series.evalf()),就能得到近似的小数结果啦。

小提示

如果之后你需要提取展开式里某一项的系数,比如x²的系数,可以用sp.expand(taylor_series).coeff(x, 2),非常方便~

内容的提问来源于stack exchange,提问作者Sz.Vi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:32:24