trapz(y, x=None, dx=1.0, axis=-1)
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 $\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$
.
Image 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.
Input array to integrate.
The sample points corresponding to the y
values. If x
is None, the sample points are assumed to be evenly spaced dx
apart. The default is None.
The spacing between sample points when x
is None. The default is 1.
The axis along which to integrate.
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.
Integrate along the given axis using the composite trapezoidal rule.
>>> np.trapz([1,2,3]) 4.0
>>> np.trapz([1,2,3], x=[4,6,8]) 8.0
>>> np.trapz([1,2,3], dx=2) 8.0
Using a decreasing x
corresponds to integrating in reverse:
>>> np.trapz([1,2,3], x=[8,6,4]) -8.0
More generally x
is used to integrate along a parametric curve. This finds 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)
... np.trapz(np.cos(theta), x=np.sin(theta)) 3.141571941375841
>>> a = np.arange(6).reshape(2, 3)
... a array([[0, 1, 2], [3, 4, 5]])
>>> np.trapz(a, axis=0) array([1.5, 2.5, 3.5])
>>> np.trapz(a, axis=1) array([2., 8.])See :
The following pages refer to to this document either explicitly or contain code examples using this.
numpy.sum
numpy.cumsum
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them