版本是12.2,被积函数是x^2*Sin[a*x+b*x^2+c*x^3]这样的形式,是一个震荡的函数,所以可能数值积分上确实会存在些问题。
我和另一个同学分别写的,我用的是NIntegrate,他用的是Integrate,剩下的都一样。然后发现计算结果不一致。
首先是他用Integrate计算的结果,带有一个相对实部很小的虚部;而且实部和NIntegrate也差几个量级。
然后就是我为了验证这个问题,在同一个notebook里,先后用Integrate和NIntegrate计算,发现和我们分别算的结果是一样的,依然存在着很大差别。
最令我困惑的一点是,在第一遍计算完以后,再次进行积分,NIntegrate的结果没有任何变化,而Integrate结果却变了,量级上和NIntegrate一致了,但依然差两倍左右。
进一步尝试发现,当积分区间比较小的时候,两者是一致的。但积分区间增大到一定程度时,差别就突然出现了。
因此想请教一下,这个问题的原因是什么呢?为什么跑NIntegrate的前后两次用Integrate计算的结果就不一致了呢?以及怎么判断哪个值更合理呢?
谢谢!
我和另一个同学分别写的,我用的是NIntegrate,他用的是Integrate,剩下的都一样。然后发现计算结果不一致。
首先是他用Integrate计算的结果,带有一个相对实部很小的虚部;而且实部和NIntegrate也差几个量级。
然后就是我为了验证这个问题,在同一个notebook里,先后用Integrate和NIntegrate计算,发现和我们分别算的结果是一样的,依然存在着很大差别。
最令我困惑的一点是,在第一遍计算完以后,再次进行积分,NIntegrate的结果没有任何变化,而Integrate结果却变了,量级上和NIntegrate一致了,但依然差两倍左右。
进一步尝试发现,当积分区间比较小的时候,两者是一致的。但积分区间增大到一定程度时,差别就突然出现了。
因此想请教一下,这个问题的原因是什么呢?为什么跑NIntegrate的前后两次用Integrate计算的结果就不一致了呢?以及怎么判断哪个值更合理呢?
谢谢!