我想在python中使用Matplot绘制Taylor系列图

时间:2018-10-17 07:23:04

标签: python numpy matplotlib sympy taylor-series

import matplotlib.pyplot as plt
import sympy as sy
import numpy as np

x=sy.Symbol('x')

plt.title("Comparison of EXP(x), PP1, PP2")
plt.xlim(0-0.1, 3+0.2)
plt.ylim(0, 20+1)
plt.xlabel("x") 
plt.ylabel("y: values")
plt.grid(False)


x=np.linspace(0.0, 3.0, 100)
plt.plot(x, np.exp(x), label="exp(x)")
plt.plot(x, np.exp(x).series(x, 0, 4), label="PP1")
plt.legend(loc=2)
plt.show();

我使用Jupyter Notebook。 我想绘制exp(x)的Taylor系列。 我只是成功地绘制了exp(x)图,但没有使exp(x)的taylor seires失败。 Sympy库具有taylor系列功能,因此我尝试了它,但是我不明白这是什么问题。 下面是错误消息和图表。

Error Message

1 个答案:

答案 0 :(得分:0)

sy.exp(x).series(x)创建一个sympy表达式,而不是一个函数

您可能希望将其转换为函数

from sympy.utilities.lambdify import lambdify

x = sy.Symbol('x')
exp_expr = sy.exp(x).series(x).removeO()
exp_func = lambdify(x, exp_expr)

并将其绘制出来

x_points = np.linspace(0.0, 3.0, 100)
plt.plot(x_points, [exp_func(i) for i in x_points])