常微分方程数值解法(IV).ppt





《常微分方程数值解法(IV).ppt》由会员分享,可在线阅读,更多相关《常微分方程数值解法(IV).ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、绪论 在工程和科学计算中,所建立的各种常微分方程的初值或边值问题,除很少几类的特殊方程能给出解析解,绝大多数的方程是很难甚至不可能给出解析解的,其主要原因在于积分工具的局限性。因此,人们转向用数值方法去解常微分方程,并获得相当大的成功,讨论和研究微分方程的数值解法是有重要意义的。所谓微分方程数值解法,就是研究利用计算机求解微分方程的近似解的数值方法及相关理论。微分方程数值解法是“信息与计算科学”专业的专业基础课程之一,与数值代数、数值逼近和计算几何统称三大核心课程。第一部分第一部分 常微分方程数值解常微分方程数值解/*Numerical Methods for Ordinary Differe
2、ntial Equations*/待求解的问题待求解的问题:一阶一阶常微分方程的常微分方程的初值问题初值问题/*Initial-Value Problem*/:解的存在唯一性解的存在唯一性(“常微分方程常微分方程”理论):只要理论):只要 f(x,y)在在a,b R1 上连续,且关于上连续,且关于 y 满足满足 Lipschitz 条件条件,即存,即存在与在与 x,y 无关的常数无关的常数 L 使使对任意定义在对任意定义在 a,b 上的上的 y1(x)和和 y2(x)都成立,则上述都成立,则上述IVP存在唯一解存在唯一解。解析解法解析解法:(常微分方程理论):(常微分方程理论)只能求解极少一类
3、常微分方程;实际中给定的问题不一只能求解极少一类常微分方程;实际中给定的问题不一定是解析表达式,而是函数表,无法用解析解法。定是解析表达式,而是函数表,无法用解析解法。如何求解如何求解计算解函数计算解函数 y(x)在一系列节点在一系列节点 a=x0 x1 xn=b 处的近似值处的近似值节点间距节点间距 为步长,通常采用为步长,通常采用等距节点等距节点,即取,即取 hi=h(常数常数)。数值解法数值解法:求解所有的常微分方程求解所有的常微分方程步进式步进式:根据已知的或已求出的节点上的函数值计算:根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。因此只需当前节点上的函数
4、值,一步一步向前推进。因此只需建立由已知的或已求出的节点上的函数值求当前节点建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。函数值的递推公式即可。-Eulers Method1 欧拉方法欧拉方法/*Eulers Method*/1 Eulers MethodTaylor展开法展开法几何意义几何意义亦称为亦称为欧拉折线法欧拉折线法/*Eulers polygonal arc method*/几何直观是帮助我们寻几何直观是帮助我们寻找解决一个问题的思路找解决一个问题的思路的好办法哦的好办法哦在在假假设设 yn=y(xn),即即第第 n 步步计计算算是是精精确确的的前前提提下下,
5、考考虑虑公公式式或或方方法法本本身身带带来来的的误误差差:Rn=y(xn+1)yn+1,称称为为局局部部截断误差截断误差/*local truncation error*/。说明 显然,这种近似有一定误差,显然,这种近似有一定误差,而且步长越大,误差越大,而且步长越大,误差越大,如何估计这种误差如何估计这种误差y(xn+1)yn+1?1 Eulers Method截断误差截断误差:实际上,实际上,y(xn)yn,yn 也有误差,它对也有误差,它对yn+1的误的误差也有影响,见下图。但这里不考虑此误差的影响,仅考虑差也有影响,见下图。但这里不考虑此误差的影响,仅考虑方法或公式本身带来的误差,因此
6、称为方法误差或截断误差。方法或公式本身带来的误差,因此称为方法误差或截断误差。局部截断误差的分析局部截断误差的分析:由于假设:由于假设yn=y(xn),即,即yn准确,因此准确,因此分析局部截断误差时将分析局部截断误差时将y(xn+1)和和 yn+1都用点都用点xn上的信息来表上的信息来表示,工具:示,工具:Taylor展开。展开。欧拉法的局部截断误差:欧拉法的局部截断误差:Rn+1 的的主项主项/*leading term*/1 Eulers Method若若某某算算法法的的局局部部截截断断误误差差为为O(hp+1),则则称称该该算算法法有有p 阶精度。阶精度。欧拉法具有欧拉法具有 1 阶精
7、度。阶精度。在在xn点用一阶向前差点用一阶向前差商近似一阶导数商近似一阶导数Eulers method1 Eulers Method1 Eulers Method 欧拉公式的改进欧拉公式的改进:隐式欧拉法或后退欧拉法隐式欧拉法或后退欧拉法/*implicit Euler method or backward Euler method*/xn+1点向后差商近似导数点向后差商近似导数隐式或后退欧拉公式隐式或后退欧拉公式由于未知数由于未知数 yn+1 同时出现在等式的两边,故称为同时出现在等式的两边,故称为隐式隐式/*implicit*/欧拉公式,而前者称为欧拉公式,而前者称为显式显式/*expli
8、cit*/欧拉公欧拉公式。隐式公式不能直接求解,一般需要用式。隐式公式不能直接求解,一般需要用Euler显式公式显式公式得到初值,然后用得到初值,然后用Euler隐式公式迭代求解。因此隐式公隐式公式迭代求解。因此隐式公式较显式公式计算复杂,但稳定性好(后面分析)。式较显式公式计算复杂,但稳定性好(后面分析)。收敛性收敛性1 Eulers Method 见上图,见上图,显然,这种近似也有一定误差,显然,这种近似也有一定误差,如何估计这种误差如何估计这种误差y(xn+1)yn+1?方法同上,基于方法同上,基于Taylor展开估计局部截断误差。展开估计局部截断误差。但是注意,隐式公式中右边含有但是注
9、意,隐式公式中右边含有f(xn+1,yn+1),由于由于yn+1不准确,所以不能直接用不准确,所以不能直接用y(xn+1)代替代替f(xn+1,yn+1)设已知曲线上一点设已知曲线上一点 Pn(xn,yn),过过该点作弦线,斜率为该点作弦线,斜率为(xn+1,yn+1)点的方向场点的方向场f(x,y)方向方向,若步长若步长h充分充分小,可用弦线和垂线小,可用弦线和垂线x=xn+1的交点的交点近似曲线与垂线的交点。近似曲线与垂线的交点。几何意义xnxn+1PnPn+1xyy(x)1 Eulers Method 隐式隐式欧拉法的局部截断误差:欧拉法的局部截断误差:1 Eulers Method1
10、Eulers Method 隐式隐式欧拉法的局部截断误差:欧拉法的局部截断误差:即隐式欧拉公式具有即隐式欧拉公式具有 1 阶精度。阶精度。1 Eulers Method比较尤拉显式公式和隐式公式及其局部截断误差显式公式隐式公式1 Eulers Method 若将这两种方法进行算术平均,即可消除误差若将这两种方法进行算术平均,即可消除误差的主要部分的主要部分/*leading term*/而获得更高的精度而获得更高的精度,称为梯形法称为梯形法1 Eulers Method 梯形公式梯形公式/*trapezoid formula*/显、隐式两种算法的显、隐式两种算法的平均平均注:注:的确有局部截断
11、误差的确有局部截断误差 ,即梯形公式具有即梯形公式具有2 阶精度,比欧拉方法有了进步。但阶精度,比欧拉方法有了进步。但注意到该公式是注意到该公式是隐式隐式公式,计算时不得不用到迭代法,公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。其迭代收敛性与欧拉公式相似。梯形法的迭代计算和收敛性梯形法的迭代计算和收敛性收敛性收敛性1 Eulers Method梯形法的简化计算梯形法的简化计算 迭代计算量大,且难以预测迭代次数。为了控制计算量,通常只迭代一迭代计算量大,且难以预测迭代次数。为了控制计算量,通常只迭代一次就转入下一点的计算。用显式公式作预测,梯形公式作校正,得到如下预次就转入下一点的
12、计算。用显式公式作预测,梯形公式作校正,得到如下预测校正系统,也称为改进尤拉法测校正系统,也称为改进尤拉法:改进欧拉法改进欧拉法/*modified Eulers method*/Step 1:先用先用显式显式欧拉公式作欧拉公式作预测预测,算出,算出),(1nnnnyxfhyy+=+Step 2:再将再将 代入代入隐式隐式梯形公式的右边作梯形公式的右边作校正校正,得到,得到1+ny),(),(2111+=nnnnnnyxfyxfhyy1 Eulers Method注:注:此法亦称为此法亦称为预测预测-校正法校正法/*predictor-corrector method*/。可以证明该算法具有可
13、以证明该算法具有 2 阶精度,同时可以看到它是个阶精度,同时可以看到它是个单单步步递推格式,比隐式公式的迭代求解过程递推格式,比隐式公式的迭代求解过程简单简单。后面将。后面将看到,它的看到,它的稳定性高稳定性高于显式欧拉法。于显式欧拉法。1 Eulers Method其它形式其它形式几何解释几何解释xnxn+1ABPn+1=(A+B)/2尤拉法尤拉法后退尤拉法后退尤拉法梯形法梯形法1 Eulers Method令令x=x1,得得Another point of view对右端积分采用左矩形、右矩形、梯形积分公式,即对右端积分采用左矩形、右矩形、梯形积分公式,即可得尤拉显式、隐式、梯形公式可得尤
14、拉显式、隐式、梯形公式1 Eulers Method 中点欧拉公式中点欧拉公式/*midpoint formula*/中心差商近似导数中心差商近似导数x0 x2x1假设假设 ,则可以导出,则可以导出即中点公式也具有即中点公式也具有 2 阶精度,且是显式的。阶精度,且是显式的。需要需要2个初值个初值 y0和和 y1来启动递推来启动递推过程,这样的算法称为过程,这样的算法称为双步法双步法/*double-step method*/,而前面的三种算法都是,而前面的三种算法都是单步法单步法/*single-step method*/。1 Eulers Method几何解释几何解释xnxn+1尤拉法尤拉
15、法后退尤拉法后退尤拉法中点法中点法xn-1令令x=x2,得得Another point of view对右端积分采用中矩形公式即得中点公式对右端积分采用中矩形公式即得中点公式1 Eulers Method 预测预测-校正校正-改进系统改进系统中点法具有二阶精度,且是显式的,与梯形公式精度相匹配,用中点公式作中点法具有二阶精度,且是显式的,与梯形公式精度相匹配,用中点公式作预测,梯形公式作校正,得到如下预测校正系统预测,梯形公式作校正,得到如下预测校正系统:校正误差约为预测误校正误差约为预测误差的差的1/41 Eulers Method预测误差和校正误差预测误差和校正误差的事后误差估计式的事后误
16、差估计式利用上两式可以估计预测值和校正值与准确值的误差,可以利用上两式可以估计预测值和校正值与准确值的误差,可以期望,利用这两个误差分别作预测值和校正值的补偿,有可期望,利用这两个误差分别作预测值和校正值的补偿,有可能提高精度。能提高精度。设设pn,cn分别为第分别为第n步的预测值和校正值,即步的预测值和校正值,即此时此时cn+1未知,未知,故用故用pn-cn代替代替1 Eulers Method 预测预测-校正校正-改进公式改进公式注:利用该算法计算注:利用该算法计算yn+1时,需要时,需要1 Eulers Method公式公式局部截断误差局部截断误差精精度度显显隐隐稳稳定定性性步数步数尤拉
17、显尤拉显式公式式公式1 1阶阶显显差差单步单步尤拉隐尤拉隐式公式式公式1 1阶阶隐隐好好单步单步梯形公梯形公式式2 2阶阶隐隐差差单步单步中点法中点法2 2阶阶显显好好二步二步summary两个预测两个预测-校正系校正系统统尤拉两步法和梯形公式构尤拉两步法和梯形公式构成的预测成的预测-校正校正-改进系统改进系统尤拉公式和梯形公式构成尤拉公式和梯形公式构成的预测的预测-校正系统校正系统例例 HW:p.201#1-5证明中点法和梯形公式的精度为证明中点法和梯形公式的精度为2阶阶2 龙格龙格-库塔法库塔法/*Runge-Kutta Method*/建立高精度的单步递推格式建立高精度的单步递推格式:在
18、改进尤拉法和尤拉在改进尤拉法和尤拉两步法预测两步法预测-校正系统中校正系统中,预测公式都是单步法预测公式都是单步法,如果预如果预测误差很小测误差很小,则通过校正后得到的近似值误差会更小则通过校正后得到的近似值误差会更小,因因此需要研究高精度的单步法此需要研究高精度的单步法.1.Taylor级数法级数法IVP:设其解为设其解为y=y(x)由由Taylor展开,有展开,有(1)2 Runge-Kutta Method(2)2 Runge-Kutta Method要使公式具有要使公式具有p阶精度,则在阶精度,则在(1)式中截取前式中截取前p+1项,项,用用(2)式计算各阶导数,即得下面式计算各阶导数
19、,即得下面Taylor公式:公式:局部截断误差局部截断误差(3)2 Runge-Kutta Method2.Taylor公式公式(3)表面上看形式简单,但具体构造时表面上看形式简单,但具体构造时往往很困难,因为按往往很困难,因为按(2)式求导,这一过程可能很式求导,这一过程可能很复杂。因此通常不直接用复杂。因此通常不直接用Taylor公式,而借鉴其思公式,而借鉴其思想提出其它公式。想提出其它公式。1.由此看出,一种方法具有由此看出,一种方法具有p阶精度阶精度公式对不超公式对不超过过p次的多项式准确成立(局部截断误差为次的多项式准确成立(局部截断误差为0)。)。这一等价条件也可以用来判断一种方法
20、的精度。这一等价条件也可以用来判断一种方法的精度。2 Runge-Kutta Method单步递推法的单步递推法的基本思想基本思想是从是从(xn,yn)点出发,以点出发,以某一某一斜率斜率沿直线达到沿直线达到(xn+1,yn+1)点。欧拉法及其各种变形点。欧拉法及其各种变形所能达到的最高精度为所能达到的最高精度为2阶阶。2.RungeKutta Method由微分中值定理,有由微分中值定理,有k*称为区间称为区间xn,xn+1上的上的平均斜率平均斜率,只要知道平均,只要知道平均斜率,就可计算斜率,就可计算y(xn+1).因此只要对平均斜率提供一因此只要对平均斜率提供一种近似算法,则由种近似算法
21、,则由(4)式可导出一种相应的求解公式。式可导出一种相应的求解公式。(4)2 Runge-Kutta Method例例2 Runge-Kutta Method 由此看出,改进的尤拉公式用由此看出,改进的尤拉公式用xn与与xn+1两个节点两个节点的斜率的算术平均作为平均斜率,的斜率的算术平均作为平均斜率,xn+1点的斜率通点的斜率通过已知信息过已知信息yn来预测。来预测。考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写为:斜率斜率一定取一定取K1,K2 的的平均值平均值吗?吗?步长一定是步长一定是h 吗?即吗?即第二个节点一定是第二个节点一定是xn+1吗?吗?2 Runge-Ku
22、tta Method2 Runge-Kutta Method首先希望能确定系数首先希望能确定系数 1、2、p,使得到的算法格式有,使得到的算法格式有2阶阶精度,即在精度,即在 的前提假设下,使得的前提假设下,使得 Step 1:将将 K2 在在(xi,yi)点作点作 Taylor 展开展开将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKyphxfKyxfKKKhyyiiiiii+=+=+Step 2:将将 K2 代入第代入第1式,得到式,得到 2阶阶RungeKutta Method2 Runge-Kutta MethodStep 3:将将 yi+1 与与 y(xi+
23、1)在在 xi 点的点的泰勒泰勒展开作比较展开作比较要求要求 ,则必须有:,则必须有:这里有这里有 个未知个未知数,数,个方程。个方程。32存在存在无穷多个解无穷多个解。所有满足上式的格式统称为。所有满足上式的格式统称为2阶龙格阶龙格-库库塔格式塔格式。注意到,注意到,就是改进的欧拉法;就是改进的欧拉法;p=1/2,1=0,2=1,变形尤拉公式变形尤拉公式。Q:为获得更高的精度,应该如何进一步推广?为获得更高的精度,应该如何进一步推广?改进的改进的Euler 公式推广为二阶公式推广为二阶Runge-Kutta公式公式带来这样的启示:带来这样的启示:若在若在xn,xn+1上多预测几个点的斜率值,
24、然后将上多预测几个点的斜率值,然后将它们的算术平均作为平均斜率,则有可能构造出它们的算术平均作为平均斜率,则有可能构造出具有更高精度的计算公式。具有更高精度的计算公式。-Runge-Kutta方法的基本思想。方法的基本思想。注:二阶注:二阶Runge-Kutta公式用多算一次函数值公式用多算一次函数值f 的的办法避开了二阶办法避开了二阶Taylor级数法所要计算的级数法所要计算的f 的导数。的导数。在这种意义上,可以说在这种意义上,可以说Runge-Kutta方法实质上是方法实质上是Taylor级数法的变形。级数法的变形。2 Runge-Kutta Method其中其中 i (i=1,m),i
25、 (i=2,m)和和 ij(i=2,m;j=1,i 1)均为待定系数,均为待定系数,确定这些系数的步骤与前面相似。确定这些系数的步骤与前面相似。2 Runge-Kutta Method).,(.),(),(),(.1122112321313312122122111 +=+=+=+=mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyy 高阶高阶RungeKutta Method Gill公式:公式:4阶经典龙格阶经典龙格-库塔公式的一种改进库塔公式的一种改进2 Runge-Kutta Method 最常用为四级最常用为四级4阶阶经典龙格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 数值 解法 IV

限制150内