数值分析方法第七章_第1页
数值分析方法第七章_第2页
数值分析方法第七章_第3页
数值分析方法第七章_第4页
数值分析方法第七章_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 考虑考虑一阶一阶常微分方程的常微分方程的初值问题初值问题 /* Initial-Value Problem */:00( ,) ()yfx yaxby xy 其中其中f (x, y)为为x, y的已知函数,的已知函数,y0为给定的初始值为给定的初始值 第六章第六章 常微分方程数值解常微分方程数值解/* Numerical Methods for Ordinary Differential Equations */例如:例如: , , ( ) 0101y =x+y xy其解析解为:其解析解为: 1 2xyxe 只有一些特殊类型的微分方程问题能够得到用解只有一些特殊类型的微分方程问题能够得到用解

2、析表达式表示的函数解,而大量的微分方程问题很难析表达式表示的函数解,而大量的微分方程问题很难得到其解析解。得到其解析解。这是微积分的发明者之一Leibniz在1686年曾经让当时数学界人士求解的一阶微分方程式,吸引了许多数学家的注意,大约经过150年的探索到1838年, 刘维尔(Liouville)在理论上证明了这个微分方程不能用初等积分法求解,得借助于数值方法dyxydx22 只能依赖于只能依赖于数值方法数值方法去获得微分方程的去获得微分方程的数值解数值解。 bxxxxan210iiixxh1nabh数值方法的基本思想是:在解的存在区间上取数值方法的基本思想是:在解的存在区间上取n + 1个

3、节点个节点这里这里hi可以不相等,但一般取成相等的,这时可以不相等,但一般取成相等的,这时在这些节点上采用离散化方法,(通常用数值积分、微分、在这些节点上采用离散化方法,(通常用数值积分、微分、泰勒展开等)将上述初值问题化成关于离散变量的相应问泰勒展开等)将上述初值问题化成关于离散变量的相应问题。把这个相应问题的解题。把这个相应问题的解yn作为作为y(xn)的近似值。这样求得的近似值。这样求得的的yn就是上述初值问题在节点就是上述初值问题在节点xn上的数值解。一般说来,上的数值解。一般说来,不同的离散化导致不同的方法。不同的离散化导致不同的方法。,i = 0,1, , n-1称为由称为由xi到

4、到xi+1的步长。的步长。步进式步进式:根据已知的或已求出的节点上的函数值计算当前节点根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。上的函数值,一步一步向前推进。因此只需建立由已知的或已求出的节点上的函数值求因此只需建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。当前节点函数值的递推公式即可。1 欧拉方法欧拉方法 /* Eulers Method */ 欧拉公式:欧拉公式:x0 x1向前差商近似导数向前差商近似导数hxyxyxy)()()(010 ),()()()(000001yxfhyxyhxyxy 1y记为记为)1,., 0(),(1 ni

5、yxfhyyiiii亦称为亦称为欧拉折线法欧拉折线法 /* Eulers polygonal arc method*/ 也称欧拉折线法欧拉折线法. .用这条折线近似地代替曲线( )y x( )yy xxynx1nxny1ny1ny x由Euler法所得的折线明显偏离了积分曲线,可见此方法非常粗糙。非常粗糙。例例 用欧拉法求初值问题当h = 0.02时在区间0, 0.1上的数值解。000.912()10yyxy xx 解解:把 代入欧拉法计算公式,得yxyxf219 . 0),(5, 1, 021018. 01219 . 01nyxyxhyynnnnnn具体计算结果nxnyny(xn)n = y

6、(xn) - yn001.00001.0000010.020.98200.98250.000520.040.96500.96600.000530.060.94890.95030.001440.080.93360.93540.001850.100.91920.9230.0021 表中y(xn),是初值问题的真解 在xn上的值。 为近似值yn的误差。 从表中可以看出,随着n的增大,误差也在增大,所以说,欧拉法计算简便,对一些问题有较大的使用价值,但是,它的误差较大,所得的数值解精确度不高。45. 0)21 ()(xxyn定义定义在假设在假设 yi = y(xi),即第,即第 i 步计算是精确的前提

7、下,考步计算是精确的前提下,考虑的截断误差虑的截断误差 Ri = y(xi+1) yi+1 称为称为局部截断误差局部截断误差 /* local truncation error */。定义定义若某算法的局部截断误差为若某算法的局部截断误差为O(hp+1),则称该算法有,则称该算法有p 阶精度。阶精度。 欧拉法的局部截断误差:欧拉法的局部截断误差:),()()()()()(32112iiiihiiiiiyxhfyhOxyxyhxyyxyR )()(322hOxyih 欧拉法具有欧拉法具有 1 阶精度。阶精度。Ri 的的主项主项/* leading term */衡量求解公式好坏的一个主要标准是求

8、解公式的精度衡量求解公式好坏的一个主要标准是求解公式的精度,因此引入局部截断误差和阶数的概念。因此引入局部截断误差和阶数的概念。Eulers Method 欧拉公式的改进:欧拉公式的改进: 隐式欧拉法隐式欧拉法 /* implicit Euler method */向后差商近似导数向后差商近似导数hxyxyxy)()()(011 x0 x1)(,()(1101xyxfhyxy )1,., 0(),(111 niyxfhyyiiii Eulers Method由于未知数由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故同时出现在等式的两边,不能直接得到,故称为称为隐式隐式 /* imp

9、licit */ 欧拉公式,欧拉公式,而前者称为而前者称为显式显式 /* explicit */ 欧拉公式。欧拉公式。一般先用显式计算一个初值,再一般先用显式计算一个初值,再迭代迭代求解。求解。 隐式隐式欧拉法的局部截断误差:欧拉法的局部截断误差:11)(iiiyxyR)()(322hOxyih 即隐式欧拉公式具有即隐式欧拉公式具有 1 阶精度。阶精度。 Hey! Isnt the leading term of the local truncation error of Eulers method ? Seems that we can make a good use of it )(22i

10、hxy Eulers Method 梯形公式梯形公式 /* trapezoid formula */ 显、隐式两种算法的显、隐式两种算法的平均平均)1,., 0(),(),(2111 niyxfyxfhyyiiiiii注:注:局部截断误差局部截断误差 即梯形公式具有即梯形公式具有2 阶精度,比欧拉方法有了进步。阶精度,比欧拉方法有了进步。但注意到该公式是但注意到该公式是隐式隐式公式,公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。)()(311hOyxyRiii例例 1)0(2yyxydxdy在区间在区间0, 1.5上上,取取h =

11、 0.1,求解。求解。 本题的精确解为,本题的精确解为, 可用来检验近似解可用来检验近似解xxy21)( 的精确程度。计算结果如下表:的精确程度。计算结果如下表: xn 欧拉法欧拉法yn迭代一次迭代一次梯形公式梯形公式yn准确解准确解01110.11.11.0959091.0954450.21.1918181.1840961.1832160.31.2774381.2602011.2649110.41.3582131.3433601.3416410.51.4351331.4161021.4142140.61.5089661.4829561.4832400.71.5803381.5525151.5

12、491930.81.6497831.6164761.6124520.91.7177791.6781681.6733201.01.7847701.7378691.7320511.11.851181.7958221.7888541.21.9174641.8522421.8439091.31.9840461.9073231.8973671.42.0514041.9612531.9493591.52.1200522.0142072.000000 中点欧拉公式中点欧拉公式 /* midpoint formula */中心差商近似导数中心差商近似导数hxyxyxy2)()()(021 x0 x2x1)(,

13、(2)()(1102xyxfhxyxy 1,., 1),(211 niyxfhyyiiii假设假设 ,则可以导出,则可以导出即中点公式具有即中点公式具有 2 阶精度。阶精度。)(),(11iiiixyyxyy )()(311hOyxyRiii 需要需要2个初值个初值 y0和和 y1来启动递推来启动递推过程,这样的算法称为过程,这样的算法称为双步法双步法 /* double-step method */,而前面的三种算法都是,而前面的三种算法都是单步法单步法 /* single-step method */。方方 法法 Eulers Method显式欧拉显式欧拉隐式欧拉隐式欧拉梯形公式梯形公式中

14、点公式中点公式简单简单精度低精度低稳定性最好稳定性最好精度低精度低, 计算量大计算量大精度提高精度提高计算量大计算量大精度提高精度提高, 显式显式多一个初值多一个初值, 可能影响精度可能影响精度 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 */

15、Step 1: 先用先用显式显式欧拉公式作欧拉公式作预测预测,算出,算出),(1iiiiyxfhyy Step 2: 再将再将 代入代入隐式隐式梯形公式的右边作梯形公式的右边作校正校正,得到,得到1 iy),(),(2111 iiiiiiyxfyxfhyy注:注:此法亦称为此法亦称为预测预测-校正法校正法 /* predictor-corrector method */。可以证明该算法具有可以证明该算法具有 2 阶精度,同时可以看到它是个阶精度,同时可以看到它是个单单步步递推格式,比隐式公式的迭代求解过程递推格式,比隐式公式的迭代求解过程简单简单。后面将。后面将看到,它的看到,它的稳定性高稳定

16、性高于显式欧拉法。于显式欧拉法。 )1,., 0(),(,),(211 niyxfhyxfyxfhyyiiiiiiii Eulers Method2 龙格龙格 - 库塔法库塔法 /* Runge-Kutta Method */建立高精度的单步递推格式。建立高精度的单步递推格式。单步递推法的单步递推法的基本思想基本思想是从是从 ( xi , yi ) 点出发,以点出发,以某一斜某一斜率率沿直线达到沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所点。欧拉法及其各种变形所能达到的最高精度为能达到的最高精度为2阶阶。 考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写

17、为:),(),(2121121211hKyhxfKyxfKKKhyyiiiiii 斜率斜率一定取一定取K1 K2 的的平均值平均值吗?吗?步长一定是一个步长一定是一个h 吗?吗?2 Runge-Kutta Method首先希望能确定系数首先希望能确定系数 1、 2、p,使得到的算法格式有,使得到的算法格式有2阶阶精度,即在精度,即在 的前提假设下,使得的前提假设下,使得 )(iixyy )()(311hOyxyRiii Step 1: 将将 K2 在在 ( xi , yi ) 点作点作 Taylor 展开展开)(),(),(),(),(2112hOyxfphKyxphfyxfphKyphxfK

18、iiyiixiiii )()()(2hOxyphxyii 将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKyphxfKyxfKKKhyyiiiiii ),(),(),(),(),(),()(yxfyxfyxfdxdyyxfyxfyxfdxdxyyxyx Step 2: 将将 K2 代入第代入第1式,得到式,得到 )()()()()()()()(322212211hOxyphxyhyhOxyphxyxyhyyiiiiiiii 2 Runge-Kutta MethodStep 3: 将将 yi+1 与与 y( xi+1 ) 在在 xi 点的点的泰勒泰勒展开作比较展开作比较)()()()(322211hOxyphxyhyyiiii )()(2)()()(321h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论