资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,常微分方程初值问题的数值解法,第,7,章,引言,在实际问题中,常需要求解微分方程,(,如发电机转子运动方程,),。,只有简单的和典型的微分方程可以求出解析解,而在实际问题中的微分方程往往无法求出解析解。,常微分方程:,-(1),-(2),一阶常微分方程,-(3),(1),(2),式称为,初值问题,(,3),式称为,边值问题,-(4),另外,在实际应用中还经常需要求解常微分方程组,:,本课程主要研究问题,一阶常微分方程,(1),的数值解法,我们首先介绍初值问题,(1),的解存在的条件,定理,只要,f,(,x,y,),连续,且关于,y,满足,Lipschitz,条件,,即存在与,x,y,无关的常数,L,使,对任意定义在,a,b,上的,y,1,(,x,),和,y,2,(,x,),都成立,则初值问题(,1,),存在唯一解,。,(通常采用,等距节点),对于问题,(1),要求它的,数值解,常微分方程数值解公式的推导,求初值问题数值解的方法是,步进法,,即从已知的初值,y,0,出发,通过,一定的计算,求,y,1,,然后由,y,1,或,y,0,和,y,1,求出,y,2,,依次计算到,y,n,,即在计算出,y,k,后计算,y,k+1,,这时有,单步法,:计算,y,k+1,时,只利用,y,k,多步法,:计算,y,k+1,时,用到,y,k,y,k-1,y,k-2,常微分方程数值解公式的主要推导方法,泰勒展开,利用差商,利用数值积分法,1,、泰勒展开的求解思路,:,将 按泰勒级数展开,用 的近似值 代入上式右端,记所得结果为,,则得到数值解序列的计算公式,:,2,、化导数为差商的求解方法思路:,若在点 处的导数用差商来近似代替,如向前差商,则微分方程初值问题化为,将近似号改为等号,精确解,改为近似解 ,得,3,、数值积分的求解思路,:,如果将微分方程 在各小区间 上对其两边进行积分,即,如用矩形数值积分公式可得:,以上三种方法推导出同一个数值求解公式,:,这个数值公式称为,欧拉,(Euler),公式。,7.1,欧拉方法,一、,欧拉格式:,x,0,x,1,向前差商近似导数,记为,欧拉公式几何意义,用一条通过初始点的折线近似表示解曲线,亦称为,欧拉折线法,,,或称为,矩形法。,一般形式,1,、显式欧拉公式,在假设,y,k,=,y,(,x,k,),,即第,k,步计算是精确的前提下,考虑的截断误差,R,k,=,y,(,x,k,+1,),y,k,+1,称为,局部截断误差,。,定义,若某算法的局部截断误差为,O,(,h,p,+1,),,则称该算法有,p,阶精度。,定义,欧拉法的局部截断误差:,欧拉法具有,1,阶精度。,局部截断误差和阶数,2,、隐式欧拉格式,向后差商近似导数,x,0,x,1,),),(,(,),(,1,1,0,1,x,y,x,f,h,y,x,y,+,),1,.,0,(,),(,1,1,1,-,=,+,=,+,+,+,n,k,y,x,f,h,y,y,k,i,i,k,由于未知数,y,k,+1,同时出现在等式的两边,不能直接得到,故称为,隐式,欧拉公式,而前者称为,显式,欧拉公式。,一般先用显式计算一个初值,再,迭代,求解。,隐式,欧拉法的局部截断误差:,即隐式欧拉公式具有,1,阶精度。,二、两步欧拉格式(中点公式),中心差商近似导数,x,0,x,2,x,1,假设,则可以导出,即两步欧拉格式具有,2,阶精度。,该方法需要,2,个初值,y,0,和,y,1,来启动递推过程,这样的算法称为,双步法,。,三、,梯形公式,显、隐式两种算法的,平均,注:,有局部截断误差 ,,即梯形公式具有,2,阶精度,比欧拉方法有了进步。但注意到该公式是,隐式,公式,计算时不得不用到,迭代法,,不易求解。,对欧拉法进行改进,用梯形公式计算右侧积分,即,计算公式,梯形格式算法计算步骤:,先用,(1),式计算出 处 。,再用,(2),式反复进行迭代,得到,计算公式,-(1),-(2),类似地得到,用 控制迭代次数,为允许误差。把满足误差要求的 作为 的近似值。,四、,改进欧拉法(预报,-,校正法),Step 1,:,先用,显式,欧拉公式作,预报,,算出,),(,1,i,i,i,i,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,它可表示为嵌套形式,表示为平均化形式,此法称为,预报,-,校正法,,是,显式算法,。,注:,可以证明该算法具有,2,阶精度,同时可以看到它是个,单步,递推格式(只迭代一次),,比隐式梯形公式的迭代求解过程,简单,。,脚标用,i,方 法,显式欧拉法,隐式欧拉法,梯形公式,中点公式,简单,精度低,稳定性最好,精度低,计算量大,精度提高,计算量大,精度提高,显式,多一个初值,可能影响精度,不同方法比较,举例:,x,Euler,法,y,改进的,Euler,法,y,精确解,0,1.000000,1.000000,1.000000,0.1,1.000000,1.095909,1.095445,0.2,1.191818,1.184097,1.183216,0.3,1.277438,1.266201,1.264911,0.4,1.358213,1.343360,1.341641,0.5,1.435133,1.416402,1.414214,0.6,1.508966,1.485956,1.483240,0.7,1.580338,1.552514,1.549193,0.8,1.649783,1.616475,1.612452,0.9,1.717779,1.678166,1.673320,1.0,1.784770,1.737867,1.732051,欧拉方法的几何意义,x,0,x,1,x,4,x,2,x,3,y,1,y,0,y,2,y,3,y,4,7.2,龙格,-,库塔法,一、,泰勒级数法,龙格,库塔,(,Runge-Kut,ta,),法,(,简称为,R-K,方法,),是一类高精度的一步法,这类方法与泰勒级数法有着密 切的关系。,设有初值问题,由 泰勒展开式,从理论上讲,只要解,y(x,),有任意阶导数,泰勒展开方法就可以构造,任意阶,求,y,k+1,公式。但由于计算这些导数是非常复杂的,所以这种方法实际上不能用来解初值问题。,设有初值问题,二、,龙格库塔法的基本思路,等价于:,(积分中值定理),R-K,方法基本思想:,用 在几个不同点的加权平均值(线性组合)来代替准确的 的值,构造近似公式。再把近似公式与解的泰勒展开 式进行比较,使前面的若干项相同,从而使近似公式达到一定的阶数。,这样龙格库塔法保留了泰勒级数展开法的高阶局部截断误差,又避免了高阶导数的计算。,我们先分析欧拉法 与预估,校正法。,推广,这种单步法称为,Runge-Kutta,方法,简记为,R-K,公式,.,K,i,为某些点上的斜率,或,f(x,y,),在某些点上的值。,三、,二阶龙格,-,库塔法,目标,:,建立高精度的单步递推格式。,单步递推法的,基本思想,是从,(,x,i,y,i,),点出发,以,某一斜率,沿直线达到,(,x,i,+1,y,i,+1,),点。欧拉法及其各种变形所能达到的最高精度为,2,阶,。,考察改进的欧拉法,可以将其改写为:,斜率,一定取,K,1,K,2,的,平均值,吗?,步长一定是一个,h,吗?,脚标用,i,首先希望能确定系数,1,、,2,、,p,,使得到的算法格式有,2,阶精度,即在 的前提假设下,使得,Step 1,:,将,K,2,在,(,x,i,y,i,),点作,Taylor,展开,将改进欧拉法推广为:,),(,),(,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,代入,y,i+1,表达式,得到,Step 3,:,将,y,i,+1,与,y,(,x,i,+1,),在,x,i,点的,泰勒,展开作比较,要求 ,则必须有:,这里有 个未知数,个方程。,3,2,存在,无穷多个解,。所有满足上式的格式统称为,2,阶龙格,-,库塔格式,。,注意到,就是改进的欧拉法。,Q:,为获得更高的精度,应该如何进一步推广?,其中,i,(,i,=1,m,),,,i,(,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,最常用为四阶,经典龙格,-,库塔法,四阶经典龙格,-,库塔法公式,四、,四阶龙格,-,库塔法,用四个,f,函数值的线性组合得到四阶,龙格,-,库塔法,。,经典龙格,-,库塔法公式具有四阶精度,因此可取大步长。,注:,龙格,-,库塔法,的主要运算在于计算,K,i,的值,即计算,f,的值。,Butcher,于,1965,年给出了计算量与可达到的最高精度阶数的关系:,7,5,3,可达到的最高精度,6,4,2,每步须算,K,i,的个数,高于四阶时每步计算量增加较多,但精度提高不快,因此使用的比较少。,由于龙格,-,库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用,低阶算法,而将步长,h,取小,。,4,收敛性与稳定性,/*,Convergency,and Stability,*/,收敛性,/*,Convergency,*/,定义,若某算法对于任意固定的,x,=,x,i,=,x,0,+,i h,,当,h,0,(,同时,i,),时有,y,i,y,(,x,i,),,则称该算法是,收敛,的。,例:,就初值问题 考察欧拉显式格式的收敛性。,解:,该问题的精确解为,欧拉公式为,对任意固定的,x,=,x,i,=,i h,,有,稳定性,/*,Stability,*/,例:,考察初值问题 在区间,0,0.5,上的解。,分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。,0.0,0.1,0.2,0.3,0.4,0.5,精确解,改进欧拉法,欧拉隐式,欧拉显式,节点,x,i,1.0000,2.0000,4.0000,8.0000,1.6000,10,1,3.2000,10,1,1.0000,2.5000,10,1,6.2500,10,2,1.5625,10,2,3.9063,10,3,9.7656,10,4,1.0000,2.5000,6.2500,1.5626,10,1,3.9063,10,1,9.7656,10,1,1.0000,4.9787,10,2,2.4788,10,3,1.2341,10,4,6.1442,10,6,3.0590,10,7,定义,若某算法在计算过程中任一步产生的误差在以后的计算中都,逐步衰减,,则称该算法是,绝对稳定的,/*,absolutely stable,*/,。,一般分析时为简单起见,只考虑,试验方程,/*test equation*/,常数,可以是复数,当步长取为,h,时,将某算法应用于上式,并假设只在初值产生误差 ,则若此误差以后逐步衰减,就称该算法相对于,绝对稳定
展开阅读全文