从系列:在MATLAB中求解ode
克里夫硅藻土,MathWorks
MATLAB ODE求解器名称中的数字反映了它的顺序和结果的精度。如果将步长减半,一步之内误差减少了2的p+1次方,则该方法的阶数为p。
数值方法的一个非常重要的性质是它的阶数。该方法的精度与步长的幂成正比。这种力量叫做秩序。
如果h是步长,p是阶数,那么一步误差与h ^ (p + 1)成正比。穿越整个区间的误差与H的p成正比。
这意味着,如果你使用一个p阶的方法,和步长切半,你可以预计总体误差减少2倍p。数值方法的顺序是由泰勒级数分析涉及的推导方法。但我们也可以做个实验来确定顺序。
这就是这个程序的功能。输入是ODE求解器的名称。然后对一个常微分方程做数值积分,只涉及到t,所以结果是积分的值。1 / (1 + t²)从0到1的积分。
我们知道确切答案是1/2。所以我们对微分方程积分两次,一次步长是0.1,然后步长是1 / 2。我们对微分方程积分,求这两个积分中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国家站点没有针对您所在位置的访问进行优化。