在scipy.integrate.ode中抑制odepack警告

时间:2018-04-01 12:29:15

标签: python scipy

我目前正试图对使用scipy.integrate.ode求解的(僵硬)微分方程组进行贝叶斯推断,其中lsodavode为求解器例程。贝叶斯推理过程涉及参数空间的随机抽样(更准确地说:后验分布),并且对于每组参数运行正向模拟,以便每次推断ODE被解决数百次。

现在,由于采样过程的随机性,某些参数组合会导致ODE求解器进入香蕉并过早终止。这一切都很好并且可以解释,但是让我感到非常恼火的是stdout的不断警告。例如:

lsoda--  warning..internal t (=r1) and h (=r2) are  
   such that in the machine, t + h = t on the next step  
   (h = step size). solver will continue anyway  
  in above,  r1 =  0.2821503005995D+01   r2 =  0.2168780116940D-15

通常情况下,解决者在发出一些此类警告后会变得安静,但由于解算器重新启动数百次/数千次,因此在温暖的一天中它会像骆驼一样吐出警告。

我的问题:有没有办法让这些警告沉默?

0 个答案:

没有答案