当 ODE45 的解发散时(不管为什么和如何),将显示以下警告,并且求解器无法继续:
警告:在 t=8.190397e+01 失败。如果不将步长减小到低于时间 t 允许的最小值 (2.273737e-13),则无法满足积分容差。
我在矩阵(大量输入)上运行 ode45,所以我想自动找出发生上述条件(失败)的输入。我的意思是,ode45 返回的这种情况是否有任何其他迹象可以自动写入数组?可以在if
语句中使用的东西:
if {some variable is returned/is equal to ...} then {the solver has failed}
自动识别那些错误的输入,而无需寻找显示的警告。