从 x=0,infinity 优化积分 f(x)exp(-x)

optimize integral f(x)exp(-x) from x=0,infinity

我需要一个稳健的积分算法 f(x)exp(-x) 在 x=0 和无穷大之间,f(x) 是一个正的可微分函数。 我不知道数组 x 先验(这是我例程的中间输出)。 x 数组通常是 ~log-equispaced,但高度不规则。 目前,我使用的是 Simpson 算法,但我的问题是域经常被 x 数组严重欠采样,这会产生不切实际的积分值。 在我的代码的每个 运行 上,我需要执行此集成数千次(每次都使用一组不同的 x 值),因此我需要找到一种有效且稳健的方法来集成此功能。

更多详情: x 数组可以有 2 到 N 个点(N 个已知)。第一个值始终是 x[0] = 0.0。最后一点的值始终大于可调阈值 x_max(例如 exp(x_max) approx 0)。我只知道 f 在点 x[i] 的值(尽管函数是平滑函数)。

我的第一个想法是进行拉盖尔-高斯正交积分。但是,这种算法在不使用最优正交点的情况下,似乎是非常不可靠的。

我目前的想法是加一组辅助点,插值f,这样辛普森算法就更稳定了。如果我这样做,是否有辅助点的最佳选择?

如果有任何建议,我将不胜感激, 谢谢。

t=1-exp(-x),则dt = exp(-x) dx,积分值等于

integral[ f(-log(1-t)) , t=0..1 ]

您可以使用标准的辛普森公式对其进行评估,并希望得到好的结果。

请注意,分段线性插值总是会导致积分出现 2 阶误差,因为结果相当于梯形公式,即使方法是 Simpson 也是如此。为了在 Simpson 方法中获得更好的误差,您需要更高的插值度,最好是三次样条。具有估计导数的三次贝塞尔多项式来计算控制点可能是一种快速的折衷方案。