- 已编辑
我的代码里含有二重积分
time1=Sys.time()
inte_double_real=cubature::adaptIntegrate(inte_phi_re,z=c(z1,z2),param=param,yi_t_1=yi_t_1,lowerLimit=c(0,0),upperLimit=c(Inf,Inf),absError=0.001)$integral
time1_1=Sys.time()
time1_1-time1
其中inte_phi_re为我自定义的一个函数,我想要统计这个二重积分的耗时。在我把absError设置为10-3的时候,一次积分运算耗时为0.03650594s。然而,邪门的是,在我更改absError为更小的值,比如10-5后,再次使用10-3的absError时,耗时无论如何只有0.006500959s了(至多在0.007附近变动,绝不会回到0.03的水平)!
我发现,只要我的代码从头重新加载变量值,那么耗时不受absError变化的影响。而如果只是运行上面一段代码的话,才会出现上述现象。
这当中是什么原理?有没有高手专家可以解释?