您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 会议纪要 > 数值分析(研究生)第七章常微分方程的数值解法一
第七章常微分方程的数值解法(一)第一节实际问题的导入第二节欧拉法第三节龙格—库塔法上页下页返回考虑一阶常微分方程的初值问题:0)(],[),,(yaybaxyxfdxdy只要f(x,y)在[a,b]R1上连续,且关于y满足Lipschitz条件,即存在与x,y无关的常数L使对任意定义在[a,b]上的y1(x)和y2(x)都成立,则上述IVP存在唯一解.|||),(),(|2121yyLyxfyxf数值解法:要计算出解函数y(x)在一系列节点a=x0x1…xn=b处的函数值的近似值).,...,1()(nixyyii§1实际问题的导入上页下页返回节点间距为步长,通常采用等距节点,即取hi=h(常数).)1,...,0(1nixxhiii数值解法的基本特点:采用步进式,即求解过程顺着节点排列的次序一步一步地向前推进,其关键是给出用已知信息计算的递推公式.,,,21iiiyyy1iy1.建立求数值解的递推公式.可分为单步法公式和多步法公式.其中,计算时只用到前一点的值的公式,称为单步法公式;而要用到前面k点的值的公式称为k步法公式.iy1iy11,,,kiiiyyy2.研究公式的局部截断误差、整体截断误差.3.研究公式的收敛性、稳定性及收敛的阶.本章要解决的主要问题是:上页下页返回1.差商替换法此即为解一阶常微分方程初值问题的欧拉公式.当用不同的差商替代导数时,就得到不同的计算公式.建立数值解法,一般采用以下方法将微分方程离散化:则得代替中,若用向前差商问题在一阶常微分方程初值),()()()(),,(10iiixyhxyxyyaybxayxfy)1,,2,1,0())(,()()(1nixyxfhxyxyiiii)1,,2,1,0(),()()(111niyxhfyyyxyyxyiiiiiiii,则有的近似值,记为代替,所得结果作为用其近似值上页下页返回2.数值积分法3.泰勒展开法)1,,2,1,0())(,()()(],[),(111nidxxyxfxyxyxxyxfyiixxiiii上积分,可得在区间将)1,,2,1,0(),()()(111niyxhfyyxyxyyyiiiiiiii形公式,同样有,并对右端积分用左矩、替代、分别用若对右端积分采用其它数值积分方法,也可得其它的计算公式.],[),(!2))(,()()(!2)()()()(12211iiiiiiiiiixxyhxyxhfxyyhxyhxyxyxxy处作一阶泰勒展开,有在将.)(,同样可得欧拉公式替代略去余项,并用iixyy上页下页返回§2Euler法一、欧拉公式x0x1向前差商近似导数hxyxyxy)()()(010),()()()(000001yxfhyxyhxyxy1y记为)1,...,0(),(1niyxfhyyiiii亦称为欧拉折线法上页下页返回定义在假设yi=y(xi),即第i步计算是精确的前提下,考虑的截断误差Ri=y(xi+1)yi+1称为局部截断误差.定义若某算法的局部截断误差为O(hp+1),则称该算法有p阶精度.欧拉法的局部截断误差:)],([)]()()()([)(32112iiiihiiiiiyxhfyhOxyxyhxyyxyR)()(232hOxyhi欧拉法具有1阶精度.Ri的主项二、局部截断误差与方法的精度上页下页返回).10(,1)0(2xyyxyy例1用欧拉方法求解初值问题解解此问题的欧拉公式为.1),2(01yyxyhyyiiiii计算结果如下表所示(取步长h=0.1):0.11.10001.09540.61.50901.48320.21.19181.18320.71.58031.54920.31.27741.26490.81.64981.61250.41.35821.34160.91.71781.67330.51.43511.41421.01.78481.7321nxnyny)(nxynx)(nxy上页下页返回三、欧拉公式的改进隐式欧拉法向后差商近似导数hxyxyxy)()()(011x0x1))(,()(1101xyxfhyxy)1,...,0(),(111niyxfhyyiiii由于未知数yi+1同时出现在等式的两边,不能直接得到,故称为隐式欧拉公式,而前者称为显式欧拉公式.一般先用显式计算一个初值,再迭代求解.隐式欧拉法的局部截断误差:11)(iiiyxyR)()(232hOxyhi即隐式欧拉公式具有1阶精度.上页下页返回梯形公式—显、隐式两种算法的平均).1,...,0()],,(),([2111niyxfyxfhyyiiiiii注:的确有局部截断误差,即梯形公式具有2阶精度,比欧拉方法有了进步.但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似.)()(311hOyxyRiii中点欧拉公式(二步尤拉公式)中心差商近似导数hxyxyxy2)()()(021x0x2x1))(,(2)()(1102xyxfhxyxy1,...,1),,(211niyxfhyyiiii假设,则可以导出即中点公式具有2阶精度.)(),(11iiiixyyxyy)()(311hOyxyRiii需要2个初值y0和y1来启动递推过程,这样的算法称为双步法,而前面的三种算法都是单步法.上页下页返回方法显式欧拉隐式欧拉梯形公式中点公式简单精度低稳定性最好精度低,计算量大精度提高计算量大精度提高,显式多一个初值,可能影响精度上页下页返回Step1:先用显式欧拉公式作预测,算出),(1iiiiyxfhyyStep2:再将代入隐式梯形公式的右边作校正,得到1iy)],(),([2111iiiiiiyxfyxfhyy注:此法亦称为预测-校正法.可以证明该算法具有2阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单.后面将看到,它的稳定性高于显式欧拉法.)1,...,0(,),(,),(211niyxfhyxfyxfhyyiiiiiiii4、改进的欧拉方法上页下页返回).10(,1)0(2xyyxyy例2用改进的欧拉方法求解初值问题解解此问题的改进欧拉公式为.1),(21)2()2(011yyyyyxyhyyyxyhyycpipipiciiiip上页下页返回计算结果如下表所示(取步长h=0.1):0.11.09501.09540.61.48601.48320.21.18411.18320.71.55251.54920.31.26621.26490.81.61531.61250.41.34341.34160.91.67821.67330.51.41641.41421.01.73791.7321nxnyny)(nxynx)(nxy同例1中欧拉方法的计算结果比较,改进欧拉方法明显改进了精度.上页下页返回.4.1,2.12*212处的函数值在数用改进的欧拉方法求函例xdteyxt上页下页返回§3龙格-库塔(Runge-kutta)方法建立高精度的单步递推格式.单步递推法的基本思想是从(xi,yi)点出发,以某一斜率沿直线达到(xi+1,yi+1)点.欧拉法及其各种变形所能达到的最高精度为2阶.一、龙格-库塔方法的基本思想及一般形式龙格-库塔法的基本思想是在[xi,xi+1]上多预报几个点的斜率值,然后用它们作加权平均来代替平均斜率,以其得到有较高精度的数值公式.上页下页返回龙格-库塔公式的一般形式是:),(),(11111jkkjkijijiirjjjiiKhyhxfKyxfKKchyy...,,)10()(龙格-库塔公式级显式为均来代替平均斜率,称个点的斜率值作加权平上式中预报了精度使上式具有尽可能高的选取这些常数的原则是均为常数点的斜率预测值;在是其中,rrchxxyyKjkjjjjij上页下页返回二、龙格-库塔公式的推导考察改进的欧拉法,可以将其改写为:),(),(2121121211hKyhxfKyxfKKKhyyiiiiii斜率一定取K1、K2的平均值吗?步长一定是一个h吗?上页下页返回首先希望能确定系数1、2、p,使得到的算法格式有2阶精度,即在的前提假设下,使得)(iixyy)()(311hOyxyRiiiStep1:将K2在(xi,yi)点作Taylor展开)(),(),(),(),(2112hOyxfphKyxphfyxfphKyphxfKiiyiixiiii)()()(2hOxyphxyii将改进欧拉法推广为:),(),(][12122111phKyphxfKyxfKKKhyyiiiiii),(),(),(),(),(),()(yxfyxfyxfdxdyyxfyxfyxfdxdxyyxyxStep2:将K2代入第1式,得到)()()()()]()()([)(322212211hOxyphxyhyhOxyphxyxyhyyiiiiiiii上页下页返回Step3:将yi+1与y(xi+1)在xi点的泰勒展开作比较)()()()(322211hOxyphxyhyyiiii)()(2)()()(321hOxyhxyhxyxyiiii要求,则必须有:)()(311hOyxyRiii21,1221p这里有个未知数,个方程.32存在无穷多个解.所有满足上式的格式统称为2阶龙格-库塔格式.21,121p注意到,就是改进的欧拉法.Q:为获得更高的精度,应该如何进一步推广?上页下页返回其中i(i=1,…,m),i(i=2,…,m)和ij(i=2,…,m;j=1,…,i1)均为待定系数,确定这些系数的步骤与前面相似.)...,(......),(),(),(]...[1122112321313312122122111mmmmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyy四阶龙格-库塔公式中最常用为经典四阶龙格-库塔公式:),()6,6()6,6(),()22(6342312143211hKyhxfKKhyhxfKKhyhxfKyxfKKKKKhyyiiiiiiiiii上页下页返回注:龙格-库塔法的主要运算在于计算Ki的值,即计算f的值。Butcher于1965年给出了计算量与可达到的最高精度阶数的关系:753可达到的最高精度642每步须算Ki的个数)(2hO)(3hO)(4hO)(5hO)(6hO)(4hO)(2nhO8n由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响.对于光滑性不太好的解,最好采用低阶算法而将步长h取小.上页下页返回).10(,1)0(2xyyxyy例3取步长h=0.2,用四阶龙格-库塔方法求解初值问题解解此问题的四阶龙格-库塔公式为.)(222222221),22(63322221121043211hkyhxhkykkhyhxkhykkhyhxkhykyxykykkkkhyynnnnnnnnnnnnnn上页下
本文标题:数值分析(研究生)第七章常微分方程的数值解法一
链接地址:https://www.777doc.com/doc-5171235 .html