如何在scipy.integrate.simps或numpy.trapz之间做出决定?

时间:2017-07-04 23:23:04

标签: python numpy matplotlib scipy

我有一组积分,当我绘制时,我得到下面的图表。我想在图表下找到该区域,但我不确定scipy.integrate.simps或numpy.trapz是否更合适。

有人可以就这两个函数之间的数学背景向我提出建议,从而得出关于哪个函数更准确的结论?

enter image description here

1 个答案:

答案 0 :(得分:2)

梯形法则是最简单的数值积分方法。实际上,它通过用直线段近似曲线估计曲线下面积,每个段仅需要两个点。 Simpson的规则使用二次曲线来代替函数段,每个曲线都需要从函数中采样的三个点来近似给定的段。

那么使用这些数值方法作为分析积分的近似值会产生什么错误?

与梯形规则相关的误差与前导顺序成正比,与h ^ 2 [f'(a) - f'(b)]成正比。 h是函数中采样点之间的间距; f'(a)和f'(b)是函数在采样域开头和结尾的一阶导数。

另一方面,通过辛普森规则的误差与h ^ 4 [f'''(a)-f'''(b)]成正比。 f'''是函数中的三阶导数。

h通常较小,因此h ^ 4通常远小于h ^ 2!

TLDR:与梯形规则相比,Simpson规则通常为数值积分提供了更好的结果,基本上没有额外的计算成本。

相关问题