【问题标题】:Nintegrate error: evaluation of function outside integration regionNintegrate 错误:积分区域外的函数评估
【发布时间】:2025-12-21 22:50:11
【问题描述】:

我正在尝试将此函数与mathematica 9 集成

NIntegrate[
 c4[u, v, w] Cos[ 2*w] , {u, -\[Infinity],
   0}, {v, -\[Infinity], u}, {w, -\[Infinity], v]

with
c4[x_, y_, z_] := 
  E^(-((x^2 + y^2 + z^2)/
    4 )) (E^((x y)/2 ) + E^((x z)/2 ) + E^((y z)/2));

我有这个错误:

NIntegrate::ncvb:在 {u,v,w} = {0.0000318293,2.37147*10^-13,0.0000318293} 附近的 v 中进行 27 次递归二等分后,NIntegrate 未能收敛到规定的精度。 NIntegrate 获得 -6.039603923653673*10^7640189323695 和 6.039603923653673`15.954589770191005*^7640189323695 用于积分和误差估计。 >>

NIntegrate 尝试计算积分区域外的被积函数。怎么可能?

【问题讨论】:

    标签: wolfram-mathematica


    【解决方案1】:

    怀疑不是,而是 NIntegrate 在内部对正域进行变量替换,因此错误消息令人困惑:

    请注意,如果您自己进行此更改,则会收到完全相同的错误消息。

     NIntegrate[c4[-u, -v, -w] Cos[-2 w], {u, 0, \[Infinity]}, {v,  u, \[Infinity]}, {w, v, \[Infinity]}]
    

    如果你看看有限边界会发生什么:

    ListPlot[Table[ {s,
      NIntegrate[
       c4[u, v, w] Cos[2 w],
                {u, -s, 0}, 
                 {v, -s, u}, 
                 {w, -s, v}]} ,   {s, 1, 8, .25}], Joined -> True]
    

    我想你会看到这个东西不太可能收敛到无穷大..

    【讨论】:

    • 谢谢你的回答......我有一些问题要重现你的最后一个数字...... Mathematica 给我这个错误:NIntegrate::eincr: GlobalAdaptive 策略的全局错误增加了超过2000 次。经过多次被积函数评估后,全局误差预计会单调下降。怀疑有下列情形之一:工作精度不足以达到规定的精度目标;被积函数是高度振荡的,或者它不是(分段)平滑函数;或者积分的真实值为0。[...]
    • 对,这就是为什么我只去了8个,s越大越难集成。 (你想要无穷大......)。您的错误消息略有不同,表明您可能有不同版本的mathematica(此处为 9)。如果您有理由相信积分应该收敛,您需要做一些比直接数值积分更复杂的事情来显示它。