splantider — SciPy v1.15.2 Manual (original) (raw)
scipy.interpolate.
scipy.interpolate.splantider(tck, n=1)[source]#
Compute the spline for the antiderivative (integral) of a given spline.
Legacy
This function is considered legacy and will no longer receive updates. While we currently have no plans to remove it, we recommend that new code uses more modern alternatives instead. Specifically, we recommend constructing a BSpline object and using itsantiderivative
method.
Parameters:
tckBSpline instance or a tuple of (t, c, k)
Spline whose antiderivative to compute
nint, optional
Order of antiderivative to evaluate. Default: 1
Returns:
BSpline instance or a tuple of (t2, c2, k2)
Spline of order k2=k+n representing the antiderivative of the input spline. A tuple is returned iff the input argument tck is a tuple, otherwise a BSpline object is constructed and returned.
Notes
The splder function is the inverse operation of this function. Namely, splder(splantider(tck))
is identical to tck, modulo rounding error.
Added in version 0.13.0.
Examples
from scipy.interpolate import splrep, splder, splantider, splev import numpy as np x = np.linspace(0, np.pi/2, 70) y = 1 / np.sqrt(1 - 0.8*np.sin(x)**2) spl = splrep(x, y)
The derivative is the inverse operation of the antiderivative, although some floating point error accumulates:
splev(1.7, spl), splev(1.7, splder(splantider(spl))) (array(2.1565429877197317), array(2.1565429877201865))
Antiderivative can be used to evaluate definite integrals:
ispl = splantider(spl) splev(np.pi/2, ispl) - splev(0, ispl) 2.2572053588768486
This is indeed an approximation to the complete elliptic integral\(K(m) = \int_0^{\pi/2} [1 - m\sin^2 x]^{-1/2} dx\):
from scipy.special import ellipk ellipk(0.8) 2.2572053268208538