从系列:在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,我们这个实验,越来越顺序2找到。
现在我们来试试经典的龙格-库塔。这就是它如此受欢迎的原因。这是非常准确的。步长是0。1,接近1/2。把步长减半,我们就更接近目标了。两者之比接近16。以2为底的对数是4。ODE4的实验阶数是4。
所以我们发现,至少在这个单一实验中,ODE求解器1,2,4,有订单1,2和4。所以你可能已经意识到,这就是为什么我们将它们命名为ODE 1,2,和4。
这给我们带来在MATLAB ODE套件功能的命名约定。所有功能都是对主题ODEpq变化名。这意味着,该方法ODEpq使用顺序p和q的方法,因此,我们已经得到的,与我们的名字,ODE 1,2和4的一瞥。
下面是一个锻炼。修改为了X做,让我们的ODE求解器的次序进一步的实验。更改它做其他积分。并检查了ODE 1,2和4的顺序。