【发布时间】:2017-10-22 20:25:17
【问题描述】:
我有一个过程使用 ode15s 数千次来求解具有各种初始条件的微分方程组,但是,偶尔我会收到如下错误:“警告:在 t=5.054301e+02 时失败。无法在不减小步长以下最小的情况下满足集成容差 在时间 t 允许的值 (9.094947e-13)。”。不幸的是,这使程序停止运行,因此,我想知道是否有办法捕获此类错误并强制 ode15s 结束其处理,以便程序可以继续运行。有这样的功能吗?
【问题讨论】:
我有一个过程使用 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
【讨论】: