SciPy

scipy.interpolate.LSQUnivariateSpline.integral

LSQUnivariateSpline.integral(a, b)[source]

Return definite integral of the spline between two given points.

Parameters:
a : float

Lower limit of integration.

b : float

Upper limit of integration.

Returns:
integral : float

The value of the definite integral of the spline between limits.

Examples

>>> from scipy.interpolate import UnivariateSpline
>>> x = np.linspace(0, 3, 11)
>>> y = x**2
>>> spl = UnivariateSpline(x, y)
>>> spl.integral(0, 3)
9.0

which agrees with \(\int x^2 dx = x^3 / 3\) between the limits of 0 and 3.

A caveat is that this routine assumes the spline to be zero outside of the data limits:

>>> spl.integral(-1, 4)
9.0
>>> spl.integral(-1, 0)
0.0