大连理工大学 矩阵与数值分析 第2节线性多步法20160306
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当取 ϕ = f (tn , un ) 时,为Euler法;
当取 ϕ = f (tn+1 ) , un+1 时,为隐式Euler法;
当取 ϕ
=
h 2
⎡⎣
f
( tn ,
un
)+
f
(tn+1,
) un+1 ⎤⎦
时,为梯形法。
线性多步法的一般公式为:
k
k
∑ ∑ α jun+ j = h β j f n+ j , α k ≠ 0
(1.2.1)
j=0 k
j=0
或
∑ ⎣⎡α jun+ j − hβ j fn+ j ⎦⎤ = 0 (数值解满足的差分方程)
j=0
其中 fn+ j = f (tn+ j ,un+ j ), α j , β j 是常数,αk ≠ 0 , α 0 和 β0不同时为0。
按(1.2.1)计算un+k时要用到前面k个已知值 un,un+1,L,un+k−1
来近似替代(1.2.2)中的被积函数,这里{ti}为等距的插值节点列,
h=ti+1-ti,而插值基函数为
( ) ∏ ( () () ) li
t
=
= k t − tn− j
j=0 tn−i − tn− j
j≠i
ω ω′ tn−i
t t − tn−i
ω(t) = (t − tn )L(t − tn−k )
故此多步法称为Adams外插法。 Adams外插公式的系数表
i
0
1
2
3
4
b0i
1
2b1i
3
-1
12b2i
23
-16
5
24b3i
55
-59
37
-9
720b4i 1901 -2774 2616 -1274 251
k
∑ ( ) un+1 = un + h bk i f tn−i , un−i i=0
Adams外插公式中,几种常用的差分格式:
因此称(1.2.1)为多步法 或 k-步法。
又因为(1.2.1)关于 un+ j, f n+ j 是线性的,所以称为线性多步法。
为使多步法的计算能够进行,除给定的初值u0 外,还要
知道附加初值u1,u2,…,uk-1 ,这可用其它方法计算。 若 βk = 0
则称(1.2.1)是显式的; 若 βk ≠ 0 则方法(1.2.1)是隐式的。
积分插值法和待定函数法(基于Taylor展开)。
2.1积分插值法
仍将(1.1.1)1于区间[tn,tn+1]上写成积分形式
∫ ( ) u (tn+1 ) = u (tn ) +
f tn+1
tn
t, u(t)
dt
我们用k次Lagrange插值多项式
(1.2.2)
∑ Ln,k (t ) = k f (tn−i , u(tn−i )) li (t ) i=0
[ ] un+1
= un
+h
24
55
f (tn , un ) − 59 f (tn−1, un−1 ) + 37 f
( ) ( ) tn−2 , un−2 − 9 f tn−3 , un−3
它们分别为1阶、2阶、3阶、4阶差分法(格式)。
k =3
Adams外插公式的余项为:
∫ ( ( ) ( ( ))) ( ) ∫ ∏ ξ ξ ( ) f Rn,k =
k
∑ Lk [u (t); h] = α j j=0
− hβ j
将下式按h的同次幂合并同类项,
∑k
αj
j=0
u(t)
+
jh u′(t) +
1!
( jh)2 2!
u′′(t)
+
( jh)3 3!
u(3) (t)
+L
∑k
−
β jh u′(t)
+ jh2u′′(t)+
j2h32 u′′′(t) +
j3h34 u(4) (t) +L
3)内插法是隐式格式(稳定性好),外插法是 显式格式。
2.2 待定系数法(基于Taylor展开式的求解公式) 用数值积分法只能构造一类特殊的多步法,其系数 一般只满足:
ak=1,ak-m=-1 al=0,当l≠k-m, k。
本节我们将基于Taylor展开式来构造出更一般的求 解公式。
2.待定系数法
=
1 h
tn+1 tn
li
t
dt
dt tn+1 k t − tn− j
tn
j=0 j≠i
tn−i
− tn− j
1 k τ − j dt
0
j=0 j≠i
j−i
且 t = tn +τ h , τ ∈[0, 1]。注:t − tn− j = tn +τ h − tn + j h = (τ + j ) h
注意,被插值点t∈[tn,tn+1]不包含在插值节点的决定区间[tn-k,tn]
f (t, u (t )) = Ln,k (t ) + rn,k (t )
(1.2.3)
其中rn,k(t)为插值余项。 代到(1.2.2)式中得
∫ ( ) ∫ ( ) ( ) ( ) u tn+1
= u tn
+ L tn+1
tn
n,k
t
dt +
r tn+1
tn n,k
t
dt
(1.2.4)
舍去余项
∫ ( ) Rn,k =
i = n, n −1, L, n − k
插值节点的不同取法就导致不同的多步法。
(1)Adams外插法(显式多步法)
取k+1个节点tn-k,…,tn-1,tn及函数值f(tn-i,u(tn-i)) i=k,…,1,0
构造区间[tn,tn+1]上逼近f(t,u(t))的k次Lagrange插值多项式Ln,k(t)
u′(t)
+
(
jh)2 2!
u′′(t)
+
(
jh)3 3!
u(3) (t)
+L
∑∞
u′(t + jh) =
l =1
( (
)jh l−1 l −1)!
u
(l
)
(t
)
= u′(t) +
jh u′′(t) + 1!
(
jh)2 2!
u(3) (t) +
(
jh)3 3!
u(4) (t) + L
将上式代入(1.2.32)式,得
ξ 1
k+2
!
f tn+1
tn
⎛ ⎜⎝
k +1 i=0
t
− tn−i+1
⎞ ⎟⎠
(k +2)
t ,u ξ
t
dt
( ( )) ( ) ( ) ( ) ∫ ∏ =
hk +3
(k + 2)
!
0
k +1
(τ
+i)
−1
i=0
f (k+2)
ξ
τ
,u ξ
τ
dτ = O hk+3
Adams外插法和Adams内插法的几点区别:
第1章 常微分方程初值问题数值解法
§2 线性多步法
§2 线性多步法
前节所讨论的方法如Euler方法、改进Euler方法都称为单步法 (单步长法)。 因为它们只利用前一个点的信息来计算下一个点,
即,只用初始点u0计算u1; 一般说来,只用un来计算un+1。
线性单步法一般说来,精度是较低的。 为提高精度,我们考虑
取k+2个节点tn-k ,…,tn,tn+1及函数值 f(tn-i+1,u(tn-i+1))i=0,…,k+1
构造区间[tn-k,tn+1]上逼近 f(t,u(t))的k+1次L-插值多项式Ln,k+1(t)
( ) ( ) f t, u (t ) ( ) = Ln,k+1 t + rn,k+1 t
其中rn,k+1(t)为插值余项。 同理即得
k +1
∑ ( ) un+1 = un + h bk+1i f tn−i+1 , un−i+1 i=0
注意,被插值点t∈[tn,tn+1]包含在插值节点的决定区间[tn-k,tn+1] 故此多步法称为Adams内插法。
Adams内插公式的系数表
i (bk+1,i )
0
1
2
3
4
b0i
1
2b1i
1
1
12b2i
un+1 = un + h f (tn , un )
k =0
un+1
= un
+
h [3
2
f (tn , un ) −
] ( ) f tn−1, un−1
k =1
un+1
=
un
+
h [23
12
f
(tn , un ) −16 f
( ) tn−1, un−1 + 5 f
( )] tn−2 , un−2
k =2
令
Lk [u(t);h] =
k
∑
⎡⎣α ju (t
+
jh) − hβ ju′(t
+
jh)⎤⎦
(1.2.32)
j=0
设u(t)是初值问题的解,将u(t+jh)和 u′(t + jh) 在点t处进行
Taylor展开,
∞
u(t + jh) = ∑ l=0
(
jh)l
l!
u(l) (t)
=
u(t)
+
jh 1!
5
8
-1
24b3i
9
19
-5
1
720b4i 251 646 -264 106
-19
k +1
∑ ( ) un+1 = un + h bk+1i f tn−i+1 , un−i+1 i=0
Adams内插公式中,几种常用的差分格式:
( ) un+1 = un + h f tn+1, un+1
k = −1
其中
cl =
(1.2.33)
l = 0,1,L, p ,L
即有
⎧ c0 = α0 + α1 + L + αk
( ) ( ) L L L ⎪
⎪ ⎪
c1
= α1
+
2α 2
+L+
kα k
− (β0
+ β1
+L+ βk )
(1.2.34)
其中
k +1
∑ ( ) u = u + n+1
n h bk +1i f tn−i+1, un−i+1
i=0
=∫ ∏ bk+1i
0 k+1 τ + j dt
−1
j=0 j≠i
j−i
且 t = tn+1 +τ h , τ ∈[−1, 0]。
注: t − tn− j+1 = tn+1 +τ h − tn + ( j −1) h = (τ + j ) h
un+1 = un + hf (tn,un )
线性二步法Milne公式:
( ) un+2
=
un
+
h 3
fn+2 + 4 fn+1 + fn
单步法一般可写成:
( ) un+1 =un +hϕ tn , un , tn+1 , un+1; h
n = 0, 1, 2, L N −1
其中 ϕ 是依赖于右端的函数 f(t,u)。
(tn, un ) − 5 f
( ) tn−1, un−1 +
f
( ) tn−2 , un−2 ⎤⎦
它们分别为1阶、2阶、3阶、4阶差分法(格式)。
k =2
Adams外插公式的余项为:
∫ ( ) ∫ ∏ ( ( ) ( ( ))) ( ) Rn,k+1 =
r t tn+1
tn n, k +1
dt =
构造多步法。 所谓“多步法”,即当计算出若干个点之后,用几 个已计算出的点来计算下一个点。 在计算公式中的一个主要特征 就是, un+1不仅依赖于un ,而且也直接依赖于un-1,un-2,…等已经算 出的值。 它可以大大提高截断误差的阶。
在前面,我们介绍了基于数值积分的特殊的单步法、二步法。
显式单步法Euler公式:
r tn+1
tn n,k
t
dt =
1 k +1
!
tn tn
+1
⎜⎜⎝⎛
k i=0
t − tn−i ⎟⎟⎠⎞
(k +1)
t ,u
t
dt
( ( ) ( ( ))) ( ) ∫ ∏ f =
(
hk+2
k +1)
!
1 k (τ + i)
0 i=0
(k +1)
ξ
τ
,u
ξ
τ
dτ = O hk+2
(1)Adams内插法(隐式多步法)
j=0
1!
2!
3!
得
+
jα j −
h
∑k
+
j=0
j2 2!
α
j−
jβ
j
h2
+L
∑ ∑ ∑ ( ) ∑ ⎛ k
=⎜
wk.baidu.com
⎞
αj ⎟ u(t)
+
∞
⎝ j=0 ⎠
l =1
1k l! j=0
jlα j −
1k l −1 ! j=0
jl−1β j
u(l) (t) hl
记为
( ) Lk [u(t); h] = c0u(t) + c1h u′(t) + c2h2u′′(t) + L + cph pu( p) (t) + cp+1O h p+1
un+1
= un
+
h 2
⎡⎣ f
(tn, un ) +
f
( ) tn+1, un+1 ⎤⎦
k =0
un+1 = un +
h 12
⎡⎣5
f
( ) tn+1, un+1 + 8 f
(tn, un ) −
f
(tn−1,
) un−1 ⎤⎦
k =1
un+1
= un
+
h 24
⎡⎣9
f
( ) tn+1, un+1 +19 f
r tn+1
tn n,k
t
dt
并用uj代替u(tj)即得
∑ (∫ ) k
un+1 = un + i=0
( ) ( ) l tn+1
tn
i
t
dt ⋅ f
tn−i , un−i
k
∑ = un + h ( ) bk i f tn−i , un−i
i=0
(1.2.5) (1.2.6)
其中
∫ ( ) =∫ ∏ =∫ ∏ bki
1)系数小,从而计算中内插法的舍入误差的影响 比外插法要小;
2)在同一个误差精度下,内插法比外插法可少算 一个已知量值。 这是由于在计算un+1时,内插法和外 插法所用的已知值相同,为k+1: un,un-1,…,un-k, 但是内插法的局部截断误差为O(hk+3), 外插法的局部 截断误差为O(hk+2)。
例如,一般线性二步法可写成:
( ) α2un+2 + α1un+1 + α0un = h β2 fn+2 + β1 fn+1 + β0 fn
当确定 α0
= −1, α1 =0,
α2
=1,
β0
=
β2
=
1 3
,
β1
=
4 3
时, 就是Miline法。
构造线性多步法有许多不同方式,我们在这里主要介绍两类方法: