从系列:MATLAB中常微分方程的求解
克利夫·莫勒
MATLAB ODE解算器名称中的数字反映其顺序和结果精度。如果将步长减半,则一种方法的阶数为p,将一步中的误差减少到p+1的2倍。
数值方法的一个非常重要的性质是它的阶数。该方法的精度与步长的幂成正比。这种力量叫做秩序。
如果h是步长,p是阶数,那么一步误差与h ^ (p + 1)成正比。穿越整个区间的误差与H的p成正比。
这意味着,如果你使用一个p阶的方法,和步长切半,你可以预计总体误差减少2倍p。数值方法的顺序是由泰勒级数分析涉及的推导方法。但我们也可以做个实验来确定顺序。
这就是这个程序所做的。输入是一个ODE解算器的名称。然后它将对一个常微分方程进行数值积分,只涉及t。结果是一个积分值。1除以1的积分加上t平方,从0到1。
我们知道精确答案是1/2。所以我们对微分方程积分两次,一次步长为0.1,然后步长为0.1的一半。我们积分微分方程,取这两个积分的最终值y,将这些值与精确答案进行比较,取这两个值的比率。这表明当我们将步长减少一半时,误差减少了多少。
以2为底比率的对数就是序。它应该是一个整数,这样我们就可以四舍五入到最接近的整数,并返回该值作为函数中的值。让我们先在ODE1上运行我们的实验。
我们的步长为0.1,这种方法得到的积分为0.5389,不是很准确。将步长减半,它得到0.5191。它们的比率是2。对数以2为底是1。所以ODE1是(1)
现在是ODE2——步长0.1。0.499。切成两半,0.4998。它们的比率接近4。所以ODE2,我们从这个实验中发现,是二阶的。
现在让我们试试古典龙格-库塔。这就是它如此受欢迎的原因。这是非常准确的。步长为0.1,就接近1/2。把步长减半,我们就更接近了。这两个的比率接近16。log以2为底的对数是4。所以ODE4在实验上是4阶。
我们发现,至少在这个实验中,ODE解算器的阶是。你们可能意识到,这就是为什么我们把它们命名为ODE 1 2 4。
这将我们带到了MATLAB ODE套件中函数的命名约定。所有函数的名称都是主题ODEpq的变体。这意味着ODEpq方法使用的是p阶和q阶的方法,通过我们的名字,我们已经大致了解了,ode1 2和4。
这是一个锻炼。修改x阶来做进一步的实验,涉及ODE求解器的阶数。把它换成其他积分。看看ODE 1 2 4的顺序。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。