数值模拟导论——第十三讲 多步法收敛性 Jacob White 合作伙伴Deepak Ramaswamy, MichalRewienski, and Karen Veroy 概要 多步法的小时间步问题 局部切断误差 选择系数 不收敛法 稳定并连续则收敛 下一章讨论大时间步问题 两个时间刻度实例的绝对稳定性 震荡器 () () () , d xt f xt ut dt = 多步法 基本方程式 通用符号 非线性差分方程 k步法: () () 00 ?? , kk lj lj jjlj ax t f x utβ ?? ? == =? ∑∑ 离散点的解 时间离散化 多步法系数 () ( ) 11 1 ?? ? , ll l l xx tfxut ?? ? ?=? () ( ) 1 ?? ? , ll l l xx tf xut ? ?=? 多步法 基本方程式 通用算法 多步法方程: () () 00 ?? , kk lj lj jjlj ax t f x utβ ?? ? == =? ∑∑ 前欧拉近似法: ( ) ( ) ( ) ( )( ) 111 , ll ll xt xt tf xt ut ??? ≈? 前欧拉离散方程: 多步法系数: 01 01 1, 1, 1, 0, 1k α αββ= ==?== 后欧拉法离散方程: 多步法系数: 01 01 1, 1, 1, 1, 0k α αββ= ==?== 捕捉法离散方程: () () () () ( ) 11 1 ?? ? ? ,, , 2 ll l l ll t x x fxut fx ut ?? ? ? ?= 多步法系数:01 0 1 11 1, 1, 1, , 22 k αα β β= ==?= = 多步法 基本方程式 定义及考察 多步法方程: () () 00 ?? , kk lj lj jjlj ax t f x utβ ?? ? == =? ∑∑ 1)若 0β ≠ 则多步法是绝对的 2)k步法在 ''xs f s和 之前用到k 3)需要范数化,都有 0 1α= 4)k步法有2k+1个自由系数 需要高的精度时如何选择合适的系数? () () 00 ?? kk lj lj jj d xt Axt ax t x dt β ? ? == =?=? ∑∑ 多步法离散化 () () 1 00 ?? kk lj lj jj Eyt xt ay t E AEyβ ? ?? == =? =? ∑∑ 令 多步法 简化问题分析 标量ODE: () () () 0 , 0 C d vt vt v v dt λλ= =∈ 为什么会出现这样的简单测试问题? z非线性分析有很多微妙的现象没有揭示 z对于多步法标量等同于矢量 1 00 kk lj lj jj n ay t y λ β λ ? ? == ?? ?? ?=? ?? ?? ∑∑ null离散方程 多步法 简单问题分析 标量ODE:() () () 0 , 0 C d vt vt v v dt λλ= =∈ 多步法标量公式: 00 ?? kk l j l j jj av t vβλ ? ? == =? ∑∑ 对于所有 Cλ∈ 都必须考虑λ的值 多步法 收敛分析 收敛定义 定义:对于给定的任何初始条件,用多步法求解[0,T]上的初值问题是收敛的。 ( ) 0, ? 0 max 0 l T l t tvvt ?? ∈ ?? ? ?? ? →??→当时 多步法 收敛分析 P阶收敛 定义:对于任一给定的λ和任何初始条件,用多步法求解[0,T]上的初 值问题是P阶收敛的。 对于所有 0 tt? ?小于给定的的 () () 0, ? max p l T l t vvlt Ct ?? ∈ ?? ? ?? ? ?≤? 前欧拉法和后欧拉法都是1阶收敛的,梯形法则是2阶收敛的 多步法 收敛分析 实例反应方程 前欧拉法和后欧拉法,误差∞Δt 后欧拉法,误差∞(Δt)2 多步法 收敛分析 收敛的两个条件 1)局部条件:“一步法”误差较小(连续性) 可以用泰勒奇数证明 2)全局条件:单步误差不会快速增加(稳定性) 在这种情况下,所有一步法(K=1)都是稳定的 多步法(K>1)需要详细分析 多步法 收敛分析 全局误差等式 00 ?? 0 kk lj lj jj av t vβλ ?? == ??= ∑∑多步法公式: 精确解基本上和多步法一致: () () 00 ? kk l jlj j lj jj d av t t vt e dt β ?? == ??= ∑∑ 局部切断误差(LTE) 全局误差: ( ) ? ll l E vt v≡? 差分方程将局部切断误差和全局误差联系起来 ()( ) ( ) 1 00 11 ll lkl kk atEatE atEeλβ λβ λβ ?? ? ?+?? ++?? =null 1 ?? ? 0 ll l vvtvλ + ? ?? = 前欧拉法 收敛分析 前欧拉法的连续性 前欧拉法的定义 分解精确解v(t)并展开得 () () ()() () 2 2 2 1 2 l e dv l t t d v vl t vlt t dt dt τ?? +?? ??? = nullnullnullnullnullnullnull 其中 l e 为局部切断误差,其范围: () 2 l eCt≤? ,当C=0.5时 d vv dt λ= ( ) ,1ltl tτ∈ ?+?? ? ? ? [] ( ) 2 0, 2 max T dv dt τ τ ∈ 前欧拉法 收敛分析 全局误差方程 前欧拉法定义 1 ? l v + ? l v= + ? l tvλ? 利用局部切断误差定义 ( ) ( ) ( )() 1 l vl t vlt t lt eλ+?= ??? ?+ 上式左右相减得全局误差方程 1 () lll E ItEeλ + = +? + 利用 l e的数量值及其范围得 ( ) () 2 1 1 lll l EItEe tECtλλ + ≤+? + ≤+? + ? 前欧拉法 收敛分析 差分方程一个非常有利的跳跃 一个λ跳跃得差分方程的解 若() 10 1, 0, 0 ll uubuεε + ≤+ + = > 那么 l l e ub ε ε ≤ 为了便于证明,将 l u 写成幂级数及求和形式 () () () 1 0 11 1 11 l j l l j ubb ε ε ε ? = ?+ ≤+ = ?+ ∑ 一步法 收敛分析 差分方程一个非常有利的跳跃 最后,由于 () () 11 l l ee ε ε εε+ ≤?+ ≤ () () () 11 1 1 11 ll l l e ubbb ε εε ε ?+ + ? ≤=≤ ?+ 一步法 收敛分析 回顾前欧拉法的收敛分析 应用λ并消去Δt得 null () 2 2 1() lt ll l b e EtECtCt t λ ε λ λ ? + ?? ?? ≤+? +?≤ ? ? ?? nullnullnull 最后,由于 ,lt T?≤ [] 0, max T l lT C E et λ λ ∈ ≤ ?? 前欧拉法 收敛分析 考查前欧拉法分析 [] 0, max T l lT C Ee t λ λ ∈ ≤ ?? z前欧拉法时一阶收敛 z跳跃随时间间隔程指数增长 zC与精确解得二次倒数相关 z跳跃随时间增长程指数增加 前欧拉法 收敛分析 不稳定反应的精确解和前欧拉法图 前欧拉法误差随时间延长而增大 前欧拉法 收敛分析 求解反应方程的前欧拉法误差 正如限制所约束的那样,误差随时间增长程指数增加 前欧拉法 收敛分析 电路问题中的精确解和前欧拉法解 图 前欧拉法误差并不总是随时间延长而增大 前欧拉法 收敛分析 求解电路问题方程的前欧拉法的误 差 误差并不是总是随时间程指数增长! 跳跃是保守的 多步法 使得局部切断误差足够小 精确约束 局部切断误差: () () 00 kk l jlj j lj jj d avt t vt e dt β ?? == ??= ∑∑ () () 1p p d vt t vt pt dt ? =? = 若 注:不能根据 () () d vt vt dt λ= 式推导 () () () () 1 00 kj kj kk pp jj d vt vt dt akj ttpkj teβ ? ? ? == ???? ?? = ∑∑ nullnullnullnullnullnullnullnullnullnullnullnullnullnull 局部切断误差 多步法 使得局部切断误差足够小 精确约束 () () () () () 1 00 1 00 kk pp jj kk pp p k jj akjt t pkjt takj pkj e β β ? == ? == ???? ?? = ?? ????= ?? ?? ∑∑ ∑∑ 对于所有 0 ,p p≤ 若() () 1 00 0 kk pp jj ak j pk jβ ? == ?? ? ??= ?? ?? ∑∑ () () () 0 1 00 kk p l jlj j lj jj d avt t vt e C t dt β + ?? == ?? = = ? ∑∑ 那么 对于( ) p vt t=若 () ( ) ( ) 1 00 0 kk pp p jj takj pkjβ ? == ?? ? ?? ? = ??∑∑ 那么 0 k e = 对于所有光滑v(t)在t处都有一个局部精确泰勒级数 多步法 使得局部切断误差足够小 精度约束k=2实例 精度拘束: () () 1 00 0 kk pp jj ak j pk jβ ? == ?? ? ??= ?? ?? ∑∑ 对于k=2,产生系数的5x6维系统方程式 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实例 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 β β β ?? ? ??? ?? ? ??? ?? ? ?? ? ???= ?? ? ?? ? ??? ?? ? ?? ? ??? ?? ?? 对于k=2精度约束 前欧拉法 01 2 0 1 2 1, 1, 0, 0, 1, 0aa aβ ββ==?= === 前欧拉法满足p=0和p=1但是不满足p=2 2 ()Ct??局部切断误差= 梯形捕捉法 01 2 0 1 2 1, 1, 0, 0, 0, 0aa aβ ββ==?= = = = 梯形捕捉法满足p=0,p=1,p=2但是不满足p=3 3 ()Ct??局部切断误差= 后欧拉法 01 2 0 1 2 1, 1, 0, 0, 0, 0aa aβ ββ==?= = = = 后欧拉法满足p=0和p=1但是不满足p=2 2 ()Ct??局部切断误差= 多步法 使得局部切断误差较小 精度约束k=2实例,生成方法 首先介绍一个规范化的问题,例如 0 1a = 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 β β β ??? ? ??? ??? ??? ? ??? ??? ??? =? ??? ? ??? ??? ??? ? ? ????? 用两步法求解最小的局部切断误差 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? 多步法 使得局部切断误差足够小 前欧拉法,后欧拉法,梯形捕捉法 和“最”直接法的局部切断误差图 前欧拉法 使得局部切断误差足够小 前欧拉法,后欧拉法,梯形捕捉法 和“最”直接法的全局误差图 前欧拉法 使得局部切断误差足够小 前欧拉法,后欧拉法,梯形捕捉法 和“最”直接法的全局误差图 前欧拉法 多步法的稳定性 差分方程 为什么“最”2步直接法不能收敛? 多步法差分方程 全局误差 我们使得局部切断误差较小,全局误差怎么变得这样大? 求解差分方程补充 考虑一般的k阶差分方程 1 01 ll lkl k ax ax ax u ?? + ++ =null 其中必须已知k个初始条件 01 01 , , , k k xxx x x x ?? = ==null 明显地,当方程由以下公式更新时 () 10 11 1 0 1 k k xaxaxu a ?+ =? + + ?null 大多数重要的差分方程可以求解 x通过式 0 l llj j xhu ? = = ∑ 和u联系起来 求解差分方程补充 若方程 1 01 0 kk k az az a ? +++=null 有不相等的根 12 ,,, k ? ??… 那么当 () 1 k l l j j j h γ ? = = ∑ 时, 1 l llj j xhu ? = = ∑ 为了理解h时怎么获得的,首先看一个简单的例子 假设 1lll xxu? ? =+且 () 010121212 1 0, , k l l jj j xxxuxxuuu x ??? γ? = = =+ =+=+ = ∑ 求解差分方程补充 三个重要的问题 若对于所有i,都有 1 i ? < ,那么 max lj j xC u≤ 其中C不依赖于l 若对于任何i,都有1 i ? > , 那么存在一个有极限的 j u 使得 l x →∞ 若对于所有i,都有 1 i ? ≤ ,且当 1 i ? = 时, i ? 不等, 那么 max lj j xCl u≤ 多步法 多步法的稳定性 多步法差分方程 ( ) ( ) ( ) 1 00 11 ll lkl kk atEatE atEeλβ λβ λβ ?? ?? + ?? + + ?? =null 定义:对于任意 l e ,当且仅当 0, 0, 0 max max ll TT ll tt T tECe t ?? ?? ∈∈ ?? ?? ?? ?? ?? ?→ ≤ ? 时,多步法是稳定的。 定理:当且仅当方程 1 01 0 kk k az az a ? + ++=null 的根在数值上小于1或等于1但根不同时,多步法是稳定的。 差分方程 多步法 多步法的稳定性 稳定性定理“证明” 给定的多步法差分方程 ()( )() 1 00 11 ll lkl kk atEatE atEeλβ λβ λβ ?? ?? + ?? + + ?? =null 当方程 0 0 k kj j j az ? = = ∑ 的根为下列两者之一时 z数值上小于1 z数量上等于1,但是根不相同 那么由差分方程得 max ll l ECl e≤ 由此很容易证明稳定性 多步法 多步法的稳定性 稳定性定理“证明” 多步法 多步法的稳定性 最直接法 最直接2步法 “最”直接法非常不稳定 前欧拉法 多步法的稳定性 Dahlquist首次稳定性界限 对于一个稳定的,直接k步多步法,可以满足的精度约束的 最大值小于或等于k(注意由2k个系数)。对于非直接法,精 度约束在k为偶数时为k+2,或k为奇数时精度约束为k+1。 前欧拉法 收敛分析 收敛性、稳定性和连续性的条件 1)局部条件:一步误差较小(连续性) 对于 0 tt? <? ,精度约束达到 0 p(0 p 必须大于0) () 0 1 1 0, max p l T l t eCt + ?? ∈ ?? ? ?? ?≤? 2)全局条件:一步误差缓慢增加(稳定性) 方程的根在单元圆的内部或在圆上 2 0, 0, max max ll TT ll tt T EC e t ?? ?? ∈∈ ?? ?? ?? ?? ?? ?≤ ? 收敛结论: () 0 0, max p l T l t E CT t ?? ∈ ?? ? ?? ≤? 小结: 多步法的小时间步问题 局部切断误差和精度 差分方程的稳定性 稳定性+连续性导出收敛 下一章要讨论的 两种时间刻度的绝对稳定性 振动 格朗-库拉方案