simpson#
- scipy.integrate.simpson(y, x=None, *, dx=1.0, axis=-1)[source]#
Integrate y(x) using samples along the given axis and the composite Simpson’s rule. If x is None, spacing of dx is assumed.
- Parameters:
- yarray_like
Array to be integrated.
- xarray_like, optional
If given, the points at which y is sampled.
- dxfloat, optional
Spacing of integration points along axis of x. Only used when x is None. Default is 1.
- axisint, optional
Axis along which to integrate. Default is the last axis.
- Returns:
- float
The estimated integral computed with the composite Simpson’s rule.
See also
quadadaptive quadrature using QUADPACK
fixed_quadfixed-order Gaussian quadrature
dblquaddouble integrals
tplquadtriple integrals
rombintegrators for sampled data
cumulative_trapezoidcumulative integration for sampled data
cumulative_simpsoncumulative integration using Simpson’s 1/3 rule
Notes
For an odd number of samples that are equally spaced the result is exact if the function is a polynomial of order 3 or less. If the samples are not equally spaced, then the result is exact only if the function is a polynomial of order 2 or less.
Array API Standard Support
simpsonhas support for Python Array API Standard compatible backends in addition to NumPy. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
n/a
See Support for the array API standard for more information.
References
[1]Cartwright, Kenneth V. Simpson’s Rule Cumulative Integration with MS Excel and Irregularly-spaced Data. Journal of Mathematical Sciences and Mathematics Education. 12 (2): 1-9
Examples
>>> from scipy import integrate >>> import numpy as np >>> x = np.arange(0, 10) >>> y = np.arange(0, 10)
>>> integrate.simpson(y, x=x) 40.5
>>> y = np.power(x, 3) >>> integrate.simpson(y, x=x) 1640.5 >>> integrate.quad(lambda x: x**3, 0, 9)[0] 1640.25