当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy integrate.trapezoid用法及代码示例


本文简要介绍 python 语言中 scipy.integrate.trapezoid 的用法。

用法:

scipy.integrate.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\) .

参数

y array_like

要集成的输入数组。

x 数组,可选

对应于 y 值的样本点。如果 x 为 None,则假定采样点均匀分布 dx。默认值为无。

dx 标量,可选

x 为 None 时采样点之间的间距。默认值为 1。

axis 整数,可选

要沿其集成的轴。

返回

trapezoid 浮点数或 ndarray

y = n 维数组的定积分,按照梯形规则沿单轴近似。如果 y 是一维数组,则结果是浮点数。如果 n 大于 1,则结果是 n-1 维数组。

注意

图片[2]说明梯形规则 - 点的 y 轴位置将取自y数组,默认情况下,点之间的 x 轴距离将为 1.0,或者它们可以提供x数组或与dx标量。返回值将等于红线下的组合面积。

参考

例子

对均匀分布的点使用梯形法则:

>>> import numpy as np
>>> from scipy import integrate
>>> integrate.trapezoid([1, 2, 3])
4.0

样本点之间的间距可以通过 xdx 参数选择:

>>> integrate.trapezoid([1, 2, 3], x=[4, 6, 8])
8.0
>>> integrate.trapezoid([1, 2, 3], dx=2)
8.0

使用递减的 x 对应于反向积分:

>>> integrate.trapezoid([1, 2, 3], x=[8, 6, 4])
-8.0

更一般地说,x 用于沿参数曲线积分。我们可以使用以下方法估计积分

>>> x = np.linspace(0, 1, num=50)
>>> y = x**2
>>> integrate.trapezoid(y, x)
0.33340274885464394

或者估计圆的面积,注意我们重复闭合曲线的样本:

>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
>>> integrate.trapezoid(np.cos(theta), x=np.sin(theta))
3.141571941375841

trapezoid 可以沿着指定的轴应用,在一次调用中进行多次计算:

>>> a = np.arange(6).reshape(2, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> integrate.trapezoid(a, axis=0)
array([1.5, 2.5, 3.5])
>>> integrate.trapezoid(a, axis=1)
array([2.,  8.])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.integrate.trapezoid。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。