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