从系列:在MATLAB常微分方程求解
克里夫·莫勒尔,MathWorks公司
ODE45通常是首选的ODE求解器之间的功能。它比较订单四,五估算错误,并确定步长的方法。ODE45是非常准确,它的默认行为是利用其插值到中间点提供的结果。
在MATLAB和Simulink中最常用的ODE求解器ODE45。万博1manbetx它是基于英国数学家JR Dormand和PJ王子在1980年出版的基本方法是五阶方法。纠错使用伴侣四种阶方法。
TN的斜率,第一和上次一样,从以前的成功的一步遗留下来的。再就是从函数值五个道1/5小时,3 / 10H,4 / 5H,8 / 9H,然后在TN加1。这六个斜坡,它们的线性组合,用于生产炔加1。
此功能可在TN加1和YN加1进行评估,以获得第七斜率。然后这些线性组合被用于产生误差估计。
同样,如果误差估计值小于规定的精度要求,则该步骤成功。然后用误差估计得到下一步的步长。如果错误太大,则步骤不成功,并使用该错误估计值获取步骤大小以重新执行步骤。
如果我们希望看到所使用的实际系数,你可以进入为ODE45代码。有与系数表。或者你去为Dormand太子法的维基百科页面,并有相同的系数。
顺便说一句,这里大约是高阶龙格 - 库塔法一个有趣的事实。经典龙格 - 库塔要求每步四个功能评估,以获得四阶。Dormand太子要求每步六大功能评估,以获得五阶。你不能只用五个功能评估得到五阶。然后,如果我们试图和实现更高的命令,它会采取每步更功能的评价。
让我们用ODE45计算e到T。Ÿ主要是等于y。我们可以通过提供所谓TSPAN参数要求输出。零和0.1步骤1,如果我们提供作为输入参数来解决这个微分方程,并获得在那些点的输出中,我们得到的是背面作为输出。而现在这里的近似值在这些点上解决这一微分方程。
如果我们绘制它,这里是在这些点的解决方案。而且,看看它是如何准确,我们看到,我们实际上得到这样的结果,以九个位数。ODE45是非常准确的。
让我们来看看我们的近似奇点问题的步长选择,是四分之一。y0接近16。微分方程是y素数是2(a-t)y的平方。我们让ODE45通过指示我们只想从0集成到1来选择自己的步长。我们在t和y中捕获输出并绘制它。
现在,在这里,有很多在这里的点,但这是因为ODE45,默认情况下,使用精炼选项误导。它实际上只在这些点的每第四个评估函数,然后在两者之间使用插值让我们填写。所以我们实际上需要在这里有一点不同的情节。
此图显示了一个好一点的是怎么回事。大点是ODE45选择评估微分方程点。和小点被填充与插值。因此,最大的点是每第四点。和细化选项说大点是相距甚远也和我们需要填补它与插值。所以这是在行动中连续插值。
大点更密集集中,因为我们必须去周围的曲线。然后,随着我们远离奇步长增加。因此,这显示ODE45的高精度和自动步长选择在行动。
下面是一个锻炼。通过使用他们每个人计算圆周率比较ODE23和ODE45。积分4用1加t的平方从0到1是圆周率。你可以表达成微分方程,使用每个例程的到微分方程整合,看看他们是如何接近去计算圆周率。