scipy.interpolate.

splder#

scipy.interpolate.splder(tck, n=1)[原始碼]#

計算給定 spline 的導數的 spline 表示式

傳統

此函數被視為傳統函數,將不再接收更新。雖然我們目前沒有移除它的計劃,但我們建議新程式碼改用更現代的替代方案。具體來說,我們建議建構一個 BSpline 物件並使用其 derivative 方法。

參數:
tckBSpline 實例或元組

BSpline 實例或一個包含節點向量、B-spline 係數和要計算導數的 spline 次數的元組 (t,c,k)

nint,可選

要評估的導數階數。預設值:1

返回:
BSpline 實例或元組

代表輸入 spline 的導數的 k2=k-n 階 spline。如果輸入參數 tck 是元組,則返回元組,否則建構並返回 BSpline 物件。

另請參閱

splantidersplevspalde
BSpline

註解

在 0.13.0 版本中新增。

範例

這可用於尋找曲線的最大值

>>> from scipy.interpolate import splrep, splder, sproot
>>> import numpy as np
>>> x = np.linspace(0, 10, 70)
>>> y = np.sin(x)
>>> spl = splrep(x, y, k=4)

現在,微分 spline 並找到導數的零點。(注意:sproot 僅適用於 3 階 spline,因此我們擬合一個 4 階 spline)

>>> dspl = splder(spl)
>>> sproot(dspl) / np.pi
array([ 0.50000001,  1.5       ,  2.49999998])

這與 \(\cos(x) = \sin'(x)\) 的根 \(\pi/2 + n\pi\) 非常吻合。

spalde 範例章節中,可以找到 splevsplderspalde 之間計算 B-spline 導數的比較。