1、第六章 常微分方程初值问题的数值解法,6.1 欧拉方法 6.2 计算公式的误差分析 6.3 龙格库塔方法 6.4 向一阶方程组与高阶方程的推广,问题的提出,数值求解方法,6.1 欧拉方法,6.1.1 欧拉公式与改进欧拉公式,算法:,选择不同的数值积分公式来求近似值就得到初值问题的各种数值解法,1.欧拉公式,2.后退欧拉公式,这称为后退欧拉公式,后退欧拉公式是一个隐式公式,通常采用迭代法求解。,例6.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题,立表,(见表6-1(书121页)),6.1.2 梯形公式与改进欧拉公式,3.梯形公式,-梯形公式也是隐式单步法公式,用梯形公式计算时,通常取欧
2、拉公式的解作为迭代初值进行迭代计算,即采用下式,(1),(2),4.改进欧拉公式,这称为改进欧拉公式,例6.2 仍取步长h = 0.1,采用改进欧拉法重新计算例 6.1 的 常微分方程初值问题。,(见表6-2(书125页)),立表,6.2 计算公式的误差分析,定义6.1 若 yi+1 是 yi=y(xi) 从计算得到的近似解,则称 y(xi+1) yi+1为所用公式的局部截断误差,简称为截断误差。,截断误差的估计(基本假设: yi = y( xi ) ),设 y(x)C 3 x0 , b , 则,(3)对梯形公式,注意到其公式可改写为,故由式(6-8)和(6-9)得,因此,梯形公式的局部截断误
3、差为 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( ) 进行近似,龙格-库塔据之提出了适当选取若干点上的斜率值作近似以构造高精度计算公
4、式的方法,其基本思想是基于泰勒展式的待定系数法。,6.3.1 二阶Rung-Kutta公式,问题:建立二阶精度的计算格式形为,在 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 公式,1965年,Butcher研究发现显式R-K公式的精度与需要组合的斜率值的个数具有如下关系,可见,超过四阶精度
5、的R-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)若 ,则把步长逐次加倍计算,直至 为止,这时取前一次步长计算所得到的解作为满足精度要求的近似解。,