§5.5 线性多步法解析
- 格式:ppt
- 大小:4.46 MB
- 文档页数:27
多步法应用于常微分方程的数值解。
从概念上讲,数值方法从初始点开始,然后在时间上向前迈出一小步,以找到下一个求解点。
该过程的下一步是绘制解决方案。
一步法(例如Euler方法)仅引用前一点及其导数来确定当前值。
诸如Runge Kutta之类的方法采取一些中间步骤(例如,半个步骤)来获得高阶方法,但是在进行第二步之前会丢弃所有先前的信息。
多步尝试通过保留和使用先前步骤中的信息而不是丢弃信息来提高效率。
因此,多步法涉及前几个要点和导数。
在多步的情况下,使用先前点和导数的线性组合。
简单的介绍多步法应用于常微分方程的数值解。
从概念上讲,数值方法从初始点开始,然后在时间上向前迈出一小步,以找到下一个求解点。
该过程的下一步是绘制解决方案。
一步法(例如Euler方法)仅引用前一点及其导数来确定当前值。
诸如Runge Kutta之类的方法采取一些中间步骤(例如,半个步骤)来获得高阶方法,但是在进行第二步之前会丢弃所有先前的信息。
多步尝试通过保留和使用先前步骤中的信息而不是丢弃信息来提高效率。
因此,多步法涉及前几个要点和导数。
在多步的情况下,使用先前点和导数的线性组合。
[1-3]具体定义常微分方程的数值方法近似地解决了形式初值问题结果是离散时间的Ti的Y(T)的近似值其中h是时间步长,而I是整数。
Multistep使用上一步中的信息来计算下一个值。
特别地,多步法使用Yi和f(Ti,Yi)来计算所需当前步长的Y值。
因此,多步方法是以下形式的方法:确定系数AI和Bi。
该方法的设计者选择系数平衡了对实际解决方案的需求,以便获得一种易于使用的方法。
通常,许多系数为零以简化该方法。
显式和隐式方法可以区分。
如果Bi = 0,则该方法称为“显式”,因为它可以直接计算yn + s。
如果Bi≠0,则该方法称为“隐式”,因为YN + s的值取决于f(TN + s,yn + s),并且必须为yn + s。
迭代方法(例如牛顿法)通常用于求解隐式公式。
线性多步法多步法用于普通微分方程的数值解。
从概念上讲,一个数值方法从—个初始点开始,然后在时间上向前迈出一小步,找到下一个解点。
该过程以后的步骤来绘制解决方案。
单步方法(如欧拉方法)只指—个前一点及其导数来确定当前值。
诸如Runge-Kutta的方法采取—些中间步骤(例如,半步)来获得更高阶的方法,但是在进行第二步之前丢弃所有先前的信息。
多步法尝试通过保留和使用先前步骤的信息而不是丢弃它来提高效率。
因此,多步法是指前几个点和导数值。
在多步法的情况下,使用先前点和导数值的线性组合。
通常使用三类多步法:Adams-Bashforth方法,Adams-Moulton 方法和后向微分方程(BDFXAdams・Bashforth 方法Adams-Bashforth方法是很明确的方法。
系数是as-l = -l ,其他均为0 ,而bj被选择为使得方法具有顺序s (这独特地确定方法XAdams-Moulton 方法Adams-Moulton方法类似于Adams-Bashforth方法,因为它们还具有as・l=・l具他均为0o再次选择b系数以获得可能的最高级。
然而Adams-Moulton方法是隐式方法。
通过删除bs = 0的限制,Adams-Moulton 方法可以达到s + 1 ,而Adams-Bashforth 方法只有s o6向后分化公式(BDF)BDF方法是使用bs-l=……=bO=O的隐式方法,并选择其他系数使得该方法达到最大。
这些方法特别用于解决刚度的微分方程。
7相关知识第一和第二达尔斯基:这两个结果由达尔斯基证明,是线性多步法收敛顺序和A稳定性的重要界限。
达尔奎斯特(Dahlquist)( 1956年)证明了第一个达尔斯奎斯(Dahlquist)的障碍,第二个在达尔奎斯特(1963 )证明。
第一达尔斯基如果q是奇数,则q稳定和线性q步多步法不能达到大于q + 1的收敛阶数,如果q是偶数,则不能达到q + 2。
常微分方程数值解的多步法。
从概念上讲,一种数值方法是从一个初始点开始的,然后在时间上向前迈出一小步,以找到下一个求解点。
以下过程绘制解决方案。
单步方法(例如欧拉方法)仅参考前一点及其导数来确定当前值。
诸如Runge-Kutta之类的方法采取了一些中间步骤(例如,半步骤)来获得高阶方法,但是在进行第二步之前会丢弃所有先前的信息。
多步方法试图通过保留和使用先前步骤的信息而不是丢弃信息来提高效率。
因此,多步法是指前几个点和导数值。
在多步法的情况下,使用先前点和导数值的线性组合。
常微分方程数值解的多步法。
从概念上讲,一种数值方法是从一个初始点开始的,然后在时间上向前迈出一小步,以找到下一个求解点。
以下过程绘制解决方案。
单步方法(例如欧拉方法)仅参考前一点及其导数来确定当前值。
诸如Runge-Kutta之类的方法采取了一些中间步骤(例如,半步骤)来获得高阶方法,但是在进行第二步之前会丢弃所有先前的信息。
多步方法试图通过保留和使用先前步骤的信息而不是丢弃信息来提高效率。
因此,多步法是指前几个点和导数值。
在多步法的情况下,使用先前点和导数值的线性组合。
具体定义常微分方程的数值方法近似地解决了形式初值的问题结果是离散时间ti处y(t)的近似值:其中h是时间步长,而i是整数。
多步方法使用上一个S步骤的信息来计算下一个值。
特别地,多步方法使用yi和f(ti,yi)来计算当前步骤所需的y值。
因此,多步方法是一种具有以下形式的方法:确定系数ai和bi的方法。
该方法的设计者选择系数来平衡对实际解决方案的需求,从而获得一种易于使用的方法。
通常,许多系数为零以简化方法。
可以区分显式和隐式方法。
如果bi = 0,则此方法称为“显式”,因为此公式可以直接计算yn + s。
如果bi≠0,则此方法称为“隐式”,因为yn + s的值取决于f(tn + s,yn + s),并且必须为yn + s。
迭代方法(例如牛顿法)通常用于求解隐式公式。
5 结论 (54)致谢 (55)参考文献 (56)附录 (59)1 绪论解常微分方程在很多学科领域内都有着重要的应用,自动控制、各种电子学装置的设计、弹道的计算、飞机和导弹飞行的稳定性的研究、化学反应过程稳定性的研究等。
这些问题都可以化为求常微分方程的解,或者化为研究解的性质的问题。
但大部分的常微分方程其真解通常难以通过解析的方法来获得,至今有许多类型的微分方程还不能给出解的解析表达式,一般只能用数值的方法进行计算。
有关这一问题的研究早在十八世纪就已经开始了,当前计算机的发展更是为常微分方程的应用及理论研究提供了非常有力的工具,从而能使人们认识解的种种性质及其数值特征。
应该说,应用常微分方程理论已经取得了很大的成就,但是,它的现有理论也还远远不能满足需要,还有待于进一步的发展,使这门学科的理论更加完善。
对于常微分方程初值问题的数值计算方法,许多学者已经做了大量的工作。
Dahlquist[1],J.C. Butcher[2],P. Henrici[3],和C.W. Gear[4]对于定义在有限区间上的情形作了比较详细的讨论,对于无界区间上的情形没有涉及。
但是文献[5] [6] [7]讨论了无界区间上常微分方程初值问题数值解的稳定性和收敛性。
本章主要介绍了常微分方程初值问题的研究状况以及本文将要讨论的问题。
1768年,Euler提出了关于常微分方程初值问题的方法,1840年,Cauchy第一次对初值问题进行了仔细的分析,早期的常微分方程数值解的问题来源于天体力学。
在1846年,当Adams还是一个学生的时候,和Le Verrier一起根据天王星轨道中出现的已知位置,预测了它下一次出现的位置。
1883年,Adams提出了Adams-Bashforth和Adams-Moulton方法。
Runge、Heun和Kutta提出Runge-Kutta 方法。
二十世纪五十年代,Dahlquist[8][9]建立了常微分方程数值解法的稳定性理论,线性多步法是常微分方程初值问题的一种数值方法。
第4章 线性多步法4.1 线性多步法的一般公式前面给出了求解初值问题(1.2.1)的单步法,其特点是计算 时只用到的值,此时 的值均已算出.如果在计算 时除用 的值外,还用到的值,这就是多步法.若记,h 为步长,,则线性多步法可表示为(4.1.1)其中为常数,若(即不同时为零),称(4.1.1)为线性k 步法.计算时用到前面已算出的k 个值.当时,(4.1.1)为显式多步方法,当则称(4.1.1)为隐式多步法.隐式方法与梯形方法一样,计算时要用迭代法求.多步法(4.1.1)的局部截断误差定义也与单步法类似.举例来说,对于初值问题'1,y y x =-++(0)1y =,步数k=2时,线性多步法表示为101111011(), 1,2,n n n n n n y y y h f f f n ααβββ+--+-=++++=当时,格式为显示的:10110111[(1)(1], 1,2,n n n n n n n y y y h y x y x n ααββ+---=++-+++-++=,而时,格式为隐式的:10111110111[(1)(1)(1], 1,2,n n n n n n n n n y y y h y x y x y x n ααβββ+--++--=++-+++-+++-++=。
定义4.1 设y(x)是初值问题(1.2.1)的精确解,线性多步法(4.1.1)在处的局部截断误差定义为(4.1.2)若,则称线性多步法(4.1.1)是p阶的.如果我们希望得到的多步法是p阶的,则可利用Taylor公式展开,将在处展开到阶,它可表示为(4.1.3)注意,(4.1.2)式按Taylor展开可得经整理比较系数可得(4.1.4)若线性多步法(4.1.1)为p阶,则可令于是得局部截断误差(4.1.5)右端第一项称为局部截断误差主项.称为误差常数.要使多步法(4.1.1)逼近初值问题(1.2.1),方法的阶p≥1,当p=1时,则,由(4.1.4)得(4.1.6)称为相容性条件.公式(4.1.1)当k=1时即为单步法,若,由(4.1.6)则得式(4.1.1)就是,即为Euler法.此时,方法为p=1阶.若,由得,为确定及,必须令,由(4.1.4)得及此时(4.1.1)就是即为梯形法.由故p=2,方法是二阶的,与3.1节中给出的结果相同.实际上,当k给定后,则可利用(4.1.4)求出公式(4.1.1)中的系数及,并求得的表达式(4.1.5).4.2 Adams显式与隐式方法形如(4.2.1)的k步法称为 Adams 方法,当时为 Adams 显式方法,当时,称为Adams隐式方法.对初值问题(1.2.1)的方程两端从到积分得显然只要对右端的积分用插值求积公式,求积节点取为即可推出形如(4.2.1)的多步法,但这里我们仍采用Taylor展开的方法直接确定(4.2.1)的系数.对比(4.1.1)可知,此时,只要确定即可.现在若k=4且,即为4步的Adams显式方法其中为待定参数,若直接用(4.1.4),可知此时自然成立,再令可得解此方程组得055 24β=,15924β=-,23724β=,3924β=-.由此得到于是得到四阶Adams显式方法及其余项为(4.2.2)(4.2.3)若,则可得到p=4的Adams隐式公式,则k=3并令,由(4.1.4)可得解得,而,于是得到四阶Adams隐式方法及余项为(4.2.4)(4.2.5)一般情形,k步Adams显式方法是k阶的,k=1即为Euler法,k=2为k=3时,.k步隐式方法是(k+1)阶公式,k=1为梯形法,k=2为三阶隐式Adams公式k步的Adams方法计算时必须先用其他方法求出前面k个初值才能按给定公式算出后面各点的值,它每步只需计算一个新的f值,计算量少,但改变步长时前面的也要跟着重算,不如单步法简便.例4.1 用四阶显式Adams方法及四阶隐式Adams方法解初值问题,步长h=0.1用到的初始值由精确解计算得到.解本题直接由公式(4.2.2)及(4.2.4)计算得到.对于显式方法,将直接代入式(4.2.2)得到其中.对于隐式方法,由式(4.2.4)可得到直接求出,而不用迭代,得到计算结果如表所示.表4-1 Adams方法和Adams隐式方法的数值解与精确解比较4.3 Adams预测-校正方法上述给出的Adams显式方法计算简单,但精度比隐式方法差,而隐式方法由于每步要做迭代,计算不方便.为了避免迭代,通常可将同阶的显式Adams方法与隐式Adams方法结合,组成预测-校正方法.以四阶方法为例,可用显式方法(4.2.2)计算初始近似,这个步骤称为预测(Predictor),以P表示,接着计算f值(Evaluation),,这个步骤用E表示,然后用隐式公式(4.2.4)计算,称为校正(Corrector),以C表示,最后再计算,为下一步计算做准备.整个算法如下:(4.3.1)公式(4.3.1)称为四阶Adams预测-校正方法(PECE).其matlab程序如下function y = DEYCJZ_adms(f, h,a,b,y0,varvec,type)format long;N = (b-a)/h;y = zeros(N+1,1);x = a:h:b;y(1) = y0;y(2) = y0+h*Funval(f,varvec,[x(1) y(1)]);y(3) = y(2)+h*Funval(f,varvec,[x(2) y(2)]);y(4) = y(3)+h*Funval(f,varvec,[x(3) y(3)]);for i=5:N+1v1 = Funval(f,varvec,[x(i-4) y(i-4)]);v2 = Funval(f,varvec,[x(i-3) y(i-3)]);v3 = Funval(f,varvec,[x(i-2) y(i-2)]);v4 = Funval(f,varvec,[x(i-1) y(i-1)]);t = y(i-1) + h*(55*v4 - 59*v3 + 37*v2 - 9*v1)/24;ft = Funval(f,varvec,[x(i) t]);y(i) = y(i-1)+h*(9*ft+19*v4-5*v3+v2)/24;endformat short;问题1 (4.3.1)中的第四步在程序中那一行实现了?利用(4.2.2)和(4.2.4)的局部截断误差(4.2.3)和(4.2.5)可对预测-校正方法(4.3.1)进行修改,在(4.3.1)中的步骤P 有5(5)11251()()720p n n n y x y h y x ++-≈ 720问题2 这个约等式是怎么得来的?什么方法? 对于步骤C 有5(5)1119()720p n n n y y h y x ++-≈两式相减可得 5(5)11720()()270pn n n h y x y y ++≈--于是有若用代替上式,并令显然比更好,但注意到的表达式中是未知的,因此改为下面给出修正的预测-校正格式(PMECME).(4.3.2)经过修正后的PMECME 格式比原来PECE 格式提高一阶.问题3 试着编出该程序!!4.4 Milne方法与Hamming方法与Adams显式方法不同的另一类四阶显式方法的计算公式形如(4.4.1)这里为待定常数,此公式也是k=4步方法,即计算时要用到4个值.为了确定,当然可以利用公式(4.2.1)直接算出,但下面我们直接利用Taylor展开式确定,,使它的阶尽量高.方法(4.4.1)的局部截断误差为将它在点展成Taylor级数,得要使公式的阶尽量高,要令前3项系数为0.即代入公式,的系数为0,故解得,(4.4.2)于是得四阶方法(4.4.3)称为Milne 公式,它的局部截断误差为(4.4.2).与(4.4.3)配对的隐式方法为k=3的多步法,它的一般形式可表示为要求公式的阶p=4,可直接用(4.2.1),并令,可得(4.4.4)若令,可解出,于是得到下列四阶方法(4.4.5)称为Simpson 公式,它的局部截断误差为(4.4.6)用Simpson 公式与Milne 公式(4.4.3)相匹配,用(4.4.3)做预测,(4.4.5)做校正,由于(4.4.5)的稳定性较差,因此通常较少使用.为了改善稳定性,可重新选择四阶的隐式公式,Hamming 通过试验,发现在(4.4.4)中若令,得到的公式稳定性较好,此时(4.4.4)的解为,于是得四阶多步法(4.4.7)称为Hamming 公式,它的局部截断误差为(4.4.8)用Milne 公式(4.4.3)与Hamming 公式(4.4.7)相匹配,并利用截断误差公式(4.4.2)与(4.4.8)改进计算结果.131212114(22)31[93(2)]8n n n n n n n n n n n y y f f f y y y h f f f +---+-+-⎧=+-+⎪⎪⎨⎪=-++-⎪⎩(4.4.7’)该算法称为Hamming预测-校正法。