scipy.interpolate.approximate_taylor_polynomial¶
- scipy.interpolate.approximate_taylor_polynomial(f, x, degree, scale, order=None)[源代码]¶
用多项式拟合估计f在x的泰勒多项式。
- 参数
- f可调用
求其泰勒多项式的函数。应接受向量为 x 价值。
- x标量
多项式求值的点。
- degree集成
泰勒多项式的次数
- scale标量
用于计算泰勒多项式的间隔宽度。分布在如此宽的范围内的函数值被用来拟合多项式。必须仔细挑选。
- order整型或无型,可选
拟合中使用的多项式的阶数; f 将进行评估
order+1
泰晤士报。如果没有,则使用 degree 。
- 退货
- pPoly1d实例
泰勒多项式(转换为原点,例如p(0)=f(X))。
注意事项
“标度”的适当选择是一种权衡;太大,函数与其泰勒多项式相差太大,无法得到好的答案;太小,舍入误差压倒了高阶项。即使在理想情况下,所使用的算法在30阶左右也会变得数值不稳定。
选择比阶数稍大的阶数可以改善高阶项。
示例
我们可以计算不同次数的正弦函数的泰勒逼近多项式:
>>> import matplotlib.pyplot as plt >>> from scipy.interpolate import approximate_taylor_polynomial >>> x = np.linspace(-10.0, 10.0, num=100) >>> plt.plot(x, np.sin(x), label="sin curve") >>> for degree in np.arange(1, 15, step=2): ... sin_taylor = approximate_taylor_polynomial(np.sin, 0, degree, 1, ... order=degree + 2) ... plt.plot(x, sin_taylor(x), label=f"degree={degree}") >>> plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', ... borderaxespad=0.0, shadow=True) >>> plt.tight_layout() >>> plt.axis([-10, 10, -10, 10]) >>> plt.show()