是否有可能在mathematica中没有打印到屏幕的错误信息?

时间:2016-09-25 15:52:48

标签: wolfram-mathematica

我的问题是这样的:

我需要在每个循环中得到一个数值积分。 由于数值方法,可能存在错误,例如在一定次数的迭代中收敛失败。 所以,我想通过函数“Check”()来记录错误发生的循环。

如下图所示,每个列表都显示到目前为止发生错误的循环。

如您所见,在第86个循环中,有一个错误信息,因此“86”被附加到错误列表中。 在第84个循环中,没有错误信息输出到屏幕,但是,“84”被附加到错误列表。 我的问题是为什么会这样?是否有可能在第84次循环中没有打印到屏幕的错误信息?

enter image description here

我的部分代码是:

(*ndist and gdist are functions of two distributions. errk is used to store the loop number if error happens in current loop. errklist is used to store all loops in which error happens so far.*)
errk =  Flatten[Check[
nentropy = NIntegrate[ndist Log[ndist], {x, -Infinity, Infinity}];
gentropy = NIntegrate[gdist Log[gdist], {x, -Infinity, Infinity}],Sow[k]] // Reap // Rest];           
AppendTo[errklist, (j - 1)*101 + errk];

0 个答案:

没有答案