1、1第第 8 章章 常微分方程数值解法常微分方程数值解法 本章本章主要内容主要内容:1欧拉法、改进欧拉法.2龙格-库塔法。3单步法的收敛性与稳定性。重点、难点重点、难点 一、微分方程的数值解法在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。本章我们主要讨论常微分方程初值问题的数值解法。00)(),(yxyyxfdxdy 数值解法的基本思想是:在常微分方程初值问题解的存在区间a,b内,取 n+1 个节点a=x0 x1xN=b(其中
2、差 hn=xn xn-1称为步长,一般取 h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。二、欧拉法与改进欧拉法 欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。将常微分方程变为),(yxfy 11)(,()()(nxnxnndttytfxyxy 1欧拉法(欧拉折线法)欧拉法是求解常微分方程初值问题的一种最简单的数值解法。欧拉法的基本思想:用左矩阵公式计算()式右端积分,则得欧拉法的计算公式为:NabhNnyxhfyynnnn)1,.,1,0(),(1欧拉法局部截断误
3、差或简记为 O(h2)。11121)(2 nnnnnxxyhRNabhNnyxhfyynnnn)1,.,1,0(),(12我们在计算时应注意欧拉法是一阶方法,计算误差较大。欧拉法的几何意义:过点 A0(x0,y0),A1(x1,y1),A n(x n,y n),斜率分别为 f(x0,y0),f(x1,y1),f(x n,y n)所连接的一条折线,所以欧拉法亦称为欧拉折线法。例例 1 1 用欧拉法解初值问题1)0()10(2yxxydxdy 在 x0(0.2)1 处的近似解。(计算过程保留 4 位小数)。【思路】用欧拉法求解常微分方程的初值问题时,首先熟练掌握欧拉公式的一般形式,根据具体题目写出
4、找出欧拉公式的迭代式,并根据初始条件和所给步长进行迭代求解。解解 f(x,y)2xy,h0.2,欧拉公式为:)5,4,3,2,1,0()4.01()2(2.0),(1nyxyxyyxhfyynnnnnnnnn 列表计算如下:nxnyny(xn)y(xn)-yn0011010.210.9608-0.039220.40.920.8521-0.067930.60.77280.6977-0.075140.80.58730.5273-0.06510.39940.3679-0.03153 2改进欧拉法 改进欧拉法比欧拉法的计算准确,是对欧拉法的改进。改进欧拉法的基本思想:用梯形公式计算()式右端积分,则得
5、改进欧拉法的计算公式为:NabhNnyxfyxfhyynnnnnn)1,.,1,0(),(),(2111 利用改进欧拉法计算常微分方程初值问题时,我们应注意此公式为隐式表达式,需要对它进行迭代求解。计算时可以采用一次迭代和多次迭代,因此,就有改进欧拉法预估-校正法公式和反复迭代的改进欧拉法预估-校正法公式。改进欧拉法预估-校正法公式:)1,.,1,0(),(),(2),(011101Nnyxfyxfhyyyxhfyynnnnnnnnnn反复迭代的改进欧拉法预估-校正法公式:),.,1,0,1,0(),(),(2),(111101mNnyxfyxfhyyyxhfyymnnnnnmnnnnnL 改
6、进欧拉法的局部截断误差或简记为 O(h3)。11131)(12 nnnnnxxyhR从局部截断误差的形式看,改进欧拉法是二阶方法,因此,它比欧拉法更精确。例例 2 2 用预估-校正法求初值问题 1)0()10(2yxxyyy在 x=0(0.2)1 的解。【思路】掌握预估-校正法的计算公式,根据已知条件迭代求解。解解 步长 h=0.2,将代入预估-校正公式,整理得2),(xyyyxf2)0(11)0(1212)0(1)(1.01.09.02.08.0nnnnnnnnnnnyxyyxyyyxyy列表计算如下:4 例例 3 3 用改进欧拉法求解例 1 的初值问题,要求。3)1()(10mnmnyy
7、【思路】掌握改进欧拉法的计算公式,根据已知条件迭代求解,并检验迭代解是否满足精度要求,若满足则确定此解为常微分方程在某点的近似解。解解 将代入改进欧拉法的计算公式得:xyyxf2),()2.0),(),(2)4.01()2(2.0),(1111111)0(1mnnnnnmnnnnnmnnnnnnnnnnyxyxyyxfyxfhyyyxyxyyxhfyy 列表计算如下:nx ny ny(x n)001110.20.807200.8046320.40.636900.6314530.60.490480.4891840.80.377800.37720510.291030.29100nnx 0ny 1n
8、y 2ny nnyy3y(xn)y(xn)-yn0011111010.210.960.96160.96150.9608-0.000720.40.88460.85230.85490.85490.8521-0.002830.60.71810.70030.70250.70220.6977-0.004540.80.53370.53250.53270.53270.5273-0.0054510.36220.37500.37250.37300.3679-0.00515 三、龙格-库塔法 1龙格-库塔法龙格-库塔法具有精度高、收敛、稳定,不需要计算高阶导数等优点,是求解微分方程初值问题的一组著名的显示单步方法
9、,广泛应用于求解常微分方程的初值问题。本章我们介绍了二、三、四阶龙格-库塔法。龙格-库塔法的基本思想:在计算初值问题的数值解时,考虑均差,则由微分中值00)(),(yxyyxfyhxyxynn)()(1定理可得,由初值问题可得公式为:)10()()()(1hxyhxyxynnn上式中称为区间)(,()()(1hxyhxhfxyxykkkk)(,(hxyhxfkk上的平均斜率。如果给平均斜率一种计算方法,就可得到计算 y(x n+1)的近似值 yn+1的公式。如果仅取处的斜率值作为平均斜率的近似值,则得到的的公式为欧拉nx),(nnyxf1ny公式;如果取处的斜率值,的平均值作为平均斜率的近似值
10、,1,nnxx),(nnyxf),(11nnyxf则得到的的公式改进欧拉公式。1ny 二阶龙格-库塔法的公式和局部截断误差:),(),()(112122111hkyxfkyxfkkkhyynnnnnn在上式中选择不同的参数,会得到不同的二阶龙格-库塔法公式,所以二阶龙格-库塔法公式不唯一。二阶龙格-库塔法公式的局部截断误差为(h3)。常见的二阶龙格-库塔法公式有以下两种改进欧拉法迭代公式 6 ),(),()(21121211hkyxfkyxfkkkhyynnnnnn)2,2(),(12121khyhxfkyxfkhkyynnnnnn 三阶龙格-库塔法的公式和局部截断误差:常见的三阶龙格-库塔法
11、公式为 )2,()2,2(),()4(62131213211hkhkyhxfkkhyhxfkyxfkkkkhyynnnnnnnn 三阶龙格-库塔法公式的局部截断误差为(h4)。四阶龙格-库塔法公式 通常所说的龙格-库塔法是指四阶龙格-库塔法,也称为标准龙格-库塔法。由于它是一步法,(即已知,就可以求出,无需知道,的值)且它的计算精度高,ny1ny1ny2ny所以应用较多,但在计算时,因为每一步都需要计算四次 f(x,y)的值,计算量较大,所以,一般用来计算前几项的近似值,即“表头”。四阶龙格-库塔法公式为的公式和局部截断误差:)2,2(),(12121khyhxfkyxfkhkyynnnnnn
12、)2,2(),(12121khyhxfkyxfkhkyynnnnnn7),()2,2()2,2(),()22(6342312143211hkyhxfkkhyhxfkkhyhxfkyxfkkkkkhyynnnnnnnnnn 四阶龙格-库塔法的局部截断误差为(h5)。四、单步法的收敛性和稳定性 1收敛性 如果在无舍入误差且步长 h 充分小的情况下,求得的近似值足够精确地逼近真解 ny,即:当时,一致地有)(nxy0h)(nnxyy 欧拉法整体截断误差:其中为真解,为在无舍入误差nnnyxy)()(nxyny情况下,从 y0用欧拉法计算公式求得的近似解。欧拉法的收敛条件:如果 f(x,y)关于 y
13、满足 Lipschitz 条件,且局部截断误差 Rn有界,即则欧拉法收敛。且欧拉法的整体截断误差估计),.,2,1(222NnMhRn式为:)1(2)(2abLneLhM其中 L 为 Lipschitz 常数,b-a 为求解区间的长度,。)(max2xyMbxa 3.稳定性和绝对稳定性 稳定性:指初始(或某步)产生的误差在后面的迭代计算中不会再扩大。即存在常数C 及 h0,0hh0时,对任意两个初始值满足不等式 。00,yy00yyCyynn 欧拉法稳定性的条件:如果 f(x,y)关于 y 满足 Lipschitz 条件,则欧拉法稳定。绝对稳定性:若对固定步长及任意两个初始值满足不等式0h00
14、,yy 。00yyyynn8 我们在讨论稳定性时应注意,一般在实际计算中只能取固定步长,它不可能任意缩小。所以绝对稳定性则表示的是对固定步长 h0,在初始(或某步)所产生的误差,在以后计算中不会逐步增长。由于绝对稳定性的成立和 f(x,y)有关,讨论较为复杂。所以一般地,我们对简单的微分方程的绝对稳定性进行讨论。使得数值方法绝对00)(yxyyy稳定的步长 h 和常数 的取值范围称为绝对稳定域。(各种数值方法的绝对稳定域见课本)。例 4 对于初值问题,1)0(20yyy证明当时,欧拉法绝对稳定。1.0h证明 由欧拉公式得 11)201()201(nnnnyhyyhy所以,01101201ehehennnL当时,有1.0h0,1201eehn所以欧拉法绝对稳定。本章学习以记忆公式和掌握证明题的推导方法为主。本章学习以记忆公式和掌握证明题的推导方法为主。