常微分方程课程设计指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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),可知此时
自然成立,再令可得
解此方程组得
.
由此得到
于是得到四阶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;