第七章常微分方程数值解.doc
《第七章常微分方程数值解.doc》由会员分享,可在线阅读,更多相关《第七章常微分方程数值解.doc(57页珍藏版)》请在三一文库上搜索。
1、第七章 常微分方程数值解1 引言一 一阶初值问题解的存在唯一性一阶常微分方程初值问题 (*)其中是平面某一区域D上的连续函数,如果,满足 存在,并满足方程那么是初值问题(*),在上的解。对于(*)是否有唯一解?对还要附加一些条件。定义 如果存在正常数,使得对任意有则称满足Lipschitz条件,L称为Lipschitz常数。 如果 ,那么有导数有界满足Lipschitz条件如果存在常数,使得对一切及有 则称对满足Lipschitz条件。同理,只要 f(x,y)对 y的偏导数有界,则f(x,y) 满足对y的Lipschitz条件。定理(存在唯一性),设是在上的连续函数,而且对满足Lipschit
2、z条件,则对任意,初值问题(*)在上存在唯一的连续可微解。二 本章研究的问题例1 yx=1-2xyx y0=0,满足微分方程和初始条件的解是 y(x)=e-x20xet2dt,无法给出具体表达式。为了对初值问题进行求解,一些简单问题有解析解,大量非线性问题没有解析表达式,就是线性问题也不一定有解析解,因此,近似求解和数值求解常微分方程是非常必要的。 1 初值问题数值解基本概念已知 yx=f(x,yx)yx0=y0 x0xb (1.1)满足(1.1)的解是过点(x0,y0)的一条曲线y(x)首先对连续区间离散化为常数。离散点是等矩的也可以是不等距的,下面仅讨论等距情况。为方便起见:把在xn处的精
3、确值记为,其近似值用表示 如何求xn处解的近似值yn? 从X0 ,y0 出发,用微分方程计算出x1处解的近似值y1,再从x1,y1出发,用微分方程计算出x2处解的近似值y2,将此过程继续下去,写出计算公式有: y1=y0+hfx0,y0 y2=y1+hfx1,y1 yn+1=yn+hf(xn,yn)y0=y(x0) (1.2) n=0,1,方程(1.2)叫差分方程 这种求微分方程近似解的过程称为步进式的方法,计算yn+1时只用到yn,这种方法叫单步法,若用到前面不止一个信息量,叫多步法。 xi 称为节点 yxi+1-yi+1 称为单步法在xi+1处的整体截断误差 yxi+1-yxi+hfxi,
4、yxi称为单步法1.2在xi+1处的局部截断误差,即xi 到xi+1这一步的公式误差。综上所述,求微分方程数值解需要处理以下几个问题:1 把微分方程(连续的)离散化为差分方程(离散的)2 用差分方程和初始条件计算出微分方程数值解3 有关理论(1) 误差,局部截断误差,主局部截断误差,阶(2) 收敛性(3) 稳定性(绝对稳定性)本章讲授的内容:1 单步法:显示Euler方法,隐式Euler方法,梯形方法,改进Euler方法,Rung-kutta方法2 单步法的收敛性,稳定性,相容性3 线性多步法三 预备知识1 一元Taylor多项式yx=yxn+yxnx-xn+yxn2!(x-xn)2+yn(x
5、n)n!(x-xn)n+ yxn+1=? yxn-1=? yxn+1=? yxn-1=?2 二元Taylor多项式 fx+h,y+k=fx,y+(xh+yk)f(x,y)+12!xh+yk2fx,y+1n!xh+yknfx,y+ 其中: x+an=k=0nnkxkan-k , nk=n!k!(n-k)!3 数值积分4 Lagrang插值2 简单数值方法已知 yx=f(x,y(x)yx0=y0 x0xb (2.1) xi=x0+ih, i=0,1,(I)显式Euler方法(也称为Euler方法)Euler方法是求常微分方程初值问题的最简单办法。上节的公式(1.2)就是显示Euler方法 yn+1
6、=yn+hf(xn,yn)y0=y(x0) (2.2)问题: 要从(2.1) 离散化得到(2.2)还有什么办法?1数值积分方法 把(2.1)写成如下形式: dy=fx,yxdx 然后两端做积分有 xnxn+1dy=xnxn+1fx,yxdx yxn+1-yxn=xnxn+1fx,yxdx (*)用左矩形公式近似左边积分,用yxn+1,yxn 的近似值 yn+1,yn代人得到结果 yn+1=yn+hf(xn,yn)y0=y(x0) (2.2)2 Taylor展开方法yxn+1=yxn+yxnxn+1-xn+yxn2!(xn+1-xn)2+略去高阶项 即 设是初值问题的解,那么有从而有yxn+1-
7、yxnhfxn,yxn 用近似值yn+1,yn代替yxn+1,y(xn)由此得出公式(2.2)3数值微分方法称为差商,即用差商近似微商,也得出:由此得出公式(2.2) 当已知时,可由公式(2.2)简单地求出,方法为显式的,由上的近似值可求出上的近似值,称为单步公式,(2.2)称为显式Euler方法也称为Euler方法。(II)隐式Euler方法(也叫后退Euler方法) 数值积分方法对(*) 公式右边积分用右矩形积分公式得到yn+1=yn+hf(xn+1,yn+1)y0=y(x0) (2.3) 也可用Taylor展开方法 略去高阶项,并设是初值问题的解,则有即写为同样用 的近似值代入有 (2.
8、3)的右端含有,一般,不能直接由(2.3)得出,这种方法是隐式的。(2 .3)称为隐式Euler方法。该方法也可用数值微分方法得出。(III)梯形方法在上对上式进行积分有等式右边积分采用梯形公式近似有 用来代替就得到 (2.4)y0=yx0 (2.4)称为梯形公式(IV) 用公式做计算显示Euler公式由yn可直接计算出yn+1,但是,对于(2.3)、(2.4)是隐式公式,不能由直接计算出,而是要解方程,一般用迭代方法,以(2.3)为例,取,或用显式公式求出作为 , 即 。 当 时,取这样方法称为迭代法下面考虑迭代收敛性: 当收敛;称为迭代收敛条件对于梯形公式(2.4),由于等式右边含有,因而
9、是隐式方法。用它们来求时必须解方程,一般用迭代求解。取,迭代公式为同样,当时,取;仿隐式Euler方法推导,梯形公式迭代收敛条件为例1 已知 取 计算到解:用Euler方法把 代入有 梯形方法 把代入有 由于是线性方程,可把隐式方法显式化,因此不用进行迭代Euler方法与梯形方法计算结果比较:从数值结果看出,梯形公式比Euler公式好,但一般梯形公式需要进行迭代,因此做一步费时;对于“计算效率”的比较,应从精度,耗机时等方面进行比较,还应从实际对精度要求来考虑。(V)予估一校正方法为了消除迭代,出现了予估一校正的方法,先给出粗糙估计,然后再给出稍精确的求解,这是微分方程数值解常用方法。改进Eu
10、ler方法 予估 校正或写成 (2.5)这公式称为改进的Euler公式,其精度比Euler公式好,比梯形公式稍差些,但是,它是显示方法。例2 用Euler方法和改进Euler方法解初值问题。 步长取 ;由0计算到3。方程准确解是 解:Euler方法 yn+1=yn+hxn-yn2=1-h2yn+h2xn 改进Euler方法 yn+1=yn+h2xn-yn2+12(xn+1-(yn+hxn-yn2)=1-h2+h28yn+h2-h28xn+h24可以看出改进Euler方法较为精确(VI)显式单步方法基本概念(局部截断误差,主局部截断误差,阶)已经引入了四种方法;Euler方法,隐式Euler方法
11、,梯形方法,以及改进Euler方法,其中二个为隐式方法,Euler方法与改进Euler方法为显式方法。下面重点讨论显式方法.yn+1=yn+h2fxn,yn+fxn+1,yn+hfxn,yn 其中,一般显式方法可以统一写成如下形式 (2.6)Euler方法 是典型单步方法,从开始进行计算, 在处微分方程初值问题 的精确解。 与之差 称为方法在处的整体截断误差,当然这与整个计算中每步情况有关,但一般求得较为困难,因此先考虑一步的误差。1 局部截断误差定义2.1 (2.7)称为显式单步法(2.6)在处的局部截断误差,其中是微分方程初值问题在处的精确解。显然对于一般单步方法 如果每步是精确的,即有
12、那么 即 为是精确值,用显式单步法计算一步的误差因此称为局部截断误差。关于误差仅讨论截断误差,舍入误差暂不讨论。2 单步法的阶 定义2.2 设y(x)是(2.1)的精确解,(2.6)为显示单步法,若 y(x+h)-y(x)-h(x,y(x);h)=(hp+1) (2.8) 则称整数p是单步法(2.6)的阶,称(2.6)是p 阶方法,且局部截断误差 Tn+1=(hp+1)3 主局部截断误差 定义2.3 若(2.6)是p阶方法,其局部截断误差 Tn+1=yxn+1-yxn-(xn,yxn;h) =xn,yxnhp+1+(hp+2) (2.9)则称xn,yxnhp+1是单步法(2.6)的主局部截断误
13、差或称局部截断误差主项。例3 写出显式Euler方法的局部截断误差,并求阶,主局部截断误差解: 按定义: T n+1 =yxn+yxnh+12!yxnh2+ -yxn-hy(xn) =12!yxnh2+h3=(h2)显示Euler方法是一阶方法,主局部截断误差是12!yxnh2同理可得隐式Euler方法也是一阶方法,主局部截断误差是-12!yxnh2梯形方法 梯形方法是二阶方法,主局部截断误差是-h312yxn 讨论改进Euler方法的局部截断误差 要用到二元Taylor展开, 注意到:, 可以看出 此方法是二阶的3 Rung-Kutta方法下面我们要解决的问题是如何构造高阶单步法?(I)用T
14、aylor展开构造高阶方法利用方程 把这些导数代入的有限项展式,就得到Taylor展开方法。例如 Euler公式Euler方法是1阶方法,而上面是2阶方法。 这是三阶方法。 还可以类似推导下去,得到高阶方法,但是要计算很多偏导数。特别是f复杂时,这方法不实用。我们希望仍采用这样思想,又不计算导数而构造出高阶方法,由此导出Runge-kutta方法。(II)Runge-Kutta方法Runge首先提出间接采用Taylor展开方法,即用在几个节点上函数值的线性组合来代替f的导数,然后按Taylor展开,确定其系数,以期提高方法精度,这样既避免f的导数计算,同时又保证了精度。一 RK方法的一般形式
15、(3.1)其中为待定权因子,R为使用的f值的个数,表示如下: (3.2) 具体写出有: (3.3) 其中参数为提高精度创造了条件;用R个称为R级R-K方法。二 构造RK方法例1 取R=1 此时只有一个K1并有 (3.4)利用Taylor公式来确定C1设为微方程初值问题的光滑解。Tn+1=yxn+1-yxn-hC1fxn,yxn =yxn+hyn+h22!yxn+-yxn-hC1yxn =h1-C1yxn+h22!yxn+ =h2 比较得 是显示Euler公式,局部截断误差为 下面考虑则 (3.5)仍假定,对在处作Taylor展开把代入下式, 有Tn+1=yxn+1-yxn-hC1fxn,yxn
16、+C2f(xn+a2h,yxn+hb21f(xn,y(xn)=yxn+hyxn+h22!yxn+h33!yxn+ -hC1yxn+C2(fxn,yxn+a2hfx(xn,yxn)+hb21fxn,yxnfyxn,yxn+=h1-C1-C2yxn+h212yxn-C2a2fxxn,yxn-C2b21fxn,yxnfy(xn,yxn)+(h3)=(h3)得出 (3.6) 有四个未知数,但仅有三个方程。把四个参数满足(3.6)的一组方法叫做二阶RK方法。取为自由参数, ,取 ,得 (3.7) 中点公式取 ,得 改进Euler公式 (3.8) Heun二阶公式。对于三级方法 (3.9)利用Taylor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 微分方程 数值
链接地址:https://www.31doc.com/p-2747096.html