scipy.integrate.simps¶

scipy.integrate.
simps
(y, x=None, dx=1, axis=1, even='avg')[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.
If there are an even number of samples, N, then there are an odd number of intervals (N1), but Simpson’s rule requires an even number of intervals. The parameter ‘even’ controls how this is handled.
Parameters:  y : array_like
Array to be integrated.
 x : array_like, optional
If given, the points at which y is sampled.
 dx : int, optional
Spacing of integration points along axis of y. Only used when x is None. Default is 1.
 axis : int, optional
Axis along which to integrate. Default is the last axis.
 even : str {‘avg’, ‘first’, ‘last’}, optional
 ‘avg’ : Average two results:1) use the first N2 intervals with
a trapezoidal rule on the last interval and 2) use the last N2 intervals with a trapezoidal rule on the first interval.
 ‘first’ : Use Simpson’s rule for the first N2 intervals with
a trapezoidal rule on the last interval.
 ‘last’ : Use Simpson’s rule for the last N2 intervals with a
trapezoidal rule on the first interval.
See also
quad
 adaptive quadrature using QUADPACK
romberg
 adaptive Romberg quadrature
quadrature
 adaptive Gaussian quadrature
fixed_quad
 fixedorder Gaussian quadrature
dblquad
 double integrals
tplquad
 triple integrals
romb
 integrators for sampled data
cumtrapz
 cumulative integration for sampled data
ode
 ODE integrators
odeint
 ODE integrators
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.
Examples
>>> from scipy import integrate >>> x = np.arange(0, 10) >>> y = np.arange(0, 10)
>>> integrate.simps(y, x) 40.5
>>> y = np.power(x, 3) >>> integrate.simps(y, x) 1642.5 >>> integrate.quad(lambda x: x**3, 0, 9)[0] 1640.25
>>> integrate.simps(y, x, even='first') 1644.5