我正在尝试对多维表达式进行数值积分。被积函数复杂;例如,这是被积函数:
我对更大的表达式最感兴趣. 我的审判案例中的整合限制是从 0 到 10,其他一切从 0 到 1。
为了对它进行数值积分,我使用 Mathematica,同时使用 C++ 中的 VEGAS 积分器进行双重检查(通过 GNU 科学库)。问题是这两个积分器匹配较低的维度,但不匹配较高的维度。该协议非常适合, 但对于有大约 5 倍的相当大的差异,随着越高越差. 协议不会完全失败;结果仍然是相同的数量级,但 5 的系数对于舒适度来说太大了,尤其是在两个集成商报告的误差线远低于此的情况下。
我不熟悉这两个积分器的内部结构以及高维数值积分的工作原理。为什么两个积分器在低维度上给出相同的结果但在高维度上没有(非错误)原因?如果唯一可能的解释是“代码中的错误”,那很好,但如果还有其他可能性,我也想检查一下。