从系列:在MATLAB常微分方程求解
克里夫·莫勒尔,MathWorks公司
ODE45通常是首选的ODE求解器之间的功能。它比较订单四,五估算错误,并确定步长的方法。ODE45是非常准确,它的默认行为是利用其插值到中间点提供的结果。
在MATLAB和Simulink中最常用的ODE求解器ODE45。金宝app它是基于英国数学家JR Dormand和PJ王子在1980年出版的基本方法是五阶方法。纠错使用伴侣四种阶方法。
TN的斜率,第一和上次一样,从以前的成功的一步遗留下来的。再就是从函数值五个道1/5小时,3 / 10H,4 / 5H,8 / 9H,然后在TN加1。这六个斜坡,它们的线性组合,用于生产炔加1。
这个函数在tn + 1和yn + 1处取值,得到第7个斜率。然后这些的线性组合被用来产生误差估计。
再次,如果误差估计值小于规定的精度的要求的步骤是成功的。然后这个错误估计被用于获得下一个步长。如果误差过大,步不成功,并且误差估计用来获取步长做一遍步骤。
如果我们想要看到实际使用的系数,你可以进入ODE45的代码。有一个系数表。或者你去维基百科的“休眠王子法”页面,会看到相同的系数。
顺便说一句,这里大约是高阶龙格 - 库塔法一个有趣的事实。经典龙格 - 库塔要求每步四个功能评估,以获得四阶。Dormand太子要求每步六大功能评估,以获得五阶。你不能只用五个功能评估得到五阶。然后,如果我们试图和实现更高的命令,它会采取每步更功能的评价。
让我们用ODE45来计算e ^ t y ' = y,我们可以通过提供一个叫做tspan的参数来要求输出。0和步骤0.1到1。如果我们把它作为输入参数来解这个微分方程得到这些点的输出,我们就得到了输出。这是这些点处微分方程解的近似值这是这些点处微分方程解的近似值。
如果我们绘制它,这里是在这些点的解决方案。而且,看看它是如何准确,我们看到,我们实际上得到这样的结果,以九个位数。ODE45是非常准确的。
让我们看一下步长的选择上我们与附近的奇异性问题,是四分之一。Y0是接近16的差分方程为y素是2(A-T)Y的平方。我们让ODE45通过指示我们只是要整合从0到1,我们捕捉在T和Y输出,并绘制它选择自己的步长。
这里有很多要点,但这是有误导性的,因为ODE45默认使用的是refine选项。它实际上只是在这些点的每四分之一处对函数求值然后用插值函数来填充。我们需要一个不同的图。
此图显示了一个好一点的是怎么回事。大点是ODE45选择评估微分方程点。和小点被填充与插值。因此,最大的点是每第四点。和细化选项说大点是相距甚远也和我们需要填补它与插值。所以这是在行动中连续插值。
大点更集中,因为我们必须绕着曲线走。然后,当我们离奇点越远步长越大。由此可见,ODE45具有较高的精度和自动选择步长功能。
这是一个锻炼。比较ODE23和ODE45,分别使用它们来计算pi。4 / (1 + t²)从0到1的积分是。你可以把它表示成一个微分方程,用每个例程来积分微分方程看看它们离计算有多近。