Skip to main content
`Ctrl`+`K`

# scipy.interpolate.UnivariateSpline.antiderivative

UnivariateSpline.antiderivative(n=1)

  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.

  See also

  `splantider`, `derivative`

  Notes

  New in version 0.13.0.

  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)
      (array(2.1565429877197317), array(2.1565429877201865))

  Antiderivative can be used to evaluate definite integrals:

      >>> ispl = spl.antiderivative()
      >>> ispl(np.pi/2) - ispl(0)
      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