nullnull(Numerical Methods for Ordinary Differential Equations )null常微分方程分为
(1)初值问题 (2)边值问题一、初值问题的数值解法§1 引 言一阶常微分方程初值问题的一般形式是:null称 在区域D上对 满足Lipschitz条件
是指:null二、初值问题解的存在性 考虑一阶常微分方程的初值问题 /* Initial-Value Problem */:则上述IVP存在唯一解。null要计算出解函数 y(x) 在一系列节点
a = x0< x1<…< xn= b 处的近似值
采用离散化方法。null三、初值问题的离散化方法 离散化方法的基本特点是依照某一递推公式,值 ,取 。
按节点从左至右的顺序依次求出 的近似
null§2 欧拉方法
/* Euler’s Method */ 欧拉公式(单步显示公式):向前差商近似导数null亦称为欧拉折线法
/* Euler’s polygonal arc method*/ 在假设 yi = y(xi),即第 i 步计算是精确的前提下,考虑的截断误差 Ri = y(xi+1) yi+1 称为局部截断误差 /* local truncation error */。定义 若某算法的局部截断误差为O(hp+1),则称该 算法有p 阶精度。定义null 欧拉法的局部截断误差:Ri 的主项
/* leading term */欧拉法具有 1 阶精度。null例1: 用欧拉公式求解初值问题解: 应用Euler公式于题给初值问题的具体形式为: 计算结果列于下
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
: null null可用来检验近似解的准确程度。 进行计算,数值解已达到了一定的精度。这个初值问题的准确解为 ,从上表最后一列,我们看到取步长null 欧拉公式的改进: 隐式欧拉法 /* implicit Euler method */向后差商近似导数null由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。null一般先用显式计算一个初值,再迭代求解。 隐式欧拉法的局部截断误差:即隐式欧拉公式具有 1 阶精度。null 梯形公式 /*trapezoid formula */— 显、隐式两种算法的平均注:的确有局部截断误差 ,即梯形公式具有2 阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。null 中点欧拉公式 /* midpoint formula */中心差商近似导数假设 ,则可以导出
即中点公式具有 2 阶精度。null简单精度低稳定性最好精度低, 计算量大精度提高计算量大精度提高, 显式多一个初值,
可能影响精度 Can’t you give me a formula
with all the advantages yet without any
of the disadvantages? Do you think it possible? Well, call me greedy… OK, let’s make it possible.null 改进欧拉法 /* modified Euler’s method */Step 1: 先用显式欧拉公式作预测,算出null注:此法亦称为预测-校正法
/* predictor-corrector method */可以
证明
住所证明下载场所使用证明下载诊断证明下载住所证明下载爱问住所证明下载爱问
该算法具有 2 阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。改进的欧拉法null在实际计算时,可将欧拉法与梯形法则相结合,
计算公式为 应用改进欧拉法,如果序列 收敛,它的极限便满足方程null改进欧拉法的截断误差因此,改进欧拉法公式具有 2 阶精度null例2: 用改进Euler公式求解例1中的初值问题, 解:对此初值问题采用改进Euler公式,
其具体形式为计算结果列于下表:nullnull通过计算结果得比较可以看出,改进的Euler方法的计算精度比Euler方法要高。null§3 龙格 - 库塔法
/* Runge-Kutta Method */单步递推法的基本思想是从 ( xi , yi ) 点出发,欧拉法及其各种变形所能达到的最高精度为2阶。以某一斜率沿直线达到 点。null 考察改进的欧拉法,可以将其改写为:斜率
一定取K1 K2
的平均值吗?步长一定是一个h 吗?null首先希望能确定系数 1、2、p,使得到的算法格式有2阶精度,即在 的前提假设下,使得 Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开nullStep 2: 将 K2 代入第1式,得到Step 3: 将 yi+1 与 y( xi+1 ) 在 xi 点的泰勒展开作比较null这里有 个未知数, 个方程。32存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库塔格式。null 为获得更高的精度,应该如何进一步推广?其中i ( i = 1, …, m ),i ( i = 2, …, m ) 和 ij ( i = 2, …, m; j = 1, …, i1 ) 均为待定系数,确定这些系数的步骤与前面相似。 null考虑一阶常微分方程初值问题将区域[a,b]进行分划:将区域[a,b]进行分划:null 若
null则nulln级显式Runge-Kutta方法二阶Runge-Kutta方法二阶Runge-Kutta方法取n=2记null由此得null另一方面改进的Euler方法改进的Euler方法取
中点方法中点方法取 二阶Heun方法二阶Heun方法取 二级Runge-Kutta方法不超过二阶二级Runge-Kutta方法不超过二阶记
则null三级Runge-Kutta方法三级Runge-Kutta方法取n=3
null记nullnull又由于null因此要使局部截断误差为 ,必须 Kutta方法Kutta方法取三阶Heun方法三阶Heun方法取
三级Runge-Kutta方法不超过三阶三级Runge-Kutta方法不超过三阶完全类似于二级Runge-Kutta方法的分析只能达到三级Runge-Kutta方法的局部截断误差将 和 都展开到 项,易证 四级R-K方法 四级R-K方法取n=4nullnull局部截断误差为O(h5)最常用为四级4阶经典龙格-库塔法
/* Classical Runge-Kutta Method */ :附注:附注:二阶Runge-Kutta方法的局部截断误差
只能达到 五阶Runge-Kutta方法的局部截断误差
只能达到 四阶Runge-Kutta方法的局部截断误差
只能达到
三阶Runge-Kutta方法的局部截断误差
只能达到
null注:
龙格-库塔法的主要运算在于计算 的值,即计算 的值。Butcher 于1965年给出了计算量与可达到的最高精度阶数的关系: 由于龙格-库塔法的导出基于泰勒展开,故精太好的解,最好采用低阶算法而将步长h 取小。度主要受解函数的光滑性影响。对于光滑性不null§4 单步方法的收敛性与稳定性
/* Convergency and Stability */ 收敛性 /* Convergency */例:就初值问题 考察欧拉显式格式的收敛性。null解:该问题的精确解为 欧拉公式为对任意固定的 x = xi = i h ,有null 稳定性 /* Stability */例:考察初值问题 在区间[0, 0.5]上的解.分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。 1.0000
2.0000
4.0000
8.0000
1.6000101
3.2000101 1.0000
2.5000101
6.2500102
1.5625102
3.9063103
9.76561041.0000
2.5000
6.2500
1.5626101
3.9063101
9.76561011.0000
4.9787102
2.4788103
1.2341104
6.1442106
3.0590107What is wrong ??!null一般分析时为简单起见,只考虑试验方程 /* test equation */常数,可以是复数null我们称算法A 比算法B 稳定,就是指 A 的绝对稳定
区域比 B 的大。当步长取为 h 时,将某算法应用于上式,并假设只在初值产生误差 ,则若此误差以后逐步衰减,就称该算法相对于 绝对稳定, 的全体构成绝对稳定区域。null例:考察显式欧拉法由此可见,要保证初始误差0 以后逐步衰减,
必须满足:null例:考察隐式欧拉法可见绝对稳定区域为:注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。null例:隐式龙格-库塔法其中2阶方法 的绝对稳定
区域为无条件稳定null而显式 1~ 4 阶方法的绝对稳定区域为