1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,常微分方程数值解,计算出解函数y(x)在一系列节点a=x0 x1 xn=b处近似值yi=y(xi)(i=1,2n),即数值解。,1 欧拉方法,(Eulers Method),欧拉公式:,向前差商近似导数,x,0,x,1,),),(,(,),(,0,0,0,1,x,y,x,f,h,y,x,y,+,),1,.,0,(,),(,1,-,=,+,=,+,n,i,y,x,f,h,y,y,i,i,i,i,1/14,求解过程顺着节点排列次序一步步向前推进,即按递推公式由已知,y,0,y,1,y,i,,,求出,y,i+
2、1,。,y,o,x,0,y(x),p,0,x,1,p,1,p,2,x,2,x,x,i,P,i+1,P,i,x,i+1,定义,在假设,y,i,=,y,(,x,i,),,即第,i,步计算是准确前提下,考虑截断误差,R,i,=,y,(,x,i,+1,),y,i,+1,称为,局部截断误差,定义,若某算法局部截断误差为,O,(,h,p,+1,),,则称该算法有,p,阶精度。,可见:(1,),每一步都会产生误差.,(2,),与前面每一步计算产生误差都相关,含有整体性,所以分析和确定它是很复杂。,欧拉公式求解基本思绪:,2/14,例:,用欧拉法解初值问题,取步长,h,=0.2.计算过程保留4位小数.,解:
3、f,(,x,y,)=,y,xy,2,,,h,=0.2,由欧拉公式得,故,y,(0.2),y,1,=0.21(401)0.800 0,y,(0.4),y,2,=0.20.8(40.20.8)0.614 4,y,(0.6),y,3,=0.20.614 4(40.40.4613)0.800 0,3/14,欧拉公式改进:,隐式欧拉法,/*implicit Euler method*/,向后差商近似导数,x,0,x,1,),),(,(,),(,1,1,0,1,x,y,x,f,h,y,x,y,+,),1,.,0,(,),(,1,1,1,-,=,+,=,+,+,+,n,i,y,x,f,h,y,y,i,i,
4、i,i,因为未知数,y,i,+1,同时出现在等式两边,不能直接得到,故称为,隐式,/*implicit*/,欧拉公式,而前者称为,显式,/*explicit*/,欧拉公式。,普通先用显式计算一个初值,再,迭代,求解。,隐式,欧拉法局部截断误差:,即隐式欧拉公式含有,1,阶精度。,4/14,梯形公式,/*trapezoid formula*/,显、隐式两种算法,平均,注:,确实有局部截断误差 ,,即梯形公式含有,2,阶精度,比欧拉方法有了进步。但注意到该公式是,隐式,公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相同。,中点欧拉公式,/*midpoint formula*/,中心差商近似导
5、数,x,0,x,2,x,1,假设 ,则能够导出,即中点公式含有,2,阶精度。,需要2个初值,y,0,和,y,1,来开启递推,过程,这么算法称为,双步法,/*double-step,method*/,,而前面三种算法都是,单步法,/*single-step method*/,。,5/14,方 法,显式欧拉,隐式欧拉,梯形公式,中点公式,简单,精度低,稳定性最好,精度低,计算量大,精度提升,计算量大,精度提升,显式,多一个初值,可能影响精度,6/14,改进欧拉法,/*modified Eulers method*/,Step 1,:,先用,显式,欧拉公式作,预测,,算出,),(,1,i,i,i,i
6、y,x,f,h,y,y,+,=,+,Step 2,:,再将 代入,隐式,梯形公式右边作,校正,,得到,1,+,i,y,),(,),(,2,1,1,1,+,+,+,+,+,=,i,i,i,i,i,i,y,x,f,y,x,f,h,y,y,注:,此法亦称为,预测-校正法,/*predictor-corrector method*/,。能够证实该算法含有,2,阶精度,同时能够看到它是个,单步,递推格式,比隐式公式迭代求解过程,简单,。后面将看到,它,稳定性高,于显式欧拉法。,7/14,例1:用预报校正公式求解初值问题,取步长,h,=0.2,计算,y,(1.2),y,(1.4)近似值,计算过程保,留5
7、位小数.,解:,8/14,9/14,2,龙格,-库塔法,/*,Runge-Kutta,Method*/,建立高精度单步递推格式。,单步递推法,基本思想,是从(,x,i,y,i,)点出发,以,某一斜率,沿直线到达(,x,i,+1,y,i,+1,)点。欧拉法及其各种变形所能到达最高精度为2阶,。,考查改进欧拉法,能够将其改写为:,斜率,一定取,K,1,K,2,平均值,吗?,步长一定是一个,h,吗?,10/14,首先希望能确定系数,1,、,2,、,p,,使得到算法格式有,2,阶精度,即在 前提假设下,使得,Step 1,:,将,K,2,在,(,x,i,y,i,),点作 Taylor 展开,将改进欧拉
8、法推广为:,),(,),(,1,2,1,2,2,1,1,1,p,hK,y,p,h,x,f,K,y,x,f,K,K,K,h,y,y,i,i,i,i,i,i,+,+,=,=,+,+,=,+,l,l,Step 2,:,将,K,2,代入第1式,得到,11/14,Step 3,:,将,y,i,+1,与,y,(,x,i,+1,)在,x,i,点,泰勒,展开作比较,要求 ,则必须有:,这里有 个未知数,个方程。,3,2,存在,无穷多个解,。全部满足上式格式统称为,2阶龙格,-,库塔格式,。,注意到,就是改进欧拉法。,Q:,为取得更高精度,应该怎样深入推广?,12/14,其中,i,(,i,=1,m,),,,i,
9、i,=2,m,),和,ij,(,i,=2,m,;,j,=1,i,1,),均为待定系数,确定这些系数步骤与前面相同。,),.,(,.,.,),(,),(,),(,.,1,1,2,2,1,1,2,32,1,31,3,3,1,21,2,2,1,2,2,1,1,1,-,-,+,+,+,+,+,+,=,+,+,+,=,+,+,=,=,+,+,+,+,=,m,m m,m,m,m,i,m,i,i,i,i,i,i,m,m,i,i,hK,hK,hK,y,h,x,f,K,hK,hK,y,h,x,f,K,hK,y,h,x,f,K,y,x,f,K,K,K,K,h,y,y,b,b,b,a,b,b,a,b,a,l,l,l,最惯用为四级4阶,经典龙格-,库塔法,/*,Classical Runge-Kutta Method,*/,:,13/14,注:,龙格-,库塔法,主要运算在于计算,K,i,值,即计算,f,值。Butcher 于1965年给出了计算量与可到达最高精度阶数关系:,7,5,3,可到达最高精度,6,4,2,每步须算,K,i,个数,因为龙格-,库塔法导出基于泰勒展开,故精度主要受解函数光滑性影响。对于光滑性不太好解,最好采取,低阶算法,而将步长,h,取小,。,14/14,






