1、常微分方程数值解法-欧拉法、改进欧拉法和四阶龙格库塔法常微分方程数值解法常微分方程数值解法 常微分方程主要有常微分方程主要有:(1)(1)变量可分离的方程变量可分离的方程 (2)(2)一阶线性微分方程一阶线性微分方程(贝努利方程贝努利方程)(3)(3)可降阶的一类高阶方程可降阶的一类高阶方程 (4)(4)二阶常系数齐次微分方程二阶常系数齐次微分方程 (5)(5)二阶常系数非齐次微分方程二阶常系数非齐次微分方程 (6)(6)全微分方程全微分方程常微分方程数值解法常微分方程数值解法l主要内容:l一、引引 言言l二、二、建立数值解法的常用方法建立数值解法的常用方法l三、三、EulerEuler方法方
2、法l四、四、几何意义几何意义l五、五、EulerEuler方法的误差估计方法的误差估计l六、六、改进欧拉法改进欧拉法l七、四阶龙格库塔法七、四阶龙格库塔法l七、程序设计要求七、程序设计要求主要内容主要内容 许多实际问题的数学模型是微分方程或微分许多实际问题的数学模型是微分方程或微分方程的定解问题方程的定解问题,如物体运动如物体运动,电路震荡电路震荡,化学反化学反映及生物群体的变化等映及生物群体的变化等.能用解析方法求出精确解的微分方程为数不能用解析方法求出精确解的微分方程为数不多多,而且有的方程即使有解析解而且有的方程即使有解析解,也可能由于解的也可能由于解的表达式非常复杂而不易计算表达式非常
3、复杂而不易计算,因此有必要研究微因此有必要研究微分方程的数值解法分方程的数值解法 一、引一、引 言言重点 研究一阶常微分方程的初值问题的数值解假定常微分方程数值解法常微分方程数值解法初值问题数值解的提法常微分方程数值解法常微分方程数值解法建立微分方程数值解法,首先要将微分方程离散化.一般采用以下几种方法:(1)用差商近似导数 二、建立数值解法的常用方法二、建立数值解法的常用方法(2)(2)用数值积分近似积分用数值积分近似积分实际上是矩形法实际上是矩形法宽宽高高常用方法常用方法(3)(3)用用TaylorTaylor多项式近似并可估计误差多项式近似并可估计误差常用方法常用方法用差商近似导数用差商
4、近似导数问题转化为问题转化为EulerEuler方法的迭代公式方法的迭代公式 三、三、EulerEuler方法方法令令EulerEuler方法方法 四、几何意义四、几何意义Y=y(x)ab几何意义几何意义五、Euler方法的误差估计为简化分析,先考虑计算一步所产生的误差,即假设为简化分析,先考虑计算一步所产生的误差,即假设是精确的,是精确的,估计误差估计误差这种误差称为这种误差称为局部截断误差局部截断误差。估计截断误差的主要方法是估计截断误差的主要方法是Taylor展开法,即将函数展开法,即将函数在在处展开:处展开:取一次取一次Taylor多项式近似函数,得多项式近似函数,得 得得Euler方
5、法的方法的局部截断误差公式局部截断误差公式为为 结论:结论:上式说明上式说明Euler公式公式的的局部截断误差局部截断误差为为它的精度很差。它的精度很差。一般很少用它来求近似值,但是一般很少用它来求近似值,但是Euler法法却体现了数值方法的基本思想。却体现了数值方法的基本思想。定义定义8.1 如果某种数值方法的局部截断误差为如果某种数值方法的局部截断误差为,则称该方法是,则称该方法是p阶方法或阶方法或具有具有p阶精度阶精度。显然。显然p越大,方法的越大,方法的精度越高。精度越高。注注:Euler方法具有一阶精度,因此它的精度不高。方法具有一阶精度,因此它的精度不高。六六改进的改进的Euler
6、Euler方法方法改进的改进的Euler方法方法利用数值积分将微分方程离散化利用数值积分将微分方程离散化得梯形公式得梯形公式:解决方法:有的可化为显格式,但有的不行解决方法:有的可化为显格式,但有的不行梯形方法为隐式算法梯形方法为隐式算法改进的改进的Euler方法方法梯形公式比欧拉法精度高一些梯形公式比欧拉法精度高一些,但计算量较大但计算量较大 实际计算中只迭代一次,这样建立的预测实际计算中只迭代一次,这样建立的预测校正系统称作校正系统称作改进的欧拉公式改进的欧拉公式。改进的改进的Euler方法方法2024/3/9 周周六六21改进的改进的Euler方法方法二、改进的Euler法 梯形方法虽然
7、提高了精度,但算法复杂,计算梯形方法虽然提高了精度,但算法复杂,计算量大。如果实际计算时精度要求不太高,用梯形公量大。如果实际计算时精度要求不太高,用梯形公式求解时,每步可以迭代一次,由此导出一种新的式求解时,每步可以迭代一次,由此导出一种新的方法方法改进改进Euler法法。这种方法实际上就是。这种方法实际上就是将将Euler公式与梯形公式结合使用公式与梯形公式结合使用:先用:先用Euler公式公式求求 的一个初步近似值的一个初步近似值,称为,称为预测值预测值,预测值,预测值 的精度可能很差,再用的精度可能很差,再用梯形公式校正梯形公式校正求得近似值求得近似值 即即 改进改进Euler法法 亦
8、称为由亦称为由Euler公式公式和和梯形公式梯形公式得到的得到的 预测校正预测校正(Predictor-Corrector)系统。系统。为便于上机编程,常改写成为便于上机编程,常改写成l改进改进EulerEuler方法计算框图方法计算框图开始开始Y YN N例例解解(1)用)用Euler方法方法得算式为得算式为 (2)用)用改进的改进的Euler方法方法得算式为得算式为 七、七、龙格龙格-库塔法库塔法/*Runge-Kutta Method*/建立高精度的单步递推格式。建立高精度的单步递推格式。单步递推法的基本思想是从单步递推法的基本思想是从(xi,yi)点出发,以某一点出发,以某一斜率沿直线
9、达到斜率沿直线达到(xi+1,yi+1)点。欧拉法及其各种变点。欧拉法及其各种变形所能达到的最高精度为形所能达到的最高精度为2阶阶。考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写为:斜率斜率一定取一定取K1 K2 的平均值吗?的平均值吗?步长一定是一个步长一定是一个h 吗吗?首先希望能确定系数首先希望能确定系数 1、2、p,使得到的算法格式有,使得到的算法格式有2阶阶精度,即在精度,即在 的前提假设下,使得的前提假设下,使得 Step 1:将将 K2 在在(xi,yi)点作点作 Taylor 展开展开将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKy
10、phxfKyxfKKKhyyiiiiii+=+=+Step 2:将将 K2 代入第代入第1式,得到式,得到Step 3:将将 yi+1 与与 y(xi+1)在在 xi 点的点的泰勒泰勒展开作比较展开作比较要求要求 ,则必须有:,则必须有:这里有这里有 个未知个未知数,数,个方程。个方程。32存在无穷多个解。所有满足上式的格式统称为存在无穷多个解。所有满足上式的格式统称为2阶龙格阶龙格-库库塔格式。塔格式。注意到,注意到,就是改进的欧拉法。就是改进的欧拉法。Q:为获得更高的精度,应该如何进一步推广?为获得更高的精度,应该如何进一步推广?其中其中 i (i=1,m),i (i=2,m)和和 ij(
11、i=2,m;j=1,i 1)均为待均为待定系数,确定这些系数定系数,确定这些系数的步骤与前面相似。的步骤与前面相似。).,(.),(),(),(.1122112321313312122122111 +=+=+=+=mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyy 最常用为四级最常用为四级4阶经典龙格阶经典龙格-库塔法库塔法/*Classical Runge-Kutta Method*/:2 Runge-Kutta Method注:注:龙格龙格-库塔法库塔法的主要运算在于计算的主要运算在于计算 Ki 的值,即计算的值,即计算 f 的
12、的值。值。Butcher 于于1965年给出了计算量与可达到的最高精年给出了计算量与可达到的最高精度阶数的关系:度阶数的关系:753可达到的最高精度可达到的最高精度642每步须算每步须算Ki Ki 的个数的个数 由于龙格由于龙格-库塔法的导出基于泰勒展开,故精度主要受库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长采用低阶算法而将步长h h 取小。取小。lRunge-KuttaRunge-Kutta方法的设计思想方法的设计思想设法在设法在xn,xn+1xn,xn+1区间内多预区间内多预报几个点
13、的斜率值,报几个点的斜率值,利用这些斜率值,将他们加利用这些斜率值,将他们加权平均作为平均斜率权平均作为平均斜率的近似,有可能构造出更高的近似,有可能构造出更高精度的计算格式精度的计算格式分别用欧拉法、改进欧拉法、四阶龙格库塔法及Dsolve方法求解并对比.八、程序设计要求八、程序设计要求12 解常微分方程的初值问题解常微分方程的初值问题用欧拉法求解分别取步长用欧拉法求解分别取步长h=0.1和和h=0.05。3要求取步长要求取步长h=0.2,计算,计算y(1.2)和和y(1.4)的近似值,小数的近似值,小数点后至少保留点后至少保留5位。位。45考察初值问题考察初值问题 在区间在区间0,0.5上的解。上的解。分别用欧拉改进的欧拉格式、四阶龙格库塔法计算数值解。分别用欧拉改进的欧拉格式、四阶龙格库塔法计算数值解。的数值解,并与精确解的数值解,并与精确解比较。比较。比较。比较。以以h=0.1h=0.1为步长求为步长求62024/3/9 周周六六42
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100