bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / integrate / _quadrature / trapezoid
function
scipy.integrate._quadrature:trapezoid
source: build-install/usr/lib/python3.14/site-packages/scipy/integrate/_quadrature.py:22
Signature
def trapezoid(y, x = None, dx = 1.0, axis = -1)Summary
Integrate along the given axis using the composite trapezoidal rule.
Extended Summary
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 axis, compute . When x is specified, this integrates along the parametric curve given by , computing the line integral .
Parameters
y: array_likeInput array to integrate.
x: array_like, optionalThe sample points corresponding to the
yvalues. Ifxis None, the sample points are assumed to be evenly spaceddxapart. The default is None.dx: scalar, optionalThe spacing between sample points when
xis None. The default is 1.axis: int, optionalThe axis along which to integrate. The default is the last axis.
Returns
trapezoid: float or ndarrayDefinite integral of
y= n-dimensional array as approximated along a single axis by the trapezoidal rule. Ifyis a 1-dimensional array, then the result is a float. Ifnis greater than 1, then the result is ann-1 dimensional array.
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.
Examples
Use the trapezoidal rule on evenly spaced points:import numpy as np from scipy import integrate✓
integrate.trapezoid([1, 2, 3])
✗np.float64(4.0)The spacing between sample points can be selected by either the ``x`` or ``dx`` arguments:
integrate.trapezoid([1, 2, 3], x=[4, 6, 8]) integrate.trapezoid([1, 2, 3], dx=2)✗
np.float64(8.0)Using a decreasing ``x`` corresponds to integrating in reverse:
integrate.trapezoid([1, 2, 3], x=[8, 6, 4])
✗np.float64(-8.0)More generally ``x`` is used to integrate along a parametric curve. We can estimate the integral :math:`\int_0^1 x^2 = 1/3` using:
x = np.linspace(0, 1, num=50) y = x**2✓
integrate.trapezoid(y, x)
✗np.float64(0.33340274885464394)Or estimate the area of a circle, noting we repeat the sample which closes the curve:
theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
✓integrate.trapezoid(np.cos(theta), x=np.sin(theta))
✗np.float64(3.141571941375841)``trapezoid`` can be applied along a specified axis to do multiple computations in one call:
a = np.arange(6).reshape(2, 3) a integrate.trapezoid(a, axis=0)✓
array([1.5, 2.5, 3.5])
integrate.trapezoid(a, axis=1)
✗array([2., 8.])
See also
Aliases
scipy.integrate.trapezoid