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


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


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

用法:

scipy.integrate.simpson(y, *, x=None, dx=1.0, axis=-1, even=<object object>)#

使用沿给定轴的样本和复合辛普森规则对 y(x) 进行积分。如果 x 为 None,则假定为 dx 的间距。

如果样本数为偶数 N,则区间数为奇数 (N-1),但辛普森规则要求区间数为偶数。参数‘even’ 控制如何处理。

参数

y array_like

要集成的阵列。

x 数组,可选

如果给定,则采样 y 的点。

dx 浮点数,可选

沿 x 轴的积分点间距。仅在 x 为无时使用。默认值为 1。

axis 整数,可选

要整合的轴。默认是最后一个轴。

even {无,‘simpson’, ‘avg’, ‘first’, ‘last’},可选
‘avg’ 平均两个结果:
  1. 使用前 N-2 个间隔,并在最后一个间隔上使用梯形规则

  2. 将最后 N-2 个间隔与第一个间隔上的梯形规则一起使用。

‘first’ 对前 N-2 个区间使用 Simpson 规则

最后一个区间的梯形规则。

‘last’ 对最后 N-2 个区间使用 Simpson 规则

第一个区间的梯形规则。

无:相当于‘simpson’(默认)

‘simpson’ 对前 N-2 个间隔使用辛普森规则

使用 Cartwright [1] 概述的方程为最后一个间隔添加 3 点抛物线段。如果要积分的轴只有两个点,则积分会退回到梯形积分。

返回

浮点数

使用复合辛普森规则计算的估计积分。

注意

对于等间距的奇数个样本,如果函数是 3 阶或更小的多项式,则结果是精确的。如果样本不是等间距的,那么只有当函数是 2 阶或更小的多项式时,结果才是准确的。

参考

[1]

Cartwright、Kenneth V. Simpson 与 MS Excel 和 Irregularly-spaced 数据的规则累积集成。数学科学与数学教育杂志。 12(2):1-9

例子

>>> from scipy import integrate
>>> import numpy as np
>>> x = np.arange(0, 10)
>>> y = np.arange(0, 10)
>>> integrate.simpson(y, x)
40.5
>>> y = np.power(x, 3)
>>> integrate.simpson(y, x)
1640.5
>>> integrate.quad(lambda x: x**3, 0, 9)[0]
1640.25
>>> integrate.simpson(y, x, even='first')
1644.5

相关用法


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