本文簡要介紹 python 語言中 scipy.interpolate.KroghInterpolator
的用法。
用法:
class scipy.interpolate.KroghInterpolator(xi, yi, axis=0)#
對一組點進行插值多項式。
多項式通過所有對
(xi, yi)
。可以另外指定每一點的導數數量xi;這是通過重複該值來完成的xi並將導數指定為連續的義值。允許對多項式及其所有導數進行評估。出於數值穩定性的原因,此函數不計算多項式的係數,盡管它們可以通過評估所有導數來獲得。
- xi: 類似數組,形狀 (npoints, )
已知的 x 坐標。必須按升序排列。
- yi: 數組,形狀(...,npoints,...)
已知 y 坐標。當 xi 連續出現兩次或多次時,相應的 yi 表示導數值。 yi 沿插補軸的長度必須等於 xi 的長度。使用軸參數選擇正確的軸。
- axis: 整數,可選
軸在義對應於 x 坐標值的數組。默認為
axis=0
.
參數 ::
注意:
請注意,此處實現的算法不一定是已知的數值最穩定的算法。此外,即使在精確計算的世界中,除非非常仔細地選擇 x 坐標——切比雪夫零點(例如 cos(i*pi/n))是一個不錯的選擇——多項式插值本身就是一個非常ill-conditioned 的過程,因為龍格現象。通常,即使使用well-chosen x 值,高於大約 30 的度數也會導致此代碼中出現數值不穩定的問題。
基於[1]。
參考:
[1]Krogh,“多項式插值和數值微分的有效算法”,1970 年。
例子:
要生成在 0 和 1 處為零且在 0 處導數為 2 的多項式,請調用
>>> from scipy.interpolate import KroghInterpolator >>> KroghInterpolator([0,0,1],[0,2,0])
這構造了二次方程
。導數條件由重複的零表示xi大批;對應的 yi 值為 0(函數值)和 2(導數值)。再舉一個例子,給定 xi、yi 和每個點的導數 ypi,適當的數組可以構造為:
>>> import numpy as np >>> rng = np.random.default_rng() >>> xi = np.linspace(0, 1, 5) >>> yi, ypi = rng.random((2, 5)) >>> xi_k, yi_k = np.repeat(xi, 2), np.ravel(np.dstack((yi,ypi))) >>> KroghInterpolator(xi_k, yi_k)
要生成 vector-valued 多項式,請為 yi 提供一個高維數組:
>>> KroghInterpolator([0,1],[[2,3],[4,5]])
這構造了一個線性多項式,在 0 處給出 (2,3),在 1 處給出 (4,5)。
- dtype:
屬性 ::
相關用法
- Python SciPy interpolate.make_interp_spline用法及代碼示例
- Python SciPy interpolate.krogh_interpolate用法及代碼示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代碼示例
- Python SciPy interpolate.BSpline用法及代碼示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代碼示例
- Python SciPy interpolate.griddata用法及代碼示例
- Python SciPy interpolate.splder用法及代碼示例
- Python SciPy interpolate.LinearNDInterpolator用法及代碼示例
- Python SciPy interpolate.PPoly用法及代碼示例
- Python SciPy interpolate.NdBSpline用法及代碼示例
- Python SciPy interpolate.pade用法及代碼示例
- Python SciPy interpolate.barycentric_interpolate用法及代碼示例
- Python SciPy interpolate.RegularGridInterpolator用法及代碼示例
- Python SciPy interpolate.NdPPoly用法及代碼示例
- Python SciPy interpolate.interp2d用法及代碼示例
- Python SciPy interpolate.approximate_taylor_polynomial用法及代碼示例
- Python SciPy interpolate.RectSphereBivariateSpline用法及代碼示例
- Python SciPy interpolate.sproot用法及代碼示例
- Python SciPy interpolate.splantider用法及代碼示例
- Python SciPy interpolate.CloughTocher2DInterpolator用法及代碼示例
- Python SciPy interpolate.interp1d用法及代碼示例
- Python SciPy interpolate.BPoly用法及代碼示例
- Python SciPy interpolate.BarycentricInterpolator用法及代碼示例
- Python SciPy interpolate.splrep用法及代碼示例
- Python SciPy interpolate.make_smoothing_spline用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.KroghInterpolator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。