对于高度非线性但非随机的问题,同一个Matlab ode求解器能否给出不同的结果?

时间:2019-02-15 15:54:13

标签: matlab numerical-methods ode numerical-integration

我一直在使用matlab的ode求解器来求解两个耦合的高度非线性ODE系统。之前我使用ode15s解决问题,并且每次运行它都得到不同的结果。请注意,如果我在一个小时左右的时间内运行了相同的代码,则通常会得到相同的结果(可重现)。但是,如果有几个小时的间隔,或者如果我隔天运行了代码,即使使用相同的参数,我也会得到不同的结果。多次检查。

在检查ode15s帮助文件时,我发现它的准确性从低到高不等。因此,我将求解器更改为ode45,并使用以下公差选项将其拧紧:

options = odeset('AbsTol',1e-15,'RelTol',1e-12);

[t,r] = ode45('ode_problem',time_range,initial_conditions,options);

但是即使在现在,问题仍然存在,尽管有时即使是一天之后,我也很幸运能够获得相同的结果(有时可重现)。那么怎么可能出问题了?有时最终结果相差两个以上数量级。我的问题中没有随机或随机成分。

或者,非线性问题是否有可能是随机因素引起的,但不是直接可见的?

0 个答案:

没有答案