MATLAB:ode15s,如果不满足积分公差,则结束

MATLAB:ode15s,如果不满足积分公差,则结束,matlab,ode,Matlab,Ode,我有一个使用ode15s数千次的过程来求解具有各种初始条件的微分方程组,但是,偶尔我会得到如下错误:“警告:t=5.054301e+02时失败。如果不将步长减小到最小值以下,则无法满足积分公差要求。” 时间t时允许的值(9.094947e-13)。”。不幸的是,这导致程序停止,因此,我想知道是否有办法捕获这样的错误并强制ode15s结束其处理,以便程序可以继续。这样的函数存在吗?考虑使用try/catch语句,如 try % put your ode15s process here

我有一个使用ode15s数千次的过程来求解具有各种初始条件的微分方程组,但是,偶尔我会得到如下错误:“警告:t=5.054301e+02时失败。如果不将步长减小到最小值以下,则无法满足积分公差要求。”
时间t时允许的值(9.094947e-13)。”。不幸的是,这导致程序停止,因此,我想知道是否有办法捕获这样的错误并强制ode15s结束其处理,以便程序可以继续。这样的函数存在吗?

考虑使用try/catch语句,如

try 
     % put your ode15s process here
catch
     % put statement to handle errors like 
     fprintf('Error found.')
     % or skip the error one, then run the next process
end

嗯,它似乎无法捕捉到警告,除了将我的ode15s代码放入try部分之外,还有什么我应该做的吗?如果您能提供一些过程的基本行以重现问题,那就太好了。