scipy.interpolate.LSQUnivariateSpline.

反導數#

LSQUnivariateSpline.反導數(n=1)[原始碼]#

建構一個新的 spline,代表此 spline 的反導數。

參數:
n整數,選填

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

回傳:
splineUnivariateSpline

階數 k2=k+n 的 Spline,代表此 spline 的反導數。

另請參閱

splantider, derivative

註解

在版本 0.13.0 中新增。

範例

>>> import numpy as np
>>> from scipy.interpolate import UnivariateSpline
>>> x = np.linspace(0, np.pi/2, 70)
>>> y = 1 / np.sqrt(1 - 0.8*np.sin(x)**2)
>>> spl = UnivariateSpline(x, y, s=0)

導數是反導數的逆運算,但會累積一些浮點誤差

>>> spl(1.7), spl.antiderivative().derivative()(1.7)
(array(2.1565429877197317), array(2.1565429877201865))

反導數可用於評估定積分

>>> ispl = spl.antiderivative()
>>> ispl(np.pi/2) - ispl(0)
2.2572053588768486

這確實是完整橢圓積分 \(K(m) = \int_0^{\pi/2} [1 - m\sin^2 x]^{-1/2} dx\) 的近似值

>>> from scipy.special import ellipk
>>> ellipk(0.8)
2.2572053268208538