Python 如何选择scipy.integrate.simps还是numpy.trapz?

Python 如何选择scipy.integrate.simps还是numpy.trapz?,python,numpy,matplotlib,scipy,Python,Numpy,Matplotlib,Scipy,我有一组点,当我绘图时,我得到下面的图表。我希望找到图表下的区域,但是我不确定scipy.integrate.simps还是numpy.trapz更合适 有人能告诉我这两个函数之间的数学背景,从而得出哪个函数更准确的结论吗 梯形法则是最简单的数值积分方法。实际上,它通过使用直线段近似曲线来估计曲线下的面积,每条直线段只需要两个点。辛普森法则使用二次曲线来近似函数段,每个函数段都需要从函数中采样三个点来近似给定的段 那么,使用这些数值方法近似解析积分的误差是什么呢 与梯形规则相关的误差与前导阶成正

我有一组点,当我绘图时,我得到下面的图表。我希望找到图表下的区域,但是我不确定scipy.integrate.simps还是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:与梯形规则相比,辛普森规则通常给出的数值积分结果要高得多,基本上没有额外的计算成本。

两种方法都可以尝试,如果差值小于实验数据噪声或预期建模误差,则不应该care@f5r5e5d,谢谢你的宝贵建议@Ryan Soklaski,谢谢你,我觉得这非常有用。只是澄清一下,因为辛普森法则使用二次曲线,梯形法则使用直线;对于边缘更尖锐的绘图,梯形规则的精确度更高?不!参考我写的误差方程。这些确实是决定你的错误的因素。二次曲线必须尖锐:)