
计算方法课件第六章 常微分方程初值问题的数值解法.ppt
26页第六章 常微分方程初值问题的数值解法6.1 欧拉方法 6.2 计算公式的误差分析 6.3 龙格-库塔方法 6.4 向一阶方程组与高阶方程的推广一、欧拉法:一、欧拉法:只要f(x,y)f(x,y)满足一定条件,则此问题的解是存在的,且是唯一的 在求解的过程中,我们已掌握了一些典型方程的解法但是仍有不少方程是无法求出其解析解的,因此我们要讨论其数值解即在微分方程解存在的前提下,构造一种算法,计算出微分方程的解y(x)在存在区间上点 上的值的近似值,即不求其准确解y=y(x)的解析表达式,而求出一个函数表格1.问题的提出:2.数值求解方法:数值求解方法:6.1 欧拉方法欧拉方法6.1.1 欧拉公式与改进欧拉公式欧拉公式与改进欧拉公式1)算法:这称为欧拉公式欧拉公式例例6.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题后退欧拉公式是一个隐式公式,通常采用迭代法求解这称为后退欧拉公式后退欧拉公式6.1.2 梯形公式与改进欧拉公式梯形公式与改进欧拉公式欧拉公式与后退欧拉公式也可采用积分近似的方法推出梯形公式梯形公式也是隐式单步法公式用梯形公式计算时,通常取欧拉公式的解作为迭代初值进行迭代计算,即采用下式这称为改进欧拉公式改进欧拉公式例例6.2 仍取步长h = 0.1,采用改进欧拉法重新计算例 6.1 的常微分方程初值问题。
这时改进欧拉公式为计算结果见表6-2(书125页)解解6.2 计算公式的误差分析计算公式的误差分析 定义定义6.1 若 yi+1 是 yi=y(xi) 从计算得到的近似解,则称y(xi+1) - yi+1为所用公式的局部截断误差局部截断误差,简称为截断误差截断误差 定理定理6.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 ) 定义定义6.2 若一种求解常微分方程初值问题的数值计算方法的局部截断误差为 O ( hp+1 ) ,则称该方法为 p阶精度阶精度,或称该方法为 p阶方法阶方法。
由此定义知,欧拉方法与后退欧拉方法为一阶精度,梯形法与改进欧拉方法为二阶精度6.3 龙格龙格-库塔方法库塔方法由中值定理,有 因此,以上介绍的各种单步法本质上都是对平均斜率 f( , y( )) 进行近似,龙格-库塔据之提出了适当选取若干点上的斜率值作近似以构造高精度计算公式的方法,其基本思想是基于泰勒展式的待定系数法6.3.1 二二阶阶R-KR-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,则得另一计算公式变形欧拉公式变形欧拉公式6.3.2 四阶四阶 R-K R-K 公式公式每一步需计算的 f 值的个数1234567n8精度阶1234456n-2 1965年,Butcher研究发现显式R-K公式的精度与需要组合的斜率值的个数具有如下关系 可见,超过四阶精度的R-K公式效率并不高,实际计算通常选用如下四阶格式经典经典R-KR-K公式公式这时经典R-K公式为 例例6.3 取步长h = 0.2,采用经典R-K法计算例 6.1 的常微分方程初值问题。
取 h=0.2 计算得到表6-4(书133页) 与例6.1和例6.2比较可见,用经典R-K法计算得到的解比用欧拉法和改进欧拉法所得到的解精确得多解解6.3.3 步长的自动选择步长的自动选择 对于 p 阶精度的计算格式,当取步长为 h 时,记 为从 y(xi) 计算得到的 y (xi+1) (xi+1= xi+h) 的近似解,则有 为便于进行事后误差估计,实际计算时通常采用步长减半算法 记 ,则对给定的精度要求 ,可根据 按如下方式调整步长: (1)若 > ,则把步长逐次减半计算,直至 < 为止,这时最终得到的解即为满足精度要求的近似解 (2)若 < ,则把步长逐次加倍计算,直至 为止,这时取前一次步长计算所得到的解作为满足精度要求的近似解。
