从系列中:MATLAB中常微分方程的求解
克利夫·莫勒
ODE23比较二阶和三阶方法,以自动选择步长并保持指定的精度。它是最简单的MATLAB解算器,具有自动误差估计和连续插值等现代功能。ODE23适用于粗略精度要求,如计算机图形学。
实现现代数值方法的软件具有ODE4和经典龙格库塔(Runge Kutta)等代码中没有的两个功能。软件中的方法可以估计误差并提供自动步长控制。您不指定步长h。您可以指定所需的精度。这些方法在误差发生时进行估计,然后只需要相应的步长。它们提供了一个完全精确的连续插值。它们不仅仅提供离散点集的解。它们提供了一个函数,定义了区间中所有地方的解。因此,您可以绘制它,找到函数的零点,提供一个称为事件处理的工具,等等。
Larry Shampine是常微分方程数值解方面的权威。他是这本关于用MATLAB求解常微分方程的教科书的主要作者。他现在是达拉斯南卫理公会大学的名誉教授。他长期担任MathWorks的顾问,负责开发我们的ODE套件。Shampine和他的学生Przemyslaw Bogacki在1989年发表了这种方法。它是ODE23的基础,ODE23是我们将在MatlabODE套件中使用的第一种方法。
基本方法是三阶。误差估计是基于三阶方法和二阶方法之间的差异。涉及四个斜坡。
第一个是间隔开始时函数的值。但这是基于一个叫做FSAL的东西,第一个和最后一个一样,这个斜率很可能是前一步留下的。如果上一步成功,此函数值与上一步中的最后一个函数值相同。
该斜率用于跨入区间中间,函数在此处求值。该斜率用于跨过区间的3/4步,并在此处获得第三个斜率。然后使用这三个值进行跨步。yn加1是这三个函数值的线性组合。然后对函数求值以获得第四个斜率然后,这四个斜率被用来估计误差。
这里的误差估计值是yn+1和另一个从二阶方法得到的解的估计值之间的差值,我们不需要实际计算。我们只需要该方法和yn+1之间的差值来估计误差。
此估计误差与用户提供的公差进行比较。如果估计误差小于公差,则步骤成功。第四个坡度s4成为下一步的s1。
如果答案大于公差,则误差可作为调整步长的依据。无论哪种情况,误差估计都是调整下一步步长的基础。这是Bogacki-Shampine Order 3(2)方法,它是ODE 23的基础。
让我们先来看看ODE23的一些非常简单的用法。我将取微分方程y,素数等于。所以我要计算e到t。只需在0到1的间隔内调用ODE23,初始值为1。没有输出参数。如果我称之为ODE23,它只是绘制了解决方案。给你。它只是产生一个情节。它选择一个步长,从0到1,这里它得到最终的值e--2.7。
如果我提供输出参数。我说t逗号y等于ODE23,它的值是t和y。ODE23选择它想要的t值。这是一个微不足道的问题。它最终选择的步长为0.1。在开始之后,它为任何误差公差选择0.08的初始步长。y的最终值是2.718,这是e的值。
这就是ODE23的两个简单用法。如果不提供任何输出参数,它将绘制一个图形。如果您确实提供了输出参数t和y,那么返回时会显示t和y的值,选择t的值以满足错误。默认误差公差为10到负3。所以这个值将精确到三位数。果然,这就是我们得到的。
现在,让我们尝试一些更具挑战性的方法,看看自动误差控制步长选择的效果。将a设置为四分之一。然后将y0设置为15.9。如果将其设置为16,即1除以平方,我会遇到奇点。现在微分方程是y素数等于2(a减去t)乘以y的平方。我将把它与ODE23在从0到1的间隔上积分,从y0开始,将结果保存在t和y中,然后绘制它们。这是我的plot命令,这是解决方案。
所以在a有一个近乎奇异的点。它几乎爆炸了。然后它沉降下来。所以当你上升到奇异点,然后下降,点聚在一起,但是随着解沉降,点之间的距离变远。ODE解算器能够采取更大的步骤。
为了了解实际采取了哪些步骤,让我们计算t的差值,然后绘制它。这是我们所采取的步骤。我们看到,在0.25的近似奇点附近,有一小步。然后,当我们接近间隔的末尾时,会采取更大的步长。然后,最后,以到达间隔末尾的步长作为最后一步。这就是ODE23的自动步长选择。
BS23有一种很好的天然内插剂,它与之配套,实际上已经被人们知道了100多年。这叫做埃尔米特三次插值。我们知道两点决定一条直线。两个点和两个斜率决定了一个立方。
在每个区间上,我们有y和yn加1的值。我们还有两个斜率,也就是说。我们有端点处的导数,yn素数和yn加1素数,这是微分方程在这些点上的值。这四个值决定了一个经过这两个点并有这两个斜率的立方。
此立方体允许软件在间隔内的任何点评估解决方案,而无需增加函数f的额外评估所定义的额外成本。这可以用于绘制解决方案的图形、解决方案的平滑图形、查找解决方案的零点、执行事件处理等。ODE23提供的另一个特性。
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。