scipy.interpolate.InterpolatedUnivariateSpline.
原函数#
- InterpolatedUnivariateSpline.antiderivative(n=1)[源代码]#
构建一个新的样条曲线,表示此样条曲线的反导数。
- 参数:
- nint, 可选
反导数的阶数以进行评估。默认值:1
- 返回:
- 样条UnivariateSpline
阶数为 k2=k+n 的样条曲线表示此样条曲线的反导数。
参见
注释
Added in version 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