numpy.trapezoid#
- numpy.trapezoid(y, x=None, dx=1.0, axis=-1)[源代码]#
使用复合梯形法则沿给定的轴积分.
如果提供了 x ,则沿着其元素按顺序进行积分 - 它们没有排序.
沿给定轴积分 y ( x ) 的每个 1d 切片,计算 \(\int y(x) dx\) . 当指定 x 时,这会沿着参数曲线积分,计算 \(\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\) .
在 2.0.0 版本加入.
- 参数:
- yarray_like
要积分的输入数组.
- xarray_like, optional
与 y 值对应的采样点.如果 x 为 None,则假定采样点均匀分布,间距为 dx .默认为 None.
- dx标量,可选.
当 x 为 None 时,采样点之间的间距.默认为 1.
- axis整数,可选
要沿其积分的轴.
- 返回:
- trapezoidfloat 或 ndarray
y 的定积分 = n 维数组,通过梯形法则沿单个轴逼近.如果 y 是一维数组,则结果是一个浮点数.如果 n 大于 1,则结果是一个 n -1 维数组.
注释
图像 [2] 说明了梯形法则 – 点的 y 轴位置将从 y 数组中获取,默认情况下,点之间的 x 轴距离将为 1.0,或者可以使用 x 数组或 dx 标量提供.返回值将等于红色线下方的组合面积.
参考
[1]示例
>>> import numpy as np
在均匀间隔的点上使用梯形法则:
>>> np.trapezoid([1, 2, 3]) 4.0
采样点之间的间距可以通过
x或dx参数选择:>>> np.trapezoid([1, 2, 3], x=[4, 6, 8]) 8.0 >>> np.trapezoid([1, 2, 3], dx=2) 8.0
使用递减的
x对应于反向积分:>>> np.trapezoid([1, 2, 3], x=[8, 6, 4]) -8.0
更一般地,
x用于沿参数曲线积分.我们可以使用以下方法估计积分 \(\int_0^1 x^2 = 1/3\) :>>> x = np.linspace(0, 1, num=50) >>> y = x**2 >>> np.trapezoid(y, x) 0.33340274885464394
或者估计一个圆的面积,注意我们重复采样来闭合曲线:
>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True) >>> np.trapezoid(np.cos(theta), x=np.sin(theta)) 3.141571941375841
np.trapezoid可以沿指定的轴应用,以便在一个调用中进行多次计算:>>> a = np.arange(6).reshape(2, 3) >>> a array([[0, 1, 2], [3, 4, 5]]) >>> np.trapezoid(a, axis=0) array([1.5, 2.5, 3.5]) >>> np.trapezoid(a, axis=1) array([2., 8.])