小编use*_*201的帖子

NIntegrate - 在给定的情况下,为什么Mathematica 8中的速度要慢得多?

我有一个Mathematica代码,我必须在数值上评估数千个与此类似的积分

NIntegrate[
    (Pi*Cos[(Pi*(-2*x + y))/(1 + y)] + (1 + y)*(-Sin[(2*Pi*x)/(1 + y)] + 
    Sin[(Pi*(-2*x + y))/(1 + y)]))/(E^x*(1 + y)), 
    {x, 0, 100}, {y, 0, 100}
] //AbsoluteTiming
Run Code Online (Sandbox Code Playgroud)

被积函数是一个很好的绝对可积函数,没有奇点,它在一个方向上呈指数衰减,在另一个方向上以1/y ^ 3衰减.

NIntegrate命令在Mathematica 7中工作正常,但在最新版本8.0.4中,它减慢了两个数量级.我假设在新版本中它试图更好地控制错误,但代价是时间的巨大增加.是否有一些我可以使用的设置,以便计算以与Mathematica 7相同的速度进行?

wolfram-mathematica mathematica-8

10
推荐指数
2
解决办法
4664
查看次数

标签 统计

mathematica-8 ×1

wolfram-mathematica ×1