scipy.interpolate.LSQUnivariateSpline.antiderivative¶
- LSQUnivariateSpline.antiderivative(n=1)[源代码]¶
构造一个表示该样条的逆导数的新样条。
- 参数
- n整型,可选
要计算的反导数的顺序。默认值:1
- 退货
- splineUnivariateSpline
阶为k2=k+n的样条,表示该样条的逆导数。
参见
注意事项
0.13.0 新版功能.
示例
>>> 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