第六章常微分方程的数值解法_精品文档PPT课件下载推荐.ppt
《第六章常微分方程的数值解法_精品文档PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《第六章常微分方程的数值解法_精品文档PPT课件下载推荐.ppt(62页珍藏版)》请在冰豆网上搜索。
![第六章常微分方程的数值解法_精品文档PPT课件下载推荐.ppt](https://file1.bdocx.com/fileroot1/2022-10/14/92402c8a-9ddc-4ee7-87d6-94fee53d4b8c/92402c8a-9ddc-4ee7-87d6-94fee53d4b8c1.gif)
利用前一个单步的信息(一个点),在y=f(x)上找下一点yi,有欧拉法,龙格库格法。
预测校正法:
多步法,利用一个以上的前点信息求f(x)上的下一个yi,常用迭代法,如改进欧拉法,阿当姆斯法。
6.1引言,6.2欧拉方法及其改进EulersMethod,内容一.欧拉格式二.Euler预估校正法三.误差估计、收敛性和稳定性,6.2.1欧拉公式:
/*EulersMethod*/,6.2欧拉方法及其改进,6.2欧拉方法及其改进,7.2欧拉方法,6.2欧拉方法及其改进,7.2欧拉方法,6.2欧拉方法及其改进,7.2欧拉方法,6.2欧拉方法及其改进,6.2.3隐式欧拉法/*implicitEulermethod*/,向后差商来近似导数,由于未知数yi+1同时出现在等式的两边,不能直接得到,故称为隐式/*implicit*/欧拉公式,而前者称为显式/*explicit*/欧拉公式。
一般先用显式计算一个初值,再用隐式法(迭代)求解。
6.2欧拉方法及其改进,6.2欧拉方法及其改进,显、隐式两种算法的平均。
需要迭代求解,能否不迭代?
6.2欧拉方法及其改进,6.2.4梯形格式,6.2欧拉方法及其改进,/*predictor-correctormethod*/,7.2欧拉方法及其改进,7.2欧拉方法,7.2欧拉方法,计算结果如下:
6.3龙格库塔方法,内容一.2阶龙格库塔格式三.高阶龙格库塔格式,单步法:
即利用前一个节点的函数值yi,计算后一个节点的函数值yi+1。
目的:
建立高精度的单步递推格式。
单步递推法的基本思想是从(xi,yi)点出发,以某一斜率沿直线达到(xi+1,yi+1)点。
欧拉法及其各种变形所能达到的最高精度为2阶。
6.3龙格库塔方法,二.2阶龙格库塔格式,斜率一定取K1K2的平均值吗?
步长一定是一个h吗?
6.3龙格库塔方法,7.3龙格库塔方法,首先希望能确定系数1、2、p,使得到的算法格式有2阶精度,即在的前提假设下,使得,Step1:
将K2在(xi,yi)点作Taylor展开,Step3:
将y(xi+1)在xi点的泰勒展开并与yi+1作比较,要求,则必须有:
这里有3个未知数,2个方程。
存在无穷多个解。
所有满足上式的格式统称为2阶龙格-库塔格式。
注意到,就是改进的欧拉法。
Step2:
将K2代入第1式,得到,其中i(i=1,m),i(i=2,m)和ij(i=2,m;
j=1,i1)均为待定系数,确定这些系数的步骤与前面相似。
问题:
为获得更高的精度,应该如何进一步推广?
6.3龙格库塔方法,三.高阶龙格库塔格式,3阶龙格-库塔法,6.3龙格库塔方法,6.3龙格库塔方法,最常用为四级4阶经典龙格-库塔法,注:
龙格-库塔法的主要运算在于计算Ki的值,即计算f的值。
Butcher于1965年给出了计算量与可达到的最高精度阶数的关系:
由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。
对于光滑性不太好的解,最好采用低阶算法而将步长h取小。
6.3龙格库塔方法,7.3龙格库塔方法,例:
使用高阶R-K方法计算初值问题解:
(1)使用三阶R-K方法(公式),6.3龙格库塔方法,7.3龙格库塔方法,其余结果如下:
ixiK1K2K3yi1.00000.10001.00001.10251.25551.11112.00000.20001.23451.37551.59451.24993.00000.30001.56241.76372.09221.42844.00000.40002.04042.34232.86581.66645.00000.50002.77683.25874.16341.9993,6.3龙格库塔方法,7.3龙格库塔方法,
(2)如果使用四阶R-K方法(公式),6.3龙格库塔方法,7.3龙格库塔方法,其余结果如下:
ixiK1K2K3K4yi1.00000.10001.00001.10251.11331.23511.11112.00000.20001.23461.37561.39211.56331.25003.00000.30001.56251.76391.79082.04231.42864.00000.40002.04082.34282.38922.78051.66675.00000.50002.77773.26003.34764.00572.0000,6.3龙格库塔方法,步长过大,达不到精度要求;
步长过小,虽然局部截断误差小,加大了计算工作量,舍入误差的累积增大。
解决途径之一引入变步长技术,常用的有Richardson外推法。
从结点xi出发,先以h为步长,通过一步计算出y(xi+1)的近似值,6.4步长的自动选择,7.2欧拉方法,/*Convergency*/,6.5收敛性与稳定性,例:
就初值问题考察欧拉显式格式的收敛性。
解:
该问题的精确解为,欧拉公式为,对任意固定的x=xi=ih,有,6.5收敛性与稳定性,7.2欧拉方法,例:
考察初值问题在区间0,0.5上的解。
分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。
1.00002.00004.00008.00001.60001013.2000101,1.00002.50001016.25001021.56251023.90631039.7656104,1.00002.50006.25001.56261013.90631019.7656101,1.00004.97871022.47881031.23411046.14421063.0590107,原因?
!
取步长h=0.1,6.5收敛性与稳定性,7.2欧拉方法,6.5收敛性与稳定性,一般分析时为简单起见,只考虑试验方程,常数,可以是复数,6.5收敛性与稳定性,6.5收敛性与稳定性,Euler法的绝对稳定区域,7.3龙格库塔方法,例:
隐式龙格-库塔法,而显式14阶方法的绝对稳定区域为,其中2阶方法的绝对稳定区域为,无条件稳定,6.6一阶常微分方程组与高阶方程,可以把单个方程中的f和y看作向量来处理,这样就可把前面介绍的各种差分算法推广到求一阶方程组初值问题中来。
6.6.1一阶常微分方程组对于一阶常微分方程组的初值问题,对于一阶常微分方程组,可类似得到各种解法,而高阶常微分方程可转化为一阶常微分方程组来求解。
设为节点上的近似解,则有改进的Euler格式为,预报:
校正:
又,相应的四阶龙格库塔格式(经典格式)为,式中,例用改进的Euler法求解初值问题,取步长h=0.1,保留六位小数。
解:
改进的Euler法公式为,由初值,计算得,6.6.1一阶常微分方程组,高阶微分方程(或方程组)的初值问题,原则上都可以归结为一阶方程组来求解。
例如,有二阶微分方程的初值问题,在引入新的变量后,即化为一阶方程组初值问题:
此为一个一阶方程组的初值问题,对此可用前面中介绍的方法来求解。
例如应用四阶龙格-库塔公式得,例求解下列二阶微分方程的初值问题,取步长h=0.1,解:
先作变换:
令,代入上式,得一阶方程组,用四阶龙格-库塔方法求解,按式(9.37)及(9.38)进行计算:
取步长,时,然后计算时的y2和z2;
依此类推,直到i=9时的y10和z10,即可得到其数值解。
6.7边值问题的数值解法,打靶法与有限差分法,