我目前正试图对使用scipy.integrate.ode
求解的(僵硬)微分方程组进行贝叶斯推断,其中lsoda
或vode
为求解器例程。贝叶斯推理过程涉及参数空间的随机抽样(更准确地说:后验分布),并且对于每组参数运行正向模拟,以便每次推断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
通常情况下,解决者在发出一些此类警告后会变得安静,但由于解算器重新启动数百次/数千次,因此在温暖的一天中它会像骆驼一样吐出警告。
我的问题:有没有办法让这些警告沉默?