SciPy

scipy.interpolate.UnivariateSpline.integral

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