1.问题及求解公式的构造方法
我们讨论的一阶微分方程的初值问题为
设初值问题式(7-30)的解为y (x),为了求其数值解而采取离散化方法,在求解区间[a、b]上取一组节点
称hi=xi+1-xi(i=0,1,…,n-1)为步长。在等步长的情况下,步长为
用yi表示在节点xi处解的准确值y (xi)的近似值。
设法构造序列{yi}所满足的一个方程(称为差分方程)
作为求解公式,这是一个递推公式,从 (x0,y0)出发,采用步进方式,自左相右逐步算出y (x)在所有节点xi上的近似值yi(i=1,2,…,n)。
在式(7-31)中,为求yi+1只用到前面一步的值yi,这种方法称为单步法。在式(7-31)中的yi+1由yi明显表示出,称为显式公式。而形如
的公式称为隐式公式,因为其右端ψ中还包括yi+1。
如果由公式求yi+1时,不止用到前一个节点的值,则称为多步法。由式(7-30)可得
两边在[xi,xi+1]上积分,得
由此可以看出,如果想构造求解公式,就要对右端的积分项作某种数值处理。这种求解公式的构造方法叫做数值积分法。
2.一般的初值问题的解法
(1)欧拉格式和改进欧拉格式。对于初值问题式(7-30),采用数值积分法,从而得到式 (7-34)。对于式(7-34)右端的积分用矩形公式(取左端点),则得到
进而得到式(7-30)的求解公式为
此公式称为欧拉(Euler)格式。
如果对式(7-34)右端的积分用梯形公式
则可以得到初值问题式(7-30)的梯形求解公式为
(2)龙格—库塔法。在单步法中,应用最广泛的是龙格—库塔 (Runge Kutta)法,简称R—K法。下面直接给出一种四阶的龙格—库塔法的计算公式,即
它也称为标准(古典)龙格—库塔法。
【例7-11】 研究下列微分方程的初值问题
解:这是一个特殊的微分方程,其解的解析式可以给出,即
应用龙格—库塔法,取h=0.25,根据式 (7-38)编写一段程序,由零开始自左相右逐步算出y(x)在所有节点xi上的近似值yi。计算结果见表7-11。计算结果表明,四阶龙格—库塔法的精度是较高的。(www.daowen.com)
表7-11 [例7-11]的计算过程和结果
实际上,MATLAB为常微分方程提供了很好的解题指令,使得求解常微分方程变得很容易,并且能将问题及解答表现在图形上。因此,我们可以不用根据式 (7-38)编写较复杂的程序,而只需应用MATLAB提供的常微分方程解题器来解决问题。下面给出用MATLAB5.3编写的解题程序。
首先编写描述常微分方程的ODE文件,文件名为‘myfun’,便于解题器调用它。
运行上述程序,在得到几个点的函数值的同时,也得到函数y的曲线,如图7-9所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。