计算方法第六章ppt课件.ppt
,Home,目录,第6章 常微分方程数值解法,6.1 欧拉法和改进的欧拉法,6.2 龙格-库塔法,6.3 线性多步法,引言,Home,目录,一阶常微分方程的初值问题,当f(x,y)连续,且满足Lipschitz(李普希兹)条件 |f(x,y1)f(x,y2)|L|y1y2|, xa,b, y1,y2R则上述初值问题存在连续可微的解函数 y = y(x).例如初值问题,可求出方程y=1+ex的通解为 y=x+ex+c,将初值条件 x=0, y=2 代入得 2=1+c, 故 c=1,所以初值问题的解为 y=x+ex+1,引言,Home,目录,又如初值问题,可求出它的解为,但要进一步计算指定点的函数值,还需要用数值积分方法。有些微分方程的解是隐函数,例如,要求函数值还需要解超越方程。应用中所处理的微分方程往往很复杂且大都得不出一般解,所以一般用数值解法。,数值解法: 给定节点a=x0 x1xN=b, 将初值问题离散化为差分方程,求出解函数 y(x) 在这些点的近似值y1 ,y2 ,yn 。 所求得的近似值称为数值解。,Home,目录,6.1 欧拉法和改进的欧拉法,6.1.1 欧拉法及其截断误差,6.1.2 改进的欧拉法及预测-校正公式,Home,目录,6.1.1 欧拉法及其截断误差,1. 公式的构造思想:用差商代替导数,设,等距,步长为,令x=xi , x+h=xi+1 , y(xi )yi ,y(xi+1 ) yi+1 ,初值问题离散化为,初值问题,(欧拉公式),目录,例 6.1 取步长 h=0.1,用欧拉法求解初值问题,(欧拉公式),解,y1=y0+h f(x0 ,y0 )=1+0.1(0 + 1 )=1.1,y2=y1+h f(x1 ,y1 )=1.1 + 0.1(0.1 + 1.1 )=1.22y3=y2+h f(x2 ,y2 )=1.22+0.1(0.2+ 1.22)=1.22+0.142=1.362,y10=y9+h f(x9 ,y9 )=y9+0.1(x9 + y9 )=3.18748,Home,目录,2. 几何意义用折线代替曲线计算解函数的近似值。,准确解为,Home,目录,3. 数值公式的误差来源。,(1) 局部截断误差(简称截断误差):假设 yi=y(xi )是准确的 ,计算yi+1所产生的误差 y(xi+1 ) - yi+1,若局部截断误差可以表示为O(hk+1), k为正整数,则称公式是k阶公式。,(2)由于实际上yi不是准确值,因此它的误差会传播下去。,(3)实际计算时,每一步都可能产生舍入误差。,Home,目录,4. 欧拉公式的截断误差是O(h2),公式是1 阶的。,因为,(泰勒公式),两式相减,由设 yi=y(xi ) ,有,Home,目录,6.1.2 改进的欧拉法及预测-校正公式,对微分方程y=f(x,y) 两边求xi 到xi+1 的定积分,有,利用梯形公式计算积分,有,将y(xi ) 、y(xi+1 )分别用yi 、yi+1 代替,构造相应的数值公式:,(改进的欧拉公式),1. 公式的构造,Home,目录,2. 截断误差,假设 yi=y(xi), 解函数在x=xi处的泰勒公式为,在改进的欧拉公式中,,设,则有,求出在h=0处的泰勒公式,整理后得,上式h 和h2 项的乘数应为零,于是,Home,目录,因而改进的欧拉法是二阶的。,Home,目录,3 改进的欧拉法的具体使用格式。,改进的欧拉法是隐式公式 ,计算时常用迭代法。一般每一步先由欧拉公式计算出yi+1 的初始值yi+1(0),再迭代计算yi+1。,当满足,时,取,可证明当f(x,y)满足一定条件时,迭代是收敛的。,Home,目录,改进的欧拉法的预测校正公式,可证明预测校正公式的截断误差也为 O(h3)。,Home,目录,例 取步长h=0.2,用改进的欧拉法的预测校正公式求解初值问题 的数值解y1 , y2 .,解,预测-校正公式具体是,Home,目录,Home,Home,目录,6.2 龙格-库塔法,6.2.1 二阶龙格-库塔(Runge-Kutta)公式,6.2.2 四阶龙格-库塔公式,引言,与其他算法的实例比较,Home,目录,思想:从泰勒公式出发,寻找更高阶的数值公式。,例如,泰勒公式计算到二阶可得,令,则,,略去余项,得出一个二阶的,理论上按此方式可以得到更高阶的公式。但需要计算复合函数的高阶导数,使算法复杂而不实用。,因,数值公式为,目录,龙格和库塔的思想(间接地运用泰勒公式):利用y(x)在若干个点上的函数值和导数值,作出一个适当的线性组合,使这个线性组合按h展开后的泰勒公式与y(x+h)的泰勒公式有较多的项达到一致,从而得出较高阶的数值公式。,Home,目录,6.2.1 二阶龙格-库塔(Runge-Kutta)公式,设想一个有二阶精度的数值公式形状为,a, b为待定系数。,在h=0处求泰勒公式得,仍令x=xn,则x+h=xn+1。如果能找出a,b,使得,那么略去余项就可得到上面所希望的近似计算公式了。,因此考虑,由于,Home,目录,由T(h)的泰勒公式,为使T(h)=O(h3),令,解出,,得,整理得,Home,目录,利用,可以推出,取x=xn并略去O(h3)便得到二阶龙格库塔公式,或,Home,目录,6.2.2 四阶龙格-库塔公式,仿照上述的讨论,可导出四阶龙格库塔公式:,Home,目录,例 取步长h=0.2,用四阶龙格库塔公式求下面初值问题的数值解。,解,由公式得,Home,目录,数值解yi与准确解y(xi)的对照见表,准确解是,xi,yi,y(xi),Home,目录,Home,Home,目录,6.3 线性多步法,6.3.1 四阶阿达姆斯(Adams)外插公式,6.3.2 四阶阿达姆斯(Adams)内插公式,多步法的概念,6.3.3 初始出发值的计算,6.3.4 阿达姆斯预测-校正公式,与其他算法的实例比较,Home,目录,单步法-计算yn+1时只使用yn的值。多步法-计算yn+1时使用前面的k个yi 值,即由yn-k+1 , yn-k+2 , ,yn-1, yn计算yn+1。(k=1,2,)线性多步法-计算yn+1的公式由yn-k+1 , yn-k+2 , ,yn-1, yn 的线性组合表达。,多步法的概念,目录,6.3.1 四阶阿达姆斯(Adams)外插公式,设想用yn-3 ,yn-2 ,yn-1 ,yn 的值计算yn+1。为方便,讨论由,出发计算y(x+h), 由初值问题的方程y=f(x,y(x)两边从x到x+h积分, 可得到等价的积分方程,设想运用数值积分方法,取 x-3h, x-2h, x- h, x 为插值基点做 f(s,y(s) 的三次拉格朗日插值,用它近似计算上式的积分 。这样得到的数值积分公式是f(s,y(s)在4个插值基点处的函数值的线性组合。,Home,目录,由于 f(x-ih,y(x-ih)= y(x-ih),所得到的计算 y(x+h) 的近似公式形为:,为达到四阶精度,希望确定参数b0 ,b1 ,b2 ,b3使满足,运用在 h=0 处的泰勒公式得,Home,目录,求得,代入前面的公式得,令x=xn 并记,为使误差等于O(h5),令h, h2,h3,h4 的系数为0,得方程组:,Home,目录,略去余项,得到四阶阿达姆斯外插公式 :,这是显式公式。公式的截断误差为O(h5)。,Home,目录,把四阶阿达姆斯外插公式中使用的yn-3 ,yn-2 ,yn-1 ,yn改为,yn-2 ,yn-1 ,yn ,yn+1 ,经类似的推导可得近似公式:,6.3.2 四阶阿达姆斯(Adams)内插公式,确定待定系数的方程组为,Home,目录,解得,得到四阶阿达姆斯内插公式,这是一个隐式公式,截断误差也是O(h5)。,Home,目录,6.3.3 初始出发值的计算,阿达姆斯公式的特点是计算公式简单,只需简单的算术运算,计算量少,结果的精度较高。但需要4个初始出发值。,(1)使用单步法,例如龙格库塔法求出发值。,(2)使用y(x)在x=x0 处的泰勒公式,其中泰勒公式的阶数k按需要选取,各导数值由复合函数 f(x,y(x)的求导得出。,Home,目录,6.3.4 阿达姆斯预测-校正公式,阿达姆斯内插公式是隐式公式,与改进的欧拉公式用法类似需要用迭代法计算yn+1 。 为了减小迭代次数,可与阿达姆斯外插公式联合使用,构造只迭代 1 次的预测-校正格式,即,阿达姆斯预测-校正公式,公式仍有四阶精度。,Home,目录,例 6.4 用阿达姆斯预测-校正公式求初值问题,的数值解。,解,使用四阶龙格库塔公式求出发值 ,计算得,再用阿达姆斯预测校正公式,,Home,目录,类似可计算,计算结果如表:,xi,yi,Home,目录,Home,