InterpolatedUnivariateSpline#
- class scipy.interpolate.InterpolatedUnivariateSpline(x, y, w=None, bbox=[None, None], k=3, ext=0, check_finite=False)[原始碼]#
給定一組資料點的 1-D 內插樣條。
傳統
此類別被視為傳統,將不再接收更新。雖然我們目前沒有移除它的計畫,但我們建議新程式碼改用更現代的替代方案。具體來說,我們建議改用
make_interp_spline
。將次數為 k 的樣條 y = spl(x) 擬合到提供的 x、y 資料。樣條函數通過所有提供的點。等效於
UnivariateSpline
,其中 s = 0。- 參數:
- x(N,) 類陣列
資料點的輸入維度 – 必須嚴格遞增
- y(N,) 類陣列
資料點的輸入維度
- w(N,) 類陣列,選用
樣條擬合的權重。必須為正數。如果為 None (預設值),則權重皆為 1。
- bbox(2,) 類陣列,選用
指定近似區間邊界的 2 序列。如果為 None (預設值),
bbox=[x[0], x[-1]]
。- kint,選用
平滑樣條的次數。必須為
1 <= k <= 5
。預設值為k = 3
,即三次樣條。- extint 或 str,選用
控制不在節點序列定義的區間內的元素的外插模式。
如果 ext=0 或 ‘extrapolate’,則傳回外插值。
如果 ext=1 或 ‘zeros’,則傳回 0
如果 ext=2 或 ‘raise’,則引發 ValueError
如果 ext=3 或 ‘const’,則傳回邊界值。
預設值為 0。
- check_finitebool,選用
是否檢查輸入陣列是否僅包含有限數字。停用可能會提高效能,但如果輸入包含無限大或 NaN,可能會導致問題 (崩潰、不終止或無意義的結果)。預設值為 False。
另請參閱
UnivariateSpline
用於擬合給定資料點集的平滑單變量樣條。
LSQUnivariateSpline
節點由使用者選擇的樣條
SmoothBivariateSpline
通過給定點的平滑雙變量樣條
LSQBivariateSpline
使用加權最小平方擬合的雙變量樣條
splrep
用於尋找 1-D 曲線的 B 樣條表示的函數
splev
用於評估 B 樣條或其導數的函數
sproot
用於尋找三次 B 樣條的根的函數
splint
用於評估兩個給定點之間 B 樣條的定積分的函數
spalde
用於評估 B 樣條的所有導數的函數
註解
資料點的數量必須大於樣條次數 k。
範例
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.interpolate import InterpolatedUnivariateSpline >>> rng = np.random.default_rng() >>> x = np.linspace(-3, 3, 50) >>> y = np.exp(-x**2) + 0.1 * rng.standard_normal(50) >>> spl = InterpolatedUnivariateSpline(x, y) >>> plt.plot(x, y, 'ro', ms=5) >>> xs = np.linspace(-3, 3, 1000) >>> plt.plot(xs, spl(xs), 'g', lw=3, alpha=0.7) >>> plt.show()
請注意
spl(x)
內插 y>>> spl.get_residual() 0.0
方法
__call__
(x[, nu, ext])在位置 x 評估樣條 (或其 nu 階導數)。
antiderivative
([n])建構一個新的樣條,表示此樣條的反導數。
derivative
([n])建構一個新的樣條,表示此樣條的導數。
derivatives
(x)傳回點 x 處樣條的所有導數。
傳回樣條係數。
傳回樣條內部節點的位置。
傳回樣條近似的平方殘差的加權總和。
integral
(a, b)傳回兩個給定點之間樣條的定積分。
roots
()傳回樣條的零點。
使用給定的平滑因子 s 和上次呼叫時找到的節點繼續樣條計算。
validate_input