《常微分方程初值问题的数值解法》由会员分享,可在线阅读,更多相关《常微分方程初值问题的数值解法(10页珍藏版)》请在金锄头文库上搜索。
1、常微分方程初值问题的数值解法一阶常微分方程初值问题指的数值解法:11 欧拉法1)欧拉法根据导数的定义离散化之后,有:代入常微分方程,并构造迭代系列得:2)隐式欧拉法代入常微分方程,并构造迭代系列得:隐式欧拉法的求解: 利用迭代的思路进行.中点欧拉法、改进的欧拉法3)中点欧拉法代入常微分方程,并构造迭代系列得:4)改进的欧拉法欧拉法例题欧拉法例题在区间0,1上取步长h=0.2求解如下的常微分方程:解:按照欧拉法的计算公式,分别得到如下的函数值:建立高精度的单步递推格式。建立高精度的单步递推格式。单步递推法的单步递推法的基本思想基本思想是从是从 ( xi , yi ) 点出发,以点出发,以某一斜某
2、一斜率率沿直线达到沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所点。欧拉法及其各种变形所能达到的最高精度为能达到的最高精度为2阶阶。 考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写为:斜率斜率一定取一定取K1 K2 的的平均值平均值吗?吗?步长一定是一个步长一定是一个h 吗吗?2 2 龙格龙格龙格龙格 - - 库塔法库塔法库塔法库塔法 /* /* Runge-KuttaRunge-Kutta Method */ Method */2 Runge-Kutta Method首先希望能确定系数首先希望能确定系数 1、 2、p,使得到的算法格式有,使得到的算法格
3、式有2阶阶精度,即在精度,即在 的前提假设下,使得的前提假设下,使得 Step 1: 将将 K2 在在 ( xi , yi ) 点作点作 Taylor 展开展开将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKyphxfKyxfKKKhyyiiiiii+ + += = =+ + += =+ + Step 2: 将将 K2 代入第代入第1式,得到式,得到2 Runge-Kutta MethodStep 3: 将将 yi+1 与与 y( xi+1 ) 在在 xi 点的点的泰勒泰勒展开作比较展开作比较要求要求 ,则必须有:,则必须有:这里有这里有 个未知个未知数,数, 个方程
4、。个方程。32存在存在无穷多个解无穷多个解。所有满足上式的格式统称为。所有满足上式的格式统称为2阶龙格阶龙格 - 库库塔格式塔格式。注意到,注意到, 就是改进的欧拉法。就是改进的欧拉法。 Q: 为获得更高的精度,应该如何进一步推广?为获得更高的精度,应该如何进一步推广?其中其中 i ( i = 1, , m ), i ( i = 2, , m ) 和和 ij ( i = 2, , m; j = 1, , i 1 ) 均为待均为待定系数,确定这些系数定系数,确定这些系数的步骤与前面相似。的步骤与前面相似。 2 Runge-Kutta Method).,(.),(),(),(.1122112321313312122122111 + + + + + + += =+ + + += =+ + += = =+ + + + += =mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyy 最常用为四级最常用为四级4阶阶经典龙格经典龙格-库塔法库塔法 /* Classical Runge-Kutta Method */ :R-K例题例题用R-K法求解方程的解(在区间0,1,h=0.2)解,有R-K算法有迭代式:=yk, k=0,1,2,3,4,5