解释Matlab ode45输出。 ode45是迭代算法吗?

时间:2019-01-07 05:43:09

标签: matlab ode

我尝试使用ode45求解方程式,并获得如下所示的输出。我知道它正在尝试使用附近的点进行估算(如此处https://www.mathworks.com/videos/solving-odes-in-matlab-6-ode45-117537.html所述)。据我了解,它应该在一轮计算中求解方程吗?但是输出看起来像是ode45是一种迭代算法(因此它生成的输出会一遍又一遍地重复“ ...步骤...失败的尝试...函数求值”)?如果是迭代的,您能否提供一些详细信息或参考?谢谢!

enter image description here

1 个答案:

答案 0 :(得分:2)

ode45是迭代的自适应 ODE求解器。也就是说,它使用5阶(FSAL)方法来建议使用某些步长h进行更新。然后再次执行相同的操作,但是现在使用4阶方法,然后将这两个更新相互比较,如果差异小于某个局部公差,则接受建议的更新。如果差异大于某个局部公差,则将拒绝更新,并降低步长(以某种智能方式)。

为减少使用四阶和五阶方法的成本,这两种方法(大致)使用相同的函数求值。

对于您的输出,正如@LutzL所指出的那样,它不是标准输出,这可能表示您的代码有错误。

相关问题