《数值分析-05常微分方程数值解ppt课件.ppt》由会员分享,可在线阅读,更多相关《数值分析-05常微分方程数值解ppt课件.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么(Numerical Methods for Ordinary Differential Equations)在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么常微分方程分为常微分方程分为(1 1)初值问题)初值问题 (2 2)边值问题)边值问题一一、初值问题的数值解法初值问题的数值解法1 1 引引 言言一阶常微分方程初值问题的一般形式是一阶常微分方程初值问题的一般形式是:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在
2、浪费,也许你认为浪费这一点点算不了什么称称 在区域在区域D上对上对 满足满足Lipschitz条件条件是指是指:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么二、初值问题解的存在性二、初值问题解的存在性 考虑一阶常微分方程的初值问题考虑一阶常微分方程的初值问题/*Initial-Value Problem*/:则上述则上述IVP存在唯一解。存在唯一解。只要只要 在在 上连续上连续,且关于且关于 y 满足满足 Lipschitz 条件,条件,即存在与即存在与 无关的常数无关的常数 L 使使对任意定义在对任意定义在 上的上的 都成立,都成立
3、,在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么要计算出解函数要计算出解函数 y(x)在一系列节点在一系列节点 a=x0 x1 xn=b 处的近似值处的近似值 采用离散化方法。采用离散化方法。称节点间距称节点间距 为步长,为步长,通常采用通常采用等距节点等距节点,即取,即取 hi=h(常数常数)。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么三三、初值问题的离散化方法初值问题的离散化方法 离散化方法的基本特点是依照某一递推公式,离散化方法的基本特点是依照某一递推公式,值值 ,取取
4、 。按节点从左至右的顺序依次求出按节点从左至右的顺序依次求出 的近似的近似 如果计算如果计算 ,只用到前一步的值,只用到前一步的值 ,则称这则称这类方法为类方法为单步方法单步方法。如果计算如果计算 需用到前需用到前r步的值步的值 ,则称这类方法为则称这类方法为r步方法步方法。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么2 2 欧拉方法欧拉方法 /*Eulers Method*/*Eulers Method*/欧拉公式欧拉公式(单步显示公式):单步显示公式):向前差商近似导数向前差商近似导数记为记为x0 x1在日常生活中,随处都可以看到
5、浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么亦称为亦称为欧拉折线法欧拉折线法/*Eulers polygonal arc method*/在在假假设设 yi=y(xi),即即第第 i 步步计计算算是是精精确确的的前前提提下下,考考虑虑的的截截断断误误差差 Ri=y(xi+1)yi+1 称称为为局局部部截截断断误差误差/*local truncation error*/。若若某某算算法法的的局局部部截截断断误误差差为为O(hp+1),则则称称该该 算法有算法有p 阶精度。阶精度。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费
6、这一点点算不了什么 欧拉法的局部截断误差:欧拉法的局部截断误差:Ri 的的主项主项/*leading term*/欧拉法具有欧拉法具有 1 阶精度。阶精度。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么例例1:1:用欧拉公式求解初值问题用欧拉公式求解初值问题取步长取步长 。解解:应用应用EulerEuler公式于题给初值问题的具体形式为:公式于题给初值问题的具体形式为:其中其中 。计算结果列于下表:计算结果列于下表:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 在日常生活中,随
7、处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么可用来检验近似解的准确程度。可用来检验近似解的准确程度。进行计算,数值解已达到了一定的精度。进行计算,数值解已达到了一定的精度。这个初值问题的准确解为这个初值问题的准确解为 ,从上表最后一列,我们看到取步长从上表最后一列,我们看到取步长在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 欧拉公式的改进:欧拉公式的改进:隐式欧拉法隐式欧拉法/*implicit Euler method*/向后差商近似导数向后差商近似导数x0 x1)(,()(1101xyx
8、fhyxy+在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么由于未知数由于未知数 yi+1 同时出现在等式的两边,不能直接同时出现在等式的两边,不能直接得到,故称为得到,故称为隐式隐式/*implicit*/欧拉公式,而前者欧拉公式,而前者称为称为显式显式/*explicit*/欧拉公式。欧拉公式。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么一般先用显式计算一个初值,再一般先用显式计算一个初值,再迭代迭代求解。求解。隐式隐式欧拉法的局部截断误差:欧拉法的局部截断误差:即隐式欧拉公
9、式具有即隐式欧拉公式具有 1 阶精度。阶精度。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 梯形公式梯形公式 /*trapezoid formula*/*trapezoid formula*/显、隐式两种算法的显、隐式两种算法的平均平均注:注:的确有局部截断误差的确有局部截断误差 ,即梯形公式即梯形公式具有具有2 阶精度阶精度,比欧拉方法有了进步。,比欧拉方法有了进步。但注意到该公式是但注意到该公式是隐式公式隐式公式,计算时不得不用到,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。迭代法,其迭代收敛性与欧拉公式相似。在日常生活中
10、,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 中点欧拉公式中点欧拉公式/*midpoint formula*/中心差商近似导数中心差商近似导数x0 x2x1假设假设 ,则可以导出则可以导出即中点公式具有即中点公式具有 2 阶精度。阶精度。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么方方 法法 显式欧拉显式欧拉隐式欧拉隐式欧拉梯形公式梯形公式中点公式中点公式简单简单精度低精度低稳定性最好稳定性最好精度低精度低,计算量大计算量大精度提高精度提高计算量大计算量大精度提高精度提高,显式显式多一个
11、初值多一个初值,可能影响精度可能影响精度 Cant you give me a formula with all the advantages yet without any of the disadvantages?Do you think it possible?Well,call me greedy OK,lets make it possible.在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 改进欧拉法改进欧拉法/*modified Eulers method*/Step 1:先用显式欧拉公式作预测,算出先用显式欧拉公式作预测
12、,算出Step 2:再将再将 代入代入隐式隐式梯形公式的右边作梯形公式的右边作校正校正,得到,得到1+iy在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么注注:此法亦称为此法亦称为预测预测-校正法校正法 /*predictor-corrector method*/*predictor-corrector method*/可以证明该算法可以证明该算法具有具有 2 阶精度阶精度,同时可以看到它,同时可以看到它是个是个单步单步递推格式,比隐式公式的迭代求解过程递推格式,比隐式公式的迭代求解过程简单简单。后面将看到,它的。后面将看到,它的稳定性高
13、于稳定性高于显式欧拉法。显式欧拉法。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么在实际计算时,可将欧拉法与梯形法则相结合,在实际计算时,可将欧拉法与梯形法则相结合,计算公式为计算公式为 应用改进欧拉法应用改进欧拉法,如果序列如果序列 收敛收敛,它的极限便满足方程它的极限便满足方程在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么因此,改进欧拉法公式具有因此,改进欧拉法公式具有 2 2 阶精度阶精度在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费
14、这一点点算不了什么例例2:2:用改进用改进Euler公式求解例公式求解例1中的初值问题,中的初值问题,取步长取步长 。解:解:对此初值问题采用改进对此初值问题采用改进EulerEuler公式,公式,其具体形式为其具体形式为计算结果列于下表:计算结果列于下表:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么改进的改进的Euler法法Euler法法在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么通过计算结果得比较可以看出,改进的通过计算结果得比较可以看出,改进的Euler方法方法的计算精
15、度比的计算精度比Euler方法要高。方法要高。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么3 3 龙格龙格 -库塔法库塔法 /*/*Runge-KuttaRunge-Kutta Method*/Method*/建立高精度的单步递推格式。建立高精度的单步递推格式。单步递推法的单步递推法的基本思想基本思想是从是从(xi,yi)点出发,点出发,欧拉法及其各种变形所能达到的最高精度为欧拉法及其各种变形所能达到的最高精度为2 2阶。阶。以以某一斜率某一斜率沿直线达到沿直线达到 点。点。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到
16、自己在浪费,也许你认为浪费这一点点算不了什么 考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写为:斜率斜率一定取一定取K1 K2 的的平均值平均值吗?吗?步长一定是一个步长一定是一个h 吗吗?在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKyphxfKyxfKKKhyyiiiiii+=+=+首先希望能确定系数首先希望能确定系数 1、2、p,使得到的算法格,使得到的算法格式有式有2阶精度,即在阶精度,即在 的前提假设下,使得的前提假设下,使得 Step
17、 1:将将 K2 在在(xi,yi)点作点作 Taylor 展开展开在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么Step 2:将将 K2 代入第代入第1式,得到式,得到Step 3:将将 yi+1 与与 y(xi+1)在在 xi 点的点的泰勒泰勒展开作比较展开作比较在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么要求要求 ,则必须有:,则必须有:这里有这里有 个未知个未知数,数,个方程。个方程。32存在存在无穷多个解无穷多个解。所有满足上式的格式统称为。所有满足上式的格式统称为2
18、阶阶龙格龙格-库塔格式库塔格式。注意到,注意到,就是改进的欧拉法。就是改进的欧拉法。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 为获得更高的精度,应该如何进一步推广?为获得更高的精度,应该如何进一步推广?).,(.),(),(),(.1122112321313312122122111 +=+=+=+=mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyy 其中其中 i (i=1,m),i (i=2,m)和和 ij(i=2,m;j=1,i 1)均为待定系数,确定这些均为待定系数
19、,确定这些系数的步骤与前面相似。系数的步骤与前面相似。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么v考虑一阶常微分方程初值问题考虑一阶常微分方程初值问题在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么将区域将区域a,ba,b进行分划:进行分划:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 若若在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么则则在日常生活中,随处都可
20、以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么n n级显式级显式Runge-KuttaRunge-Kutta方法方法在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么二阶二阶Runge-KuttaRunge-Kutta方法方法取取n=2n=2记记在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么由此得由此得在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么另一方面另一方面为使局部截断误差为为使局部截
21、断误差为 ,应取应取在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么改进的改进的EulerEuler方法方法v取取在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么中点方法中点方法取取 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么二阶二阶HeunHeun方法方法取取 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么二级二级Runge-KuttaRunge-Kutta方法不
22、超过二阶方法不超过二阶v记记则则在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么因此局部截断误差只能达到因此局部截断误差只能达到在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么三级三级Runge-KuttaRunge-Kutta方法方法取取n=3n=3在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么记记在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么在日常生活中,随处都可以
23、看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么v又由于又由于在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么因此要使局部截断误差为因此要使局部截断误差为 ,必须,必须 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么KuttaKutta方法方法取取在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么三阶三阶HeunHeun方法方法v取取在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己
24、在浪费,也许你认为浪费这一点点算不了什么三级三级Runge-KuttaRunge-Kutta方法不超过三阶方法不超过三阶v完全类似于二级完全类似于二级Runge-KuttaRunge-Kutta方法的分析方法的分析只能达到只能达到三级三级Runge-KuttaRunge-Kutta方法的局部截断误差方法的局部截断误差将将 和和 都展开到都展开到 项项,易证易证在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 四级四级R-KR-K方法方法取取n=4n=4在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这
25、一点点算不了什么在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么局部截断误差为O(h5)最常用为四级最常用为四级4阶阶经典龙格经典龙格-库塔法库塔法 /*Classical Runge-Kutta Method*/:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么附注:附注:二阶二阶Runge-KuttaRunge-Kutta方法的局部截断误差方法的局部截断误差 只能达到只能达到 五阶五阶Runge-KuttaRunge-Kutta方法的局部截断误差方法的局部截断误差 只能达到只能达
26、到 四阶四阶Runge-KuttaRunge-Kutta方法的局部截断误差方法的局部截断误差 只能达到只能达到 三阶三阶Runge-KuttaRunge-Kutta方法的局部截断误差方法的局部截断误差 只能达到只能达到 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么注:注:龙格龙格-库塔法的主要运算在于计算库塔法的主要运算在于计算 的值,即的值,即计算计算 的值。的值。Butcher 于于1965年给出了计算量与年给出了计算量与可达到的最高精度阶数的关系:可达到的最高精度阶数的关系:753可达到的最高精度可达到的最高精度642每步须算每
27、步须算Ki 的个数的个数 由于龙格由于龙格-库塔法的导出基于泰勒展开,故精库塔法的导出基于泰勒展开,故精太好的解,最好采用太好的解,最好采用低阶算法低阶算法而将步长而将步长h 取小取小。度主要受解函数的光滑性影响。对于光滑性不度主要受解函数的光滑性影响。对于光滑性不在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么4 4 单步方法的收敛性与稳定性单步方法的收敛性与稳定性 /*/*Convergency and StabilityConvergency and Stability*/*/收敛性收敛性/*Convergency*/若若某某算算法
28、法对对于于任任意意固固定定的的 x=xi=x0+i h,当当 h0(同同时时 i )时时有有 yi y(xi),则则称称该该算算法法是是收敛收敛的。的。例:例:就初值问题就初值问题 考察欧拉显式格式的收敛考察欧拉显式格式的收敛性。性。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么解:解:该问题的精确解为该问题的精确解为 欧拉公式为欧拉公式为对任意固定的对任意固定的 x=xi=i h,有,有 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么 稳定性稳定性/*Stability*/例:
29、例:考察初值问题考察初值问题 在区间在区间0,0.5上的上的解解.分别用欧拉显、隐式格式和改进的欧拉格式计分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。算数值解。0.00.10.20.30.40.5精确解精确解改进欧拉法改进欧拉法 欧拉隐式欧拉隐式欧拉显式欧拉显式 节点节点 xi 1.0000 2.0000 4.0000 8.0000 1.6000 101 3.2000 101 1.00002.5000 10 1 6.2500 10 21.5625 10 23.9063 10 39.7656 10 41.00002.50006.25001.5626 1013.9063 1019.7656
30、1011.00004.9787 10 22.4788 10 31.2341 10 46.1442 10 63.0590 10 7What is wrong?!An Engineer complains:Math theorems are so unstable that a small perturbation on the conditions will cause a crash on the conclusions!在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么若若某某算算法法在在计计算算过过程程中中任任一一步步产产生生的的误误差
31、差在在以以后后的的计计算算中中都都逐逐步步衰衰减减,则则称称该该算算法法是是绝绝对对稳稳定定的的/*absolutely stable*/。一般分析时为简单起见,只考虑一般分析时为简单起见,只考虑试验方程试验方程/*test equation*/常数,可以常数,可以是复数是复数在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么我们称我们称算法算法A 比算法比算法B 稳定稳定,就是指,就是指 A 的绝对稳定的绝对稳定区域比区域比 B 的的大大。当步长取为当步长取为 h 时,将某算法应用于上式,并假设只在时,将某算法应用于上式,并假设只在初值产
32、生误差初值产生误差 ,则若此误差以后逐步衰减,则若此误差以后逐步衰减,就称该算法相对于就称该算法相对于 绝对稳定,绝对稳定,的全体构成的全体构成h h=h绝对稳定区域绝对稳定区域。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么例:例:考察显式欧拉法考察显式欧拉法0-1-2ReImg由此可见,要保证初始误差由此可见,要保证初始误差 0 以后逐步衰减,以后逐步衰减,必须满足:必须满足:在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么例:例:考察隐式欧拉法考察隐式欧拉法可见绝对稳定区域为
33、:可见绝对稳定区域为:210ReImg注:注:一般来说,隐式欧拉法的绝对稳定性比同阶一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。的显式法的好。在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么例:例:隐式龙格隐式龙格-库塔法库塔法其中其中2阶方法阶方法 的绝对稳定的绝对稳定区域为区域为0ReImg无条件稳定无条件稳定在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么而而显式显式 1 4 阶方法的绝对稳定区域为阶方法的绝对稳定区域为k=1k=2k=3k=4-1-2-3-123ReImg