cumulative_trapezoid¶
- paddle. cumulative_trapezoid ( y, x=None, dx=None, axis=- 1, name=None ) [source]
-
Integrate along the given axis using the composite trapezoidal rule. Use the cumsum method
- Parameters
-
y (Tensor) – Input tensor to integrate. It’s data type should be float16, float32, float64.
x (Tensor, optional) – The sample points corresponding to the
y
values, the same type asy
. It is known that the size ofy
is [d_1, d_2, … , d_n] and \(axis=k\), then the size ofx
can only be [d_k] or [d_1, d_2, … , d_n ]. Ifx
is None, the sample points are assumed to be evenly spaceddx
apart. The default is None.dx (float, optional) – The spacing between sample points when
x
is None. If neitherx
nordx
is provided then the default is \(dx = 1\).axis (int, optional) – The axis along which to integrate. The default is -1.
name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.
- Returns
-
Tensor, Definite integral of
y
is N-D tensor as approximated along a single axis by the trapezoidal rule. The result is an N-D tensor.
Examples
>>> import paddle >>> y = paddle.to_tensor([4, 5, 6], dtype='float32') >>> paddle.cumulative_trapezoid(y) Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True, [4.50000000, 10. ]) >>> paddle.cumulative_trapezoid(y, dx=2.) >>> # Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True, >>> # [9. , 20.]) >>> y = paddle.to_tensor([4, 5, 6], dtype='float32') >>> x = paddle.to_tensor([1, 2, 3], dtype='float32') >>> paddle.cumulative_trapezoid(y, x) Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True, [4.50000000, 10. ]) >>> y = paddle.to_tensor([1, 2, 3], dtype='float64') >>> x = paddle.to_tensor([8, 6, 4], dtype='float64') >>> paddle.cumulative_trapezoid(y, x) Tensor(shape=[2], dtype=float64, place=Place(cpu), stop_gradient=True, [-3., -8.]) >>> y = paddle.arange(6).reshape((2, 3)).astype('float32') >>> paddle.cumulative_trapezoid(y, axis=0) Tensor(shape=[1, 3], dtype=float32, place=Place(cpu), stop_gradient=True, [[1.50000000, 2.50000000, 3.50000000]]) >>> paddle.cumulative_trapezoid(y, axis=1) Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True, [[0.50000000, 2. ], [3.50000000, 8. ]])