scipy.interpolate.LSQUnivariateSpline.
反導數#
- LSQUnivariateSpline.反導數(n=1)[原始碼]#
建構一個新的 spline,代表此 spline 的反導數。
- 參數:
- n整數,選填
要評估的反導數階數。預設值:1
- 回傳:
- splineUnivariateSpline
階數 k2=k+n 的 Spline,代表此 spline 的反導數。
另請參閱
註解
在版本 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