当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy interpolate.approximate_taylor_polynomial用法及代码示例


本文简要介绍 python 语言中 scipy.interpolate.approximate_taylor_polynomial 的用法。

用法:

scipy.interpolate.approximate_taylor_polynomial(f, x, degree, scale, order=None)#

通过多项式拟合估计 f 在 x 处的泰勒多项式。

参数

f 可调用的

寻找泰勒多项式的函数。应该接受 x 值的向量。

x 标量

要评估多项式的点。

degree int

泰勒多项式的次数

scale 标量

用于评估泰勒多项式的区间宽度。分布在如此宽范围内的函数值用于拟合多项式。必须谨慎选择。

order int 或无,可选

拟合中使用的多项式的阶数;f将被评估order+1次。如果没有,使用程度.

返回

p poly1d 实例

泰勒多项式(转换为原点,例如 p(0)=f(x))。

注意

The appropriate choice of “scale” is a trade-off;太大并且函数与其泰勒多项式的差异太大而无法得到一个好的答案,太小和舍入误差会压倒高阶项。即使在理想情况下,所使用的算法也会在 30 阶左右数值不稳定。

选择稍大于度数的阶数可能会改善高阶项。

例子

我们可以计算各种度数的 sin 函数的泰勒逼近多项式:

>>> import numpy as np
>>> 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()
scipy-interpolate-approximate_taylor_polynomial-1.png

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.approximate_taylor_polynomial。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。