{ } Raw JSON

bundles / scipy 1.17.1 / scipy / interpolate / _fitpack2 / UnivariateSpline / antiderivative

function

scipy.interpolate._fitpack2:UnivariateSpline.antiderivative

source: /scipy/interpolate/_fitpack2.py :603

Signature

def   antiderivative ( self n = 1 )

Summary

Construct a new spline representing the antiderivative of this spline.

Parameters

n : int, optional

Order of antiderivative to evaluate. Default: 1

Returns

spline : UnivariateSpline

Spline of order k2=k+n representing the antiderivative of this spline.

Notes

Examples

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)
The derivative is the inverse operation of the antiderivative, although some floating point error accumulates:
spl(1.7), spl.antiderivative().derivative()(1.7)
Antiderivative can be used to evaluate definite integrals:
ispl = spl.antiderivative()
ispl(np.pi/2) - ispl(0)
This is indeed an approximation to the complete elliptic integral :math:`K(m) = \int_0^{\pi/2} [1 - m\sin^2 x]^{-1/2} dx`:
from scipy.special import ellipk
ellipk(0.8)

See also

derivative
splantider

Aliases

  • scipy.interpolate.UnivariateSpline.antiderivative