xrscipy.integrate.simpson

xrscipy.integrate.simpson(obj, coord, even='avg')

Integrate y(x) using samples along the given coordinate 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 (N-1), but Simpson’s rule requires an even number of intervals. The parameter ‘even’ controls how this is handled.

Parameters:
  • obj (xarray object) – Array to be integrated.

  • coord (string) – The coordinate along which to integrate.

  • even (str {'avg', 'first', 'last'}, optional) –

    ‘avg’Average two results:1) use the first N-2 intervals with

    a trapezoidal rule on the last interval and 2) use the last N-2 intervals with a trapezoidal rule on the first interval.

    ’first’Use Simpson’s rule for the first N-2 intervals with

    a trapezoidal rule on the last interval.

    ’last’Use Simpson’s rule for the last N-2 intervals with a

    trapezoidal rule on the first interval.

Returns:

The estimated integral computed with the composite Simpson’s rule.

Return type:

float

See also

quad

adaptive quadrature using QUADPACK

romberg

adaptive Romberg quadrature

quadrature

adaptive Gaussian quadrature

fixed_quad

fixed-order Gaussian quadrature

dblquad

double integrals

tplquad

triple integrals

romb

integrators for sampled data

cumulative_trapezoid

cumulative integration for sampled data

ode

ODE integrators

odeint

ODE integrators

scipy.integrate.simpson

scipy.integrate.simpson : Original scipy implementation

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
>>> import numpy as np
>>> x = np.arange(0, 10)
>>> y = np.arange(0, 10)

Examples

>>> integrate.simpson(y, x)
40.5

Examples

>>> y = np.power(x, 3)
>>> integrate.simpson(y, x)
1642.5

Examples

>>> integrate.quad(lambda x: x**3, 0, 9)[0]
1640.25

Examples

>>> integrate.simpson(y, x, even='first')
1644.5