[英]Numerical integration with scipy.integrate.trapz returns a result but scipy.integrate.simps does not
[英]How to decide between scipy.integrate.simps or numpy.trapz?
梯形法则是最简单的数值积分方法。 实际上,它通过用直线段近似曲线来估计曲线下的面积,每个直线段仅需要两个点。 辛普森法则使用二次曲线来近似函数段,每个函数段都需要从函数中采样的三个点来近似给定段。
那么,将这些数值方法用作解析积分的近似值有什么误差呢?
与梯形法则相关的误差,按领先顺序,与h ^ 2 [f'(a)-f'(b)]成正比。 h是函数中采样点之间的间隔; f'(a)和f'(b)是函数在采样域的开头和结尾的一阶导数。
另一方面,通过辛普森法则的误差与h ^ 4 [f'''(a)-f'''(b)]成正比。 f'''是函数中的三阶导数。
h通常很小,因此h ^ 4通常比h ^ 2小得多!
TLDR:与梯形法则相比,辛普森法则通常为数值积分提供更好的结果,基本上没有额外的计算成本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.