scipy.integrate.simpson

scipy.integrate.simpson(y, x=None, dx=1.0, axis=- 1, even='avg')[源代码]

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

如果有偶数个样本N,则有奇数个区间(N-1),但辛普森法则要求区间为偶数。参数“Even”控制如何处理此问题。

参数
yarray_like

要集成的阵列。

xARRAY_LIKE,可选

如果给定的话, y 被采样。

dx浮动,可选

积分点沿轴线的间距 x 。仅在以下情况下使用 x 是没有的。默认值为1。

axis整型,可选

要沿其进行集成的轴。默认值为最后一个轴。

evenstr{‘avg’,‘first’,‘last’},可选
“平均”平均两个结果:1)使用前N-2个间隔

最后一个区间上的梯形规则,以及2)使用最后N-2个区间和第一个区间上的梯形规则。

“第一名”对前N-2个间隔使用辛普森规则

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

“最后一个”对最后N-2个间隔使用辛普森规则

第一个区间上的梯形规则。

参见

quad

使用故障诊断仪的自适应正交

romberg

自适应Romberg求积

quadrature

自适应高斯求积

fixed_quad

定阶高斯求积

dblquad

重积分

tplquad

三重积分

romb

采样数据的积分器

cumulative_trapezoid

采样数据的累积积分

ode

ODE积分器

odeint

ODE积分器

注意事项

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

示例

>>> from scipy import integrate
>>> 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)
1642.5
>>> integrate.quad(lambda x: x**3, 0, 9)[0]
1640.25
>>> integrate.simpson(y, x, even='first')
1644.5