scipy.interpolate.UnivariateSpline.

原函数#

UnivariateSpline.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