从系列:在MATLAB常微分方程求解
克里夫·莫勒尔,MathWorks公司
在MATLAB ODE的名称中的数字求解反映其订单和产生的准确性。一种方法是说,有阶数p,如果切割步长的一半通过两个到功率p + 1的因子减小在一个步骤中的误差。
数值方法的一个非常重要的性质是它的顺序。该方法的准确度正比于步长大小的功率。且电量是调用的顺序。
如果h是步长且p是顺序,然后在一个步骤中所产生的误差正比于h至所述p加1和误差在遍历整个间隔作出是与H成比例于p。
因此,这意味着,如果你在使用半p阶的方法,切步长,你可以期望通过2到P的一个因素可以降低总体误差。数值方法的顺序是由该方法的推导过程中涉及的泰勒级数分析确定。但是,我们也可以做一个实验,以确定顺序。
这才是这个计划做什么。输入是ODE求解器的名称。然后它会做一个数值积分的常微分方程,只是涉及吨。所以结果是一个整体的价值。1超过1加t的积分平方,从0到1。
我们知道确切的答案是1/2。因此,我们集成了微分方程两次,一次以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,我们这个实验,越来越顺序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的顺序。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。