scipy.interpolate.

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) 擬合到提供的 xy 資料。樣條函數通過所有提供的點。等效於 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()
../../_images/scipy-interpolate-InterpolatedUnivariateSpline-1_00_00.png

請注意 spl(x) 內插 y

>>> spl.get_residual()
0.0

方法

__call__(x[, nu, ext])

在位置 x 評估樣條 (或其 nu 階導數)。

antiderivative([n])

建構一個新的樣條,表示此樣條的反導數。

derivative([n])

建構一個新的樣條,表示此樣條的導數。

derivatives(x)

傳回點 x 處樣條的所有導數。

get_coeffs()

傳回樣條係數。

get_knots()

傳回樣條內部節點的位置。

get_residual()

傳回樣條近似的平方殘差的加權總和。

integral(a, b)

傳回兩個給定點之間樣條的定積分。

roots()

傳回樣條的零點。

set_smoothing_factor(s)

使用給定的平滑因子 s 和上次呼叫時找到的節點繼續樣條計算。

validate_input