从系列:用MATLAB求解ode
克里夫·莫勒尔,MathWorks公司
在MATLAB文档提供了两个图表,列出每项在MATLAB ODE套房七种功能的特点。
我们可以在MATLAB提示符下输入这个命令——doc ode45,从而获得MATLAB ODE套件的文档。这将为我们带来MATLAB ode45的广泛文档,其中包括比较MATLAB ODE求解器的图表。它们有7个,这比较了它们的不同属性。正如我们之前说过的,MATLAB ode45是主要的工具。这是一个中等精度的非刚性解算器,这是你应该尝试的第一个解算器,我们大部分时间都在使用它。
我对MATLAB ode23有一颗柔软的心。它是一个非刚性求解器,具有较低的精度,但它的精度适合于图形工作,因为它选择的步长适合于大多数图形工作。我们还没讲过,1和13之间可以有一个逗号因为这是一个变序方法它的阶数从1到13都是变化的。这是一个多步骤的方法,可以保存历史。
如果,你知道这些事情,这是一个亚当斯 - 莫尔顿法。我与喷气推进实验室工作多年以前做计算行星和卫星的轨道,这当然是非常顺利和持续多年关联这一点。它可以有非常高的精度要求。
还有一些顽固的解决者。一共有四个,15s, 23s,还有双胞胎,梯形法则。15s是主要的刚性求解器,精度从低到中。如果您发现ode45很慢,需要执行很多步骤——这表明问题很棘手——那么尝试使用15秒。
23s可以作为一个低阶方法,低精度,并用于粗误差公差。我们还没讲过质量矩阵。这就是在导数项前面有一个矩阵的地方,这可以用在常质量矩阵上。然后这两个含有T的例程是基于梯形法则的,它们用于没有任何数值阻尼的问题。您可以查看关于梯形方法的更多详细信息的文档。
这是MATLAB ODE套件七个求解器,三个用于非刚性问题,四个用于刚性问题。除了ode45可能会满足你所有的需求之外,你完全可以不使用任何东西。
有汇总所有的都可以通过ODE设置功能选项的文档中的第二个图表。我们简要地提到了公差,RELTOL并在求解器的所有七个AbsTol-- function--这些输出可用。
还有各种其他函数——各种其他选项——可以用于更专门的工作,包括事件处理,为呆板的求解者提供雅可比矩阵,这样他们就不用那么费力地计算数值差异,与质量矩阵相关的选项,提供了步长限制。这些是我们可以通过ode Set指定的所有选项,用于使用ode求解器进行更专门的工作。