从系列:在MATLAB中求解ode
克里夫硅藻土,MathWorks
ODE23比较顺序为2和3的方法,自动选择步长并保持指定的精度。它是最简单的MATLAB求解程序,具有自动误差估计和连续插值等现代特性。ODE23适用于计算机图形等精度要求较低的场合。
软件实现现代化的数值方法有两个特点不存在像ODE4和经典龙格 - 库塔代码。在软件的方法可以估算误差和提供自动步长控制。你不指定步长小时。指定要的精度。和方法估计错误,因为他们走,并相应地调整步长。他们提供了一个完全准确连续插值。他们不只是提供在离散集合点的解决方案。他们提供无处不在规定的时间间隔的解决方案的功能。所以你可以绘制它,找到函数的零点,提供了一个名为事件处理设施,等等。
Larry Shampine是常微分方程数值解方面的权威。他是这本用MATLAB求解ode的教科书的主要作者。他现在是达拉斯南卫理公会大学的名誉教授。他在MathWorks做了很长时间的顾问关于我们的ODE套件的开发。Shampine和他的学生Przemyslaw Bogacki在1989年发表了这个方法。它是ODE23的基础,ODE23是我们在MATLAB ODE套件中使用的第一个方法。
基本方法是(3)误差估计是基于阶三法和阶二法的差值。有四个斜坡。
第一个是函数在区间开始时的值。但这是基于一种叫FSAL的东西,首先和最后一样,斜率很可能是前一步剩下的。如果前一步成功,则此函数值与前一步的最后一个函数值相同。
这个斜率用来步进到区间的中间,函数在这里求值。这个斜率是通过区间的3/4阶跃得到的第三个斜率。然后使用这三个值来执行步骤。yn + 1是这三个函数值的线性组合。然后对函数求值,在区间结束时得到第四个斜率。然后,用这四个斜率来估计误差。
这里的误差估计是yn + 1和另一个解的估计之间的差值这个解是用二阶方法得到的我们实际上并没有求值。我们只需要这个方法和yn + 1之间的差值来估计误差。
这个估计的误差与用户提供的误差进行比较。如果估计的误差小于一个公差,那么这个步骤就成功了。第四个斜率,s4,变成了下一步的s1。
如果答案大于公差,则误差可以作为调整步长的依据。在这两种情况下,误差估计都是调整下一步步骤大小的基础。这是Bogacki-Shampine Order 3(2)方法这是ODE 23的基础。
让我们先来看看ODE23的一些非常简单的用法。我要取微分方程y ' = y,所以我要计算e的t次方,在0到1的区间上记作ODE23,初值为1。没有输出参数。如果我叫它ODE23,它只是画出解。在这儿。它只是产生一个情节。它选择一个步长,从0到1,这里它得到e的最终值,2。7左右。
如果我提供输出参数。我说t, y = ODE23,它会返回t和y的值,ODE23选择它想要的t的值。这是一个无关紧要的问题。它选择的步长是0。1。在它开始之后,它选择初始步长为.08的任何误差公差。y的最终值是2。718,也就是e的值。
这就是ODE23的两个简单用途。如果不提供任何输出参数,它会绘制一个图。如果你提供输出参数,t和y,它会返回t和y的值,选择t的值来满足误差。默认的误差公差是10的- 3次方。所以这个值精确到三位数。这就是我们得到的结果。
现在让我们尝试一些更有挑战性的看到自动误差控制步长选择在行动。设置一个等于四分之一。然后设置Y0等于15.9。如果我将它设置为16,这在一个平方是1,我碰到一个奇点。现在差分方程为y素数等于图2(a减t)乘以y的平方。我将这个与ODE23的间隔整合从0到1起始于Y0,并保存在T和y的结果,然后绘制它们。因此,这里是我的绘图命令,并有解决方案。
所以在a点有一个奇点,它几乎爆炸。然后它就会安定下来。所以当你上升到奇点并下降时,这些点会聚集在一起,但当解稳定下来时,它们会分离得更远。ODE求解器可以采取更大的步骤。
为了知道实际采取了什么步骤,我们来计算t的差,然后把它画出来。这是所采取的步骤。我们可以看到,在0。25处,在接近奇点处,采取了一个小的步骤。然后当我们接近区间的末尾时,会采取更大的步长。然后,最后一步的步长是最后一步的步长,最后一步的步长是最后一步的步长。这是ODE23的自动步长选择。
BS23有一个很好的自然插值它实际上已经被知道100多年了。这叫做埃尔米特三次插值。我们知道两点决定一条直线。两个点和两个斜率决定了一个立方。
在每个时间间隔,我们有y和YN加1的值,我们也有两个斜坡,即此。目前,我们有终点,YN素和YN加1素,这是在这些点上的微分方程的数值衍生物。所以这四个值确定三次,通过这两个点去,有这两个斜坡。
此立方体允许由函数f的加法评价所定义的软件,以评估在区间的任意点的溶液无需额外成本。这可以用来绘制解决方案图,该解决方案的平滑度很高的图表,找到解决方案的零,做事件处理,等等。通过ODE23提供的另一个特点。