11.1 欧拉方法 11.2 计算公式的误差分析 11.3 龙格-库塔方法 11.4 向一阶方程组与高阶方程的推广 第十一章 常微分方程初值问题的数值解法 11.1 欧拉方法 11.2 计算公式的误差分析 11.3 龙格-库塔方法 11.4 向一阶方程组与高阶方程的推广
问题: 数值求解方法:
11.1 欧拉方法 11.1.1 欧拉公式与改进欧拉公式 这称为欧拉公式 例11.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题
这称为后退欧拉公式 后退欧拉公式是一个隐式公式,通常采用迭代法求解。
11.1.2 梯形公式与改进欧拉公式 欧拉公式与后退欧拉公式也可采用积分近似的方法推出
梯形公式也是隐式单步法公式
用梯形公式计算时,通常取欧拉公式的解作为迭代初值进行迭代计算,即采用下式 这称为改进欧拉公式
例11.2 仍取步长h = 0.1,采用改进欧拉法重新计算例 6.1 的 常微分方程初值问题。 解 这时改进欧拉公式为 计算结果见表6-2(书125页)
11.2 计算公式的误差分析 定义11.1 若 yi+1 是 yi=y(xi) 从计算得到近似解,则称 11.2 计算公式的误差分析 定义11.1 若 yi+1 是 yi=y(xi) 从计算得到近似解,则称 y(xi+1) - yi+1为所用公式的局部截断误差,简称为截断误差。 定理11.1 若单步法 yi+1 = yi+h (xi , yi , h) 的局部截断误差为 O (h p+1) ,且增量函数 (x , y , h) 关于 y 满足李普希兹条件,即存在常数 L>0,使对 成立不等式 则其整体截断误差 y(xi)- yi=O(hp)
截断误差的估计(基本假设: yi = y( xi ) ) 设 y(x)C 3 [x0 , b] , 则 (1)对欧拉公式,有 因此,欧拉公式的局部截断误差为 O (h2) (2)对后退欧拉公式,有 因此,后退欧拉公式的局部截断误差为 O (h2)
(3)对梯形公式,注意到其公式可改写为 故由式(6-9)和(6-9)得 因此,梯形公式的局部截断误差为 O ( h3 )
(4)对改进欧拉公式,有 而由 ,故有 与式(6-7)比较得 y(xi+1) -yi+1 = O ( h3 ) 因此,改进欧拉公式的局部截断误差为 O ( h3 )
定义11.2 若一种求解常微分方程初值问题的数值计算方法的局部截断误差为 O ( hp+1 ) ,则称该方法为 p阶精度,或称该方法为 p阶方法。 由此定义知,欧拉方法与后退欧拉方法为一阶精度,梯形法与改进欧拉方法为二阶精度。
11.3 龙格-库塔方法 由中值定理,有 因此,以上介绍的各种单步法本质上都是对平均斜率 f( , y( )) 进行近似,龙格-库塔据之提出了适当选取若干点上的斜率值作近似以构造高精度计算公式的方法,其基本思想是基于泰勒展式的待定系数法。
11.3.1 二阶R-K公式 问题:建立二阶精度的计算格式形为 解 在 y(xi) = yi 的假设下,有 故
而 根据格式为二阶精度,即 y(xi+1) -yi+1 = O(h3) 比较两式系数得 系数满足(6-13)的形为(6-12)计算格式统称为二阶R-K公式。当令1=1/2时,解得 2=1/2 ,a=b=1,即为改进欧拉公式。若令 1=0,解得 2=1,a=b=1/2,则得另一计算公式 变形欧拉公式
11.3.2 四阶 R-K 公式 1965年,Butcher研究发现显式R-K公式的精度与需要组合的斜率值的个数具有如下关系 每一步需计算的 f 值的个数 1 2 3 4 5 6 7 n8 精度阶 n-2 可见,超过四阶精度的R-K公式效率并不高,实际计算通常选用如下四阶格式 经典R-K公式
例11.3 取步长h = 0.2,采用经典R-K法计算例 6.1 的常微分方程初值问题。 解 这时经典R-K公式为 取 h=0.2 计算得到表6-4(书133页)。 与例6.1和例6.2比较可见,用经典R-K法计算得到的解比用欧拉法和改进欧拉法所得到的解精确得多。
11.3.3 步长的自动选择 为便于进行事后误差估计,实际计算时通常采用步长减半算法。 对于 p 阶精度的计算格式,当取步长为 h 时,记 为从 y(xi) 计算得到的 y (xi+1) (xi+1= xi+h) 的近似解,则有
记 ,则对给定的精度要求 ,可根据 按如下方式调整步长: (1)若 > ,则把步长逐次减半计算,直至 < 为止,这时最终得到的解即为满足精度要求的近似解。 (2)若 < ,则把步长逐次加倍计算,直至 为止,这时取前一次步长计算所得到的解作为满足精度要求的近似解。