我ode45
在 Matlab 中使用过。而且,据我了解,4 和 5 分别用于全局和局部错误的顺序。所以,全局误差大约为并且本地错误大约是, 在哪里是步长。
但是,还有一个名为 的选项RelTol
,您可以通过以下方式设置它:odeset('RelTol',1e-6)
。
在这种情况下,如何将相对容差设置为低于全局或局部误差?还是这个名字ode45
有点用词不当?
我ode45
在 Matlab 中使用过。而且,据我了解,4 和 5 分别用于全局和局部错误的顺序。所以,全局误差大约为并且本地错误大约是, 在哪里是步长。
但是,还有一个名为 的选项RelTol
,您可以通过以下方式设置它:odeset('RelTol',1e-6)
。
在这种情况下,如何将相对容差设置为低于全局或局部误差?还是这个名字ode45
有点用词不当?
而且,据我了解,4 和 5 分别用于全局和局部错误的顺序。
你的理解是错误的。
Runge-Kutta 顺序方法的局部误差正比于.
所做的是ode45
使用两种分别具有 4 和 5 局部阶数的 Runge-Kutta 方法来估计(一步)解(因此是这些数字)。它使用 5阶方法的解来估计 ODE 的解,并使用两种方法的解之间的差异来估计积分的误差。请注意,这只是一个估计——如果你知道精确的错误,你也已经精确地解决了这个问题。为了节省计算时间,设计了两种 Runge-Kutta 方法,以便它们使用通用的中间结果。其他嵌入的 Runge-Kutta 方法(即 Runge-Kutta 方法用两个数字表示顺序)的工作方式类似。
然后使用误差估计来优化步长:如果误差高于给定的容差(对于每个组件),则减小步长直到误差低于该容差。如果误差远低于该容差,则增加步长以节省时间。这个公差是:
在哪里是估计的解决方案。