第五讲 第4章 线性多步法(续)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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

β=

1

59

24

β=-

2

37

24

β=

3

9

24

β=-

.

由此得到

于是得到四阶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+1

v1 = 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;

end

format short;

问题1 (4.3.1)中的第四步在程序中那一行实现了?

相关文档
最新文档