数值模拟导论 ——第十四讲
多步法 Ⅱ
雅可比 ·怀特
合作者 Deepak Ramaswamy,
MichalRewienski, and Karen Veroy
概要
多步法的小时间步问题
回顾局部切断误差最小化
一个不收敛的实例
稳定 +连续导出收敛
考察大时间步问题
两个时间刻度实例的绝对稳定性
振荡器
SMA-HPC ?2003 MIT
一般表示法
非线性差分方程 :
k步多步法 :
() () ()
,
d
xt f xt ut
dt
=
()
()
00
??
,
kk
lj lj
jjlj
ax t f x utβ
??
?
==
=?
∑∑
多步系数
基本方程
多步法
离散点的解
时间间断
SMA-HPC ?2003 MIT
多步法
简单问题分析
() () ()
0
, 0 C
d
vt vt v v
dt
λλ= =∈
00
??
kk
lj lj
jj
ax t vβλ
? ?
==
=?
∑∑
Cλ∈
标量ODE:
多步法标量公式:
对于所有
都必须考虑λ的值
SMA-HPC ?2003 MIT
多步法
收敛分析
收敛定义
( )
0,
?
0 max 0
l
T
l
t
tvvt
??
∈
??
?
??
? →??→当时
定义:对于给定的任何初始条件,用多步法
求解 [0,T]上的初值问题是收敛的。
SMA-HPC ?2003 MIT
多步法
收敛分析
收敛的两个条件
1)局部条件: “一步法 ”误差较小
(连续性)
可以用泰勒展开式证明
2)全局条件:单步误差不会快速增加
(稳定性)
多步法( K>1)需要详细分析
SMA-HPC ?2003 MIT
多步法
收敛分析
全局误差等式
00
??
0
kk
lj lj
jj
av t vβλ
??
==
??=
∑∑
() ()
00
?
kk
l
jlj j lj
jj
d
avt t vt e
dt
β
??
==
??=
∑∑
( )
?
ll
l
E vt v≡ ?
( ) ( ) ( )
1
00 11
ll lkl
kk
atEatE atEeλβ λβ λβ
??
? ? + ?? + + ?? = "
多步法公式:
精确解基本上和多步法一致:
全局误差:
差分方程将局部切断误差和全局误差联系起来
局部切断误差( LTE)
SMA-HPC ?2003 MIT
多步法
使得局部切断误差足够小
() ()
1p p
d
vt t vt pt
dt
?
=? =
() ()
d
vt vt
dt
λ=
()
()
()
()
1
00
kj
kj
kk
pp
jj
d
vt
vt
dt
akjt t pkjt eβ
?
?
?
==
? ??? ?? =
∑∑
局部切断误差:
局部切断误差
若
注:不能根据
式推导
() ()
00
kk
l
jlj j lj
jj
d
avt t vt e
dt
β
??
==
??=
∑∑
SMA-HPC ?2003 MIT
多步法
使得局部切断误差足够小
精度约束 k=2实例
() ()
1
00
0
kk
pp
jj
ak j pk jβ
?
==
??
? ??=
??
??
∑∑
0
1
3
4
p
p
p
p
=
=
=
=
0
1
2
0
1
2
1 1 1 0 0 0 0
2 1 0 -1 -1 -1 0
4 1 0 -4 -2 0 0
8 1 0 -12 -3 0 0
16 1 0 -32 -4 0 0
a
a
a
β
β
β
??
????
??
????
??
??
=
??
????
??
??
??
????
??
??
0
i
a =
∑
精度拘束:
对于 k= 2,产生系数的 5x6维矩阵方程
注:总存在
SMA-HPC ?2003 MIT
多步法
使局部切断误差较小
精度约束k=2实例,
生成方法
1
2
0
1
2
1 1 0 0 0 1
1 0 -1 -1 -1 2
1 0 -4 -2 0 4
1 0 -12 -3 0 8
1 0 -32 -4 0 16
a
a
β
β
β
???
? ???
??? ???
?
???
??? ???
=?
??
?
?
??? ???
???
?
? ?????
首先介绍一个规范化的问题,例如
0
1a =
01 2 0 1 2
14 1
1, 0, 1, , ,
333
aaa βββ== =?= = =
5
()Ct?
01 2 0 1 2
1, 4, 5, 0, 4, 2aaa β ββ== =?= = =
4
()Ct?
用两步法求解最小的局部切断误差
满足所有五个精度约束 局部切断误差=
用两步直接法求解最小的局部切断误差
只能满足四个精度 局部切断误差=
SMA-HPC ?2003 MIT
多步法
使局部切断误差较小
前欧拉法,后欧拉法,梯
形捕捉法和 “最 ”直接法的
局部切断误差图
SMA-HPC ?2003 MIT
多步法
使局部切断误差较小
前欧拉法,后欧拉法,梯形捕捉
法和 “最 ”直接法的全局误差图
SMA-HPC ?2003 MIT
多步法
使局部切断误差较小
前欧拉法,后欧拉法,梯形捕捉
法和 “最 ”直接法的全局误差图
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
差分方程
为什么 2步直接法不能收敛?
多步法差分方程
全局误差
我们在使局部切断误差变小的过程中,全局
误差怎么会变得这样大?
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
稳定性定义
( ) ( ) ( )
1
00 11
ll lkl
kk
atEatE atEeλβ λβ λβ
??
? ? + ?? + + ?? = "
()
N
0, 0,
0 max max
ll
TT
tt
T
tEC e
t
?? ??
∈∈
?? ??
??
?? ??
?→ ≤
?
间断独立
多步法差分方程
定义:当
全局误差受持续时间段内局
部切断误差之和的限制 .
时,
多步法是稳定的。
稳定性含义 :
SMA-HPC ?2003 MIT
差分方程的补充
离散和
根的关系
1
01
ll lkl
k
ax ax ax u
??
+++ = "
0
0, , 0
k
xx
?
= = "
0
l
llj
j
xhu
?
=
=
∑
离散和
()
()
1
,
10
1
01
+ +
=0
q
M
Q
l
m
l
qm q
q
k
m
k
k
a
h
a
l
zaz
γ?
?
==
?
↑
=
∑∑
0
"
多个根
方程 的根
给出一个 k阶差分方程初始条件为 0
,
x通过式
和 u联系起来
SMA-HPC ?2003 MIT
差分方程的补充
离散和
边界条件
()
()
( )
,
1
,
10
q
qm
M
Q
lj
m
lj
qm q
qm
R
xlj uγ?
?
?
==
=?
∑∑
1
q
? <
,
m
ax
j
qm j
l
RC u≤
3与独立
( )
1
q
? ε< +
,0
m
ax
l
j
qj
e
RC u
ε
ε
↑
≤
边界不等根
若 ,那么
若
,那么
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
稳定性定理
定理:当且仅当方程
1
01
0
kk
k
az az a
?
+ ++= "
1.数值小于 1
2.数值等于 1,但是不相等
的根为下列两者之一时 ,多步法是稳定的 :
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
( ) ( ) ( )
1
00 11
ll lkl
kk
atEatE atEeλβ λβ λβ
??
? ?+?? ++?? = "
0t? →
( ) ( ) ( )
1
0011
0
ll
kk
atzatz atλβ λβ λβ
?
? ? + ?? + + ?? = "
1 tκ+?
N
0, 0, 0,
()
max max max
lt T
ll l
TT T
ll
tt t
CT
eCe
E Ce e
tTt
κκ?
?? ?? ??
∈∈ ∈
?? ?? ??
?? ?
?? ?? ??
≤≤
??
给定的多步法差分方程
若 ,当时,方程
z数值上小于 1或
z根不同并极限 在
再由差分方程的补充式
的根
(κ >0)内
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
最直接法
01 2 0 1 2
1, 4, 5, 0, 4, 2aaa β ββ== =?= = =
最直接 2步法
“最 ”直接法非常不稳定
SMA-HPC ?2003 MIT
多步法
多步法的稳定性
Dahlquist 首次稳定性界限
对于一个稳定的,直接 k步多法,
可以满足的精度约束的最大值小于或
等于 k(注意由 2k个系数)。对于非直
接法,精度约束在 k为偶数时为 k+ 2,
或 k为奇数时精度约束为 k+ 1。
SMA-HPC ?2003 MIT
多步法
收敛分析
收敛性、稳定性和连续
性的条件
0
tt? <? 0
p
0
p
()
0
1
1
0,
max
p
l
T
l
t
eCt
+
??
∈
??
?
??
?≤?
2
0, 0,
max max
ll
TT
ll
tt
T
EC e
t
?? ??
∈∈
?? ??
??
?? ??
?≤
?
()
0
0,
max
p
l
T
l
t
E CT t
??
∈
??
?
??
≤?
1)局部条件:一步误差较小(连续性)
对于
,精度约束达到 (
必须大于 0)
1)全局条件:一步误差缓慢增加(稳定性)
方程的根在单位圆的内部或在圆上
收敛结论:
SMA-HPC ?2003 MIT
大时间步问题
多步法
采用后欧拉法 ,很容易在动态变化剧烈段 采用
小时间步 ,在动态衰减缓慢时采用大时间步
两个时间常数的回路
问题
SMA-HPC ?2003 MIT
两个时间步常数回路
的前欧拉法
大时间步稳定性
多步法
前欧拉法对小时间步较精确 ,而当时间步增大
时变得不稳定 .
SMA-HPC ?2003 MIT
大时间步稳定性
多步法
标量 ode问题的前欧拉法 ,
后欧拉法和梯形捕捉法
() ()
0
(), 0 C
d
vt vt v v
dt
λλ= =∈
1
?
l
v
+
=
?
l
v +
?
l
tvλ?=
( )
?
1
l
tvλ+?
11tλ+?>
1
?
l
v
+
= ?
l
v +
?
l
tvλ?
()
1
1
??
1
ll
vv
tλ
+
?=
??
()
1
1
1 tλ
<
??
1
?
l
v
+
=
?
l
v +
()
( )
()
11
10.5
?? ? ?
0.5
10.5
l
ll l l
t
tv v v v
t
λ
λ
λ
++
+?
?+?=
??
标量 ODE:
前欧拉法 :
若
后欧拉法 :
若
梯形捕捉法 :
,即使λ <0解会变大
,即使λ >0解会减小
SMA-HPC ?2003 MIT
绝对稳定性的前欧拉
法大时间步区域
大时间步稳定性
多步法
(1 )z tλ= +?
前欧拉法
SMA-HPC ?2003 MIT
电路实例中的前欧拉
法大时间步的稳定性
大时间步稳定性
多步法
0.1, 2.1, 0.1t λ? ==??电路实例
SMA-HPC ?2003 MIT
电路实例中的前欧拉
法大时间步的稳定性
大时间步稳定性
多步法
1.0, 2.1, 0.1t λ? ==??
电路实例
SMA-HPC ?2003 MIT
绝对稳定性的后欧拉
法大时间步区域
大时间步稳定性
多步法
1
(1 )ztλ
?
=??
后欧拉法
SMA-HPC ?2003 MIT
电路实例中的后欧拉
法大时间步的稳定性
大时间步稳定性
多步法
0.1, 2.1, 0.1t λ? ==??
电路实例
SMA-HPC ?2003 MIT
电路实例中的后欧拉
法大时间步的稳定性
大时间步稳定性
多步法
1.0, 2.1, 0.1t λ? ==??
电路实例
SMA-HPC ?2003 MIT
稳定性定义
大时间步的稳定性
多步法
()
0
0
k
kj
jj
j
atzλβ
?
=
?? =
∑
tλ?
多步法的绝对稳定性区域
的根在单位圆内时
A-稳定 :
一种方法若它的绝对稳定性区域包含整
个复杂平面的左上角 ,则为 A-稳定 .
Dahlquist的第二稳定性界限 :
收敛阶大于 2时不存在 A-稳定多步法 , 且
的值当方程
梯形法最精确 .
SMA-HPC ?2003 MIT
振动杆和振动块问题
数值试验
多步法
为什么前欧拉法振幅增加 ,后欧拉法衰减 ,梯
形法保持振幅 ?
SMA-HPC ?2003 MIT
前欧拉法大时间步振
动实例
大时间步稳定性
多步法
(1 )z tλ= +?
前欧拉法
SMA-HPC ?2003 MIT
后欧拉法大时间步实例
大时间步稳定性
多步法
1
(1 )ztλ
?
=??
后欧拉法
SMA-HPC ?2003 MIT
梯形法大时间步振动
实例
大时间步稳定性
多步法
(1 0.5 )
(1 0.5 )
t
z
t
λ
λ
+ ?
=
??
梯形法
SMA-HPC ?2003 MIT
大时间步问题
多步法
两个时间常数的稳定性问题 (电路中 )
前欧拉法 :稳定 ,不精确 ,时间步大小有限制 .
振动问题
前欧拉法产生一个不稳定的差分方程而
不考虑时间步大小 .
梯形捕捉法时最精确的 A-稳定 m步法 .
后欧拉法时 A-稳定 ,任何时间步都适合
梯形法映射虚轴 .
后欧拉法产生一个稳定的 (衰减的 )差分方程
而不管时间步大小 .
SMA-HPC ?2003 MIT
局部切断误和精度
差分方程稳定性
稳定 +连续导出收敛
小结
多步法的小时间步问题
研究大时间步问题
两个时间刻度实例的绝对稳定性
振荡器
没有谈及的问题
朗格 -库拉定理 , 高阶 A-稳定法
SMA-HPC ?2003 MIT