python求n阶泰勒展开
时间: 2023-05-23 22:06:28 浏览: 132
对于函数$f(x)$在$x=a$处$n$阶泰勒展开式为:
$$ f(x) = \sum_{k=0}^{n} \frac{f^{(k)}(a)}{k!} (x-a)^k + R_n(x) $$
其中,$f^{(k)}(a)$表示$f(x)$在$x=a$处的$k$阶导数,$R_n(x)$为剩余项。
Python代码实现如下:
```python
import sympy
# 定义符号变量
x = sympy.Symbol('x')
# 定义函数表达式
f = sympy.sin(x)
# 定义展开点
a = 0
# 定义展开阶数
n = 3
# 求n阶导数
derivs = []
for i in range(n+1):
derivs.append(f.diff(x, i))
# 计算泰勒展开式
taylor = sum([(derivs[i].subs(x, a)/sympy.factorial(i))*(x-a)**i for i in range(n+1)])
# 计算剩余项
remainder = sympy.O((x-a)**(n+1))
# 打印结果
print('n阶泰勒展开式:', taylor)
print('剩余项:', remainder)
```
这里以求$f(x)=sin(x)$在$x=0$处的三阶泰勒展开为例。代码输出结果:
```
n阶泰勒展开式: x**3/6 - x**5/120 + x**7/5040
剩余项: O(x**4)
```
因此,$sin(x)$在$x=0$处的三阶泰勒展开式为:$$ sin(x) = x - \frac{x^3}{3!}+\frac{x^5}{5!} - \frac{x^7}{7!} + O(x^{4}) $$
阅读全文