数值模拟导论 -第九讲 多维牛顿法 雅克比 ·怀特 感谢 Deepak Ramaswamy, Jaime Peraire, MichalRewienski, and Karen Veroy z 简单回顾一维牛顿法 ——收敛性检验 z 多维牛顿法 ——基本算法 ——雅可比矩阵的描述 ——方程式 z 多维收敛性 ——证明局部收敛性 ——收敛性的改善 摘要 问题: 找 出使得 一维问题回顾 牛顿法的思想 SMA-HPC ?2003 MIT ( ) * 0fx= * x 利用泰勒展开式: () () () ( ) () 2 2 ** 2 fx f fx fx x x x x xx ? ? ? =+ ?+ ? ? ?  若接近于精确解 x () () f xx fx x ? ? ?=? ? 一维回顾 牛顿算法 SMA-HPC ?2003 MIT 0 0xk= =初始给定值, 重复 { ()() 1 1 kk k f xx fx x kk + ? ?=? ? =+ } 直到? () 11kk k xx fx ++ ?< <极限值? 极限值? 一维回顾 牛顿算法 SMA-HPC ?2003 MIT 牛顿算法图 一维回顾 牛顿算法 SMA-HPC ?2003 MIT 收敛性检验 需要一个 “”来检测是否产生错误的收敛 x? 一维回顾 牛顿算法 SMA-HPC ?2003 MIT 收敛性检验 同样需要一个 “”来检测是否产生错误的收敛 ( ) fx 一维回顾 牛顿算法 SMA-HPC ?2003 MIT 局部收敛 收敛性依赖于给定恰当的初始值 多维牛顿法 实例问题 SMA-HPC ?2003 MIT 杆件和节点问题 () () () () 22 0 0 0 0 0 c x y lxy ll F EA l l l xx fF ll ll yy fF ll ll ε ε ε =+ ? = =? == ? == ? () () () 0 0 0 0 0 0 x y x y xL yL L L fF Fx fF x llF l y llF l ε ε + = ?? = ?? + = ?? ?+ = ?+ = G 或 多维牛顿法 实例问题 SMA-HPC ?2003 MIT 非线性电阻器问题 节点分析 () ( ) () ( ) 12 112 32 312 0 0 0 0 ii gv gv v ii gv gv v + = ?+?= ?= ???= 在 节 点 1处 : 在 节 点 2处 : 在 两 个 非 线 性 方 程 式 中 有 两 个 未 知 数 多维牛顿法 一般设定 SMA-HPC ?2003 MIT 利用泰勒级数展开式 ( ) ( ) ( ) ( ) () () () ** * .. F F F xFxJxxxHOT Jxxx Fx =+ ?+ ?≈?  雅可比矩阵 若近似于精确解 则 问题:求解出使得 ( ) * 0Fx = : NNN xRFR R ? ∈→且 多维牛顿法 节点分析 SMA-HPC ?2003 MIT 杆件和节点问题 222 :xRFR R ? ∈→且 () () 0 0 0 0 x y L L x llF l y ll F l ε ε ? += ? += () ?? ?? F Jx ? ? = ? ? ? ? G 多维牛顿法 节点分析 SMA-HPC ?2003 MIT 非线性电阻器问题 222 :xRFR R ? ∈→且 () () ( ) () () ( ) () 12 1112 32 1312 0 0 0 0 ?? ?? F ii Fv gv gv v ii Fv gv gv v Jx + = ?=+?= ?= ?=??= ?? = ?? ?? G G G 在节点1处: 在节点2处: 多维牛顿法 雅可比矩阵 SMA-HPC ?2003 MIT ( ) ( ) ( ) () () () () () 11 N 11 F N F N JxxFx xFx FxFx xxx Jxx x Fx Fx xx ?≈ +? ? ? ??? ?? ??? ? ? ?? ? ? ?? ?= ? ? ?? ? ? ? ?? ?? ? ? ?? ? ? " #%# # " 多维牛顿法 雅可比矩阵 SMA-HPC ?2003 MIT 奇数实例 () () () () () () 11 N 11 0 F N F N Jx FxFx xxx Jxx x Fx Fx xx ? ??? ?? ??? ?? ?? ?? ?? ? == ?? ?? ?? ? ?? ?? ?? ?? ? ? " #%# # " 假设 为奇数? 其含义是什么? 多维牛顿法 牛顿算法 SMA-HPC ?2003 MIT 0k = =初始值, 0 x 重复 { ( ) ( ) ()( ) () 11 , 1 kk F kk k k k F Fx J x Jx x x Fx x kk + + ?=? =+ 计算 解方程 求得 ( ) 11 , kk k xxFx ++ ?直到 足够小为止} 多维牛顿法 计算雅可比矩阵和函数 SMA-HPC ?2003 MIT 考 虑节点之间的一个非线性电阻的作用 12 nn和 ( ) bb igv= 节点 上求和 : 1 n ( ) ( ) 112 ... nnn Fv gv v= ?+ 节点 上求 和: 2 n ( ) ( ) 212 ... nnn Fv gv v=??+ () ( ) () ( ) 12 12 11 11 22 1 ... ... nn nn nn nn gg vv gv v gv v Fv Fv n vv vv ?? = +=+ ?? ??   对节点 求偏微分: 多维牛顿法 计算雅可比矩阵和函数 SMA-HPC ?2003 MIT 一个电阻器上受到的电压 1 2 n n () 12 12 nn nn gv v v ?? ? ## # ## ## # # () () () () 12 12 12 F nn nn nn Jv gv v v gv v gv v vv ?? ?? ?? ? ?? ?? ?? ?? ?? ## # ## ## ## # ##  () () () 12 12 nn nn Fv gv v gv v ?? ?? ? ?? ?? ? ?? ?? # # #  1 2 n n 多维牛顿法 进一步计算牛顿算法 =初始值 , 0 x 0k = 重复 { () ( ) ()( ) () 11 , 1 kk F F F kk k k k F Fx J x JF FJ J xx x Fx x kk + + ?=? =+ 将和置零 对于每一单元,计算单元电流及其导数, 求电流的和 ,求导数的和 解方程 求得 ( ) 11 , kk k xxFx ++ ?直到 足够小为止 } 多维牛顿法 实例:直通棒中的热流 SMA-HPC ?2003 MIT 什么是雅可比行矩阵? 多维牛顿法 多维收敛定理 定理陈述 主要定理 ( ) () () 1 a) ( ) ) ( Lipschitz Cont) k F FF Jx bJxJy lxy β ? ≤ ?≤? 反之不成立 导数为 给定的足够准确的初始值,牛顿法收敛 多维牛顿法 多维收敛定理 SMA-HPC ?2003 MIT 重要辅助定理 ( ) ( ) () () ()( ) 2 ( Lipschitz Cont) 2 FF F JxJy lxy l Fx Fy Jyxy xy ?≤? ?? ?≤? 如 果导数 为 那 么 这里没有多维的均值定理。 多维牛顿法 多维收敛方法 SMA-HPC ?2003 MIT 定理证明 通过牛顿迭代的定义和假定雅可比矩阵逆的极限值得: ( ) ( ) ( ) 11kk k k k F x x J x Fx Fxβ +? ?= ≤ 再次利用牛顿迭代的定义: () ( ) ( ) 111 0 kk k k kk F x x Fx Fx J x xβ +?? ?≤ ? ? ?  最后利用辅助定理: 2 11 2 kk kk l xx xx β +? ?≤ ? 多维牛顿法 多维收敛方法 等式重组 111 2 k k kk kk l x x xx xx β + ?? ?? ?≤ ? ? ?? ?? () 10 110 0 1 2 kkk kk k l xx xx xxx β γ γ ∞ ++ = ?? ?≤< ?? ?? ?≤? ?+ ∑ 若 则收敛 定理进一步证明 SMA-HPC ?2003 MIT 不收敛的情况 一维图 必须设法限定 X的变化范围 极限牛顿法 牛顿算法 用牛顿算法求解 F( x)= 0 =初始值, 0 x 0k = 重复 { ( ) ( ) () () () 11 11 , lim 1 kk F kk k k F kk k Fx J x Jx x Fx x xx x kk + + ++ ?=? ? =+ ? =+ 计算 解方程 求得 } ( ) 11 , kk xFx ++ ?直到 足够小为止 SMA-HPC ?2003 MIT 极限牛顿法 极限算法 z迭代方向正确 () 11 1 1 lim( ) kk k ii i k i xx x x γ γ ++ + + ?=? ?< ? 若 否则用 表示 z迭代方向错误 ( ) 11 1 lim min 1, kk k xx x α γ α ++ + ?=? ?? ?? = ?? ? ?? 由此推断,牛顿迭代不能保证全局收敛 SMA-HPC ?2003 MIT 极限牛顿法 阻尼牛顿定律 一般阻尼定律 ( ) ( ) 11 11 kk k k F kkkk Jx x Fx x xx xα + + + ?=? ? =+? + 解方程 求解 主要思想:线性搜索 () ()()() 2 1 2 2 111 2 kkk T kkk kkk kkk Fx x F xxFxxFxx αα α + +++ +? +? ≡ +? +? 找出 使得 取极小值 该法在牛顿收敛方向执行一维搜索 SMA-HPC ?2003 MIT 极限牛顿法 阻尼牛顿收敛定律 () () () ( ] () ()() 1 11 a) ( ) ) ( Lipschitz Cont) 0,1 1 k F FF k kkk k Jx bJxJy lxy Fx Fx x Fx β α αγ γ ? ++ ≤ ?≤? ∈ =+?< < 如果 反之不成立 导数为 那么 存在一些列 使得 其中 每进行一步迭代则减小了 F——全局收敛性 极限牛顿法 阻尼牛顿收敛定律 嵌套迭代 0 x 0k = ( ) ( ) () () () 11 1 11 , 1 kk F kk k k F kkk kkkk Fx J x Jx x Fx x Fx x xx x kk αα α ++ + ++ ?=? ? +? =+? =+ 计算 解方程 求得 找出 使得 取极小值 ( ) 11 , kk xFx ++ ?直到 足够小为止 =初始值, 重复 { } 如何求阻尼系数? SMA-HPC ?2003 MIT 极限牛顿法 阻尼牛顿法 奇异雅可比矩阵问题 阻尼牛顿法 “推动 ”迭代趋向局部极小值 找出雅可比矩阵的奇异点 总结 结: 简要回顾一维牛顿法 -——收敛性检验 多维牛顿法 —基本算法 —雅可比矩阵的描述 雅可比矩阵的构建