當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。