xrscipy.integrate.trapezoid
- xrscipy.integrate.trapezoid(obj, coord)
Integrate along the given coordinate using the composite trapezoidal rule.
If x is provided, the integration happens in sequence along its elements - they are not sorted.
Integrate y (x) along each 1d slice on the given coordinate, compute \(\int y(x) dx\). When x is specified, this integrates along the parametric curve, computing \(\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\).
- Parameters:
obj (xarray object) – Input array to integrate.
coord (string) – The coordinate along which to integrate.
- Returns:
trapezoid – Definite integral of y = n-dimensional array as approximated along a single axis by the trapezoidal rule. If y is a 1-dimensional array, then the result is a float. If n is greater than 1, then the result is an n-1 dimensional array.
- Return type:
float or ndarray
See also
cumulative_trapezoid
,simpson
,romb
scipy.integrate.trapezoid
scipy.integrate.trapezoid : Original scipy implementation
Notes
Image [2] illustrates trapezoidal rule – y-axis locations of points will be taken from y array, by default x-axis distances between points will be 1.0, alternatively they can be provided with x array or with dx scalar. Return value will be equal to combined area under the red lines.
References
Examples
None Use the trapezoidal rule on evenly spaced points:
Examples
>>> import numpy as np >>> from scipy import integrate >>> integrate.trapezoid([1, 2, 3]) 4.0
The spacing between sample points can be selected by either the
x
ordx
arguments:Examples
>>> integrate.trapezoid([1, 2, 3], x=[4, 6, 8]) 8.0
Examples
>>> integrate.trapezoid([1, 2, 3], dx=2) 8.0
Using a decreasing
x
corresponds to integrating in reverse:Examples
>>> integrate.trapezoid([1, 2, 3], x=[8, 6, 4]) -8.0
More generally
x
is used to integrate along a parametric curve. We can estimate the integral \(\int_0^1 x^2 = 1/3\) using:Examples
>>> x = np.linspace(0, 1, num=50) >>> y = x**2 >>> integrate.trapezoid(y, x) 0.33340274885464394
Or estimate the area of a circle, noting we repeat the sample which closes the curve:
Examples
>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True) >>> integrate.trapezoid(np.cos(theta), x=np.sin(theta)) 3.141571941375841
trapezoid
can be applied along a specified axis to do multiple computations in one call:Examples
>>> a = np.arange(6).reshape(2, 3) >>> a array([[0, 1, 2], [3, 4, 5]])
Examples
>>> integrate.trapezoid(a, axis=0) array([1.5, 2.5, 3.5])
Examples
>>> integrate.trapezoid(a, axis=1) array([2., 8.])