当前位置:文档之家› 常微分方程解

常微分方程解

第四章常微分方程数值解[课时安排]6学时[教学课型]理论课[教学目的和要求]了解常微分方程初值问题数值解法的一些基本概念,如单步法和多步法,显式和隐式,方法的阶数,整体截断误差和局部截断误差的区别和关系等;掌握一阶常微分方程初值问题的一些常用的数值计算方法,例如欧拉(Euler)方法、改进的欧拉方法、龙贝-库塔(Runge-Kutta)方法、阿达姆斯(Adams)方法等,要注意各方法的特点及有关的理论分析;掌握构造常微分方程数值解的数值积分的构造方法和泰勒展开的构造方法的基本思想,并能具体应用它们导出一些常用的数值计算公式及评估截断误差;熟练掌握龙格-库塔(R-K)方法的基本思想,公式的推导,R-K公式中系数的确定,特别是能应用“标准四阶R-K公式”解题;掌握数值方法的收敛性和稳定性的概念,并能确定给定方法的绝对稳定性区域。

[教学重点与难点]重点:欧拉方法,改进的欧拉方法,龙贝-库塔方法。

难点:R—K方法,预估-校正公式。

[教学内容与过程]4.1 引言本章讨论常微分方程初值问题(4.1.1)的数值解法,这也是科学与工程计算经常遇到的问题,由于只有很特殊的方程能用解析方法求解,而用计算机求解常微分方程的初值问题都要采用数值方法.通常我们假定(4.1.1)中f(x,y)对y满足Lipschitz条件,即存在常数L>0,使对,有(4.1.2) 则初值问题(4.1.1)的解存在唯一.假定(4.1.1)的精确解为,求它的数值解就是要在区间上的一组离散点上求的近似.通常取,h称为步长,求(4.1.1)的数值解是按节点的顺序逐步推进求得.首先,要对方程做离散逼近,求出数值解的公式,再研究公式的局部截断误差,计算稳定性以及数值解的收敛性与整体误差等问题.4.2 简单的单步法及基本概念4.2.1 Euler法、后退Euler法与梯形法求初值问题(4.1.1)的一种最简单方法是将节点的导数用差商代替,于是(4.1.1)的方程可近似写成(4.2.1)从出发,由(4.2.1)求得再将代入(4.2.1)右端,得到的近似,一般写成(4.2.2) 称为解初值问题的Euler法.Euler法的几何意义如图4-1所示.初值问题(4.1.1)的解曲线y=y(x)过点,从出发,以为斜率作一段直线,与直线交点于,显然有,再从出发,以为斜率作直线推进到上一点,其余类推,这样得到解曲线的一条近似曲线,它就是折线.Euler法也可利用的Taylor展开式得到,由(4.2.3) 略去余项,以,就得到近似计算公式(4.2.2).另外,还可对(4.1.1)的方程两端由到积分得(4.2.4)若右端积分用左矩形公式,用,,则得(4.2.2).如果在(4.2.4)的积分中用右矩形公式,则得(4.2.5)称为后退(隐式)Euler法.若在(4.2.4)的积分中用梯形公式,则得(4.2.6)称为梯形方法.上述三个公式(4.2.2),(4.2.5)及(4.2.6)都是由计算,这种只用前一步即可算出的公式称为单步法,其中(4.2.2)可由逐次求出的值,称为显式方法,而(4.2.5)及(4.2.6)右端含有当f对y非线性时它不能直接求出,此时应把它看作一个方程,求解,这类方法称为稳式方法.此时可将(4.2.5)或(4.2.6)写成不动点形式的方程这里对式(4.2.5)有,对(4.2.6)则,g与无关,可构造迭代法(4.2.7)由于对y满足条件(4.1.2),故有当或,迭代法(4.2.4)收敛到,因此只要步长h足够小,就可保证迭代(4.2.4)收敛.对后退Euler法(4.2.5),当时迭代收敛,对梯形法(4.2.6),当时迭代序列收敛.例4.1用Euler法、隐式Euler法、梯形法解取h=0.1,计算到x=0.5,并与精确解比较.解本题可直接用给出公式计算.由于,Euler法的计算公式为n=0时,.其余n=1,2,3,4的计算结果见表4-1.对隐式Euler法,计算公式为解出当n=0时,.其余n=1,2,3,4的计算结果见表4-1.表4-1 例4.1的三种方法及精确解的计算结果对梯形法,计算公式为解得当n=0时,.其余n=1,2,3,4的计算结果见表4-1.本题的精确解为,表4-1列出三种方法及精确解的计算结果.4.2.2 单步法的局部截断误差解初值问题(4.1.1)的单步法可表示为(4.2.8)其中与有关,称为增量函数,当含有时,是隐式单步法,如(4.2.5)及(4.2.6)均为隐式单步法,而当不含时,则为显式单步法,它表示为(4.2.9)如Euler法(4.2.2),.为讨论方便,我们只对显式单步法(4.2.9)给出局部截断误差概念.定义2.1设y(x)是初值问题(4.1.1)的精确解,记(4.2.10)称为显式单步法(4.2.9)在的局部截断误差.之所以称为局部截断误差,可理解为用公式(4.2.9)计算时,前面各步都没有误差,即,只考虑由计算到这一步的误差,此时由(4.2.10)有局部截断误差(4.2.10)实际上是将精确解代入(4.2.9)产生的公式误差,利用Taylor展开式可得到.例如对Euler法(4.2.2)有,故它表明Euler法(4.2.2)的局部截断误差为,称为局部截断误差主项.定义2.2 设是初值问题(4.1.1)的精确解,若显式单步法(4.2.9)的局部截断误差,是展开式的最大整数,称为单步法(4.2.9)的阶,含的项称为局部截断误差主项.根据定义,Euler法(4.2.2)中的=1故此方法为一阶方法.对隐式单步法(4.2.8)也可类似求其局部截断误差和阶,如对后退Euler法(4.2.5)有局部截断误差故此方法的局部截断误差主项为,也是一阶方法.对梯形法(4.2.6)同样有它的局部误差主项为,方法是二阶的.4.2.3 改进Euler法上述三种简单的单步法中,梯形法(4.2.6)为二阶方法,且局部截断误差最小,但方法是隐式的,计算要用迭代法.为避免迭代,可先用Euler法计算出的近似,将(4.2.6)改为(4.2.11)称为改进Euler法,它实际上是显式方法.即(4.2.12)右端已不含.可以证明,=2,故方法仍为二阶的,与梯形法一样,但用(4.2.11)计算不用迭代.例4.2用改进Euler法求例4.1的初值问题并与Euler法和梯形法比较误差的大小.解将改进Euler法用于例4.1的计算公式当n=0时,.其余结果见表4-2.表4-2 改进Euler法及三种方法的误差比较从表4-2中看到改进Euler法的误差数量级与梯形法大致相同,而比Euler法小得多,它优于Euler法.讲解:求初值问题(4.1.1)的数值解就是在假定初值问题解存在唯一的前提下在给定区间上的一组离散点上求解析解的一组近似为此先要建立求数值解的计算公式,通常称为差分公式,简单的单步法就是由计算下一步,构造差分公式有三种方法,一是用均差(即差商)近似,二是用等价的积分方程(4.2.4)用数值积分方法,三是用函数的Taylor展开,其中Taylor展开最有普遍性,可以得到任何数值解的计算公式及其局部截断误差。

计算公式是微分方程的一种近似,局部截断误差的概念就是刻划这种逼迫的好坏。

当为微分方程的解,即,而用,定义局部截断误差,它表示用精确解代入计算公式(4.2.9)产生的公式误差为越大表明公式逼近微分方程的精度越高,因此就定义为公式的阶,通常的公式才能用于计算初值问题(4.1.1)的数值解。

利用Taylor展开时,只要将的表达式在处展开成Taylor公式就可得到不同公式的局部截断误差。

如4.2.2所给出的Euler法。

后退Euler法和梯形法,它们只需用一元函数的Taylor展开,与后面4.5节的多步法完全一致,而通常单步法(4.2.9)的一般情况则需要用二元函数的Taylor展开,才能得到公式的具体形式和局部截断误差。

例如对改进Euler法,其局部截断误差由(4.2.12)可得要求出它的结果就要用到二元函数的Taylor展开,将在4.3节再作介绍。

4.3 Runge-Kutta方法4.3.1 显式 Runge-Kutta法的一般形式上节已给出与初值问题(4.1.1)等价的积分形式(4.3.1)只要对右端积分用不同的数值求积公式近似就可得到不同的求解初值问题(4.1.1)的数值方法,若用显式单步法(4.3.2)当,即数值求积用左矩形公式,它就是Euler法(4.2.2),方法只有一阶,若取(4.3.3)就是改进Euler法,这时数值求积公式是梯形公式的一种近似,计算时要用二个右端函数f的值,但方法是二阶的.若要得到更高阶的公式,则求积分时必须用更多的f值,根据数值积分公式,可将(4.3.1)右端积分表示为注意,右端f中还不能直接得到,需要像改进Euler法(4.2.11)一样,用前面已算得的f值表示为(4.3.3),一般情况可将(4.3.2)的表示为(4.3.4)其中这里均为待定常数,公式(4.3.2),(4.3.4)称为r级的显式Runge-Kutta法,简称R-K方法.它每步计算r个f值(即),而ki 由前面(i-1)个已算出的表示,故公式是显式的.例如当r=2时,公式可表示为(4.3.5)其中.改进Euler法(4.2.11)就是一个二级显式R-K方法.参数取不同的值,可得到不同公式.4.3.2 二、三级显式R-K方法对r=2的显式R-K方法(4.3.5),要求选择参数,使公式的阶p尽量高,由局部截断误差定义(4.3.6)令,对(4.3.6)式在处按Taylor公式展开,由于将上述结果代入(4.3.6)得要使公式(4.3.5)具有的阶p=2,即,必须(4.3.4)即由此三式求的解不唯一.因r=2,故,于是有解(4.3.8)它表明使(4.3.5)具有二阶的方法很多,只要都可得到二阶R-K方法.若取,则,则得改进Euler法(4.2.11),若取,则得,此时(4.3.5)为(4.3.9)其中称为中点公式.后退Euler法(4.2.11)及中点公式(4.3.9)是两个常用的二级R-K方法,注意二级R-K方法只能达到二阶,而不可能达到三阶.因为r=2只有4个参数,要达到p=3则在(4.3.6)的展开式中要增加3项,即增加三个方程.加上(4.3.4)的三个方程求4个待定参数是无解的.当然r=2,p=2的R-K方法(4.3.5)当取其他数时,也可得到其他公式,但系数较复杂,一般不再给出.对r=3的情形,要计算三个k值,即其中将按二元函数在处按Taylor公式展开,然后代入局部截断误差表达式,可得可得三阶方法,其系数应满足方程4.3.10)这是8个未知数6个方程的方程组,解也是不唯一的,通常.一种常见的三级三阶R-K方法是下面的Kutta三阶方法:(4.3.11)4.3.3 四阶R-K方法及步长的自动选择利用二元函数Taylor展开式可以确定(4.3.4)中r=4,p=4的R-K方法,经典的四阶R-K 方法是:(4.3.12)它的局部截断误差,故p=4,这是最常用的四阶R-K方法,数学库中都有用此方法求解初值问题的软件.这种方法的优点是精度较高,缺点是每步要算4个右端函数值,计算量较大.例4.3用经典四阶R-K方法解例4.1的初值问题,仍取h=0.1,计算到,并与改进Euler法、梯形法在处比较其误差大小.解用四阶R-K方法公式(4.3.12),此处,于是当n=0时于是,按公式(4.3.12)可算出此方法误差:改进Euler法误差:梯形法误差:可见四阶R-K方法的精度比二阶方法高得多.用四阶R-K方法求解初值问题(4.1.1)精度较高,但要从理论上给出误差的估计式则比较困难.那么应如何判断计算结果的精度以及如何选择合适的步长h?通常是通过不同步长在计算机上的计算结果近似估计.设在处的值,当时,的近似为,于是由四阶R-K方法有若以为步长,计算两步到,则有于是得即或(4.3.13)它给出了误差的近似估计.如果(ε为给定精度),则认为以为步长的计算结果满足精度要求,若,则还可放大步长.因此(4.3.13)提供了自动选择步长的方法.讲解:求初值问题(4.1.1)的单步法主要是指Runge-Kutta法,本节主要讨论显式R-K方法,建立具体的计算公式使用的是Taylor展开,形如(4.3.4)的显式R-K方法,当r=1时就是Euler法,因此只要讨论的计算公式,在r确定后如何推导公式都是一样的,只是r越大计算越复杂,为了掌握了解公式来源,只要以r=2为例推导计算公式即可。

相关主题