我正在尝试将微分方程拟合到某些数据并获得基础模型的参数。这需要我尝试各种参数值,但这通常会给我一个 ODEintWarning。有几个这样的警告是可以的,但是有太多会导致我的程序经常崩溃(我使用 Spyder 工作,如果我在程序运行时单击 GUI 上的某个地方,Spyder 将冻结)。
有没有办法检测 ODEintWarning 并逃脱它?在伪代码中,我基本上想要类似的东西:
for parameter in parameters_list:
try:
x = odeint(dxdt, x0,t, *parameters)
except (at the first sign of an) ODEintWarning:
pass (and go on to the next set of parameters to be tested)
或者,我最好的选择是提前检测错误的参数值并尽量不首先将它们输入 ODEint?