Transcript 第四章古典迭代解法
河南师大数学与信息科学学院 线性方程组迭代解法 本章讨论解线性方程组 Ax b 古典迭代解法。 主要内容包括: •雅可比(Jacobi)迭代法 •高斯-赛德尔(Gauss-Seidel)迭代法 •超松驰(SOR)迭代法 •收敛性分析 单步线性定常迭代算法 假若线性方程组 Ax b x M x g 那 么,我 们 很 容 易 建 立 如 下 代 迭算 法 指 定 初 始 向 量 x (0) , (k ) ( k 1) x Mx g , k 1,2, 形 如(4.1)的 迭 代 称 作单步线性定常迭代. 其 中M R n n叫 做迭代矩阵, g R n叫 做常数项, x ( 0 ) R n叫 做初始向量. 如 果 由 算 法 产 生 的 向序 量 列 有 极 限,则 称 该 迭 代 法 是 收 敛 的;否 则 就 称 它 是 不 收 敛 或 的 发 散 的. 雅可比(Jacobi)迭代法 考虑线性方程组 Ax b 令A D L U ,其 中: D diag(a11 , a22 ,, ann ), 0 0 a12 a 0 0 21 ,U L a31 a32 0 an1 an 2 an 1, n 0 那么, Ax b可等价写成 x Bx g 其中B D 1 ( L U ), g D 1b. 从 而,我 们 得 到Jacobi迭 代 法: 给 定x ( 0 ) ( x1( 0 ) , x2( 0 ) ,, xn( 0) )T , (k ) ( k 1) x Bx g, k 1,2, 其 中B称 为Jacobi迭 代 矩 阵。 a13 a23 a1n a2 n 0 an 1, n 0 雅可比迭代法的分量形式 注 意 到Jacobi迭 代 矩 阵 a12 0 a11 a21 0 a22 a a32 31 1 B D (L U ) a33 a33 an, 2 an,1 a an, n n, n a13 a11 a 23 a22 0 b1 a 11 b2 a22 , g b3 a33 a n 1, n an, n b n 0 ann a1n a11 a 2n a22 an, n 1 an, n 于 是, Jacobi迭 代 法 的 分 量 形 式 为 i 1 ( k ) xi bi ai , j x (jk 1) j 1 i 1,2,, n. k 1,2,. n a j i 1 i, j x ( k 1) j ai , i 雅可比迭代程序设计 编制计算程序时,应注意以下几个问题: 1. 算法的实现 根据迭代法的特点 , 设 置 向 量x和y, x作 为 输 入, y作 为 输 出 ,这 样 y : D 1[(L U ) x b] 2. 算法的终止 预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数 ,当 y x 终 止 算 法;否 则 继 续 迭 代 . 如 果 考 虑 到 算 法 发 散情 的 形, 还 需 要 增 设 迭 代 次 数 量 变count和 最 大 限 定 值CNT ,当 count CNT 时迭代继续 ,否 则 迭 代 终 止 . 3. 程序设计 点击对象展开程序 高斯-赛德尔(Gauss-Seidel)迭代法 考虑线性方程组 Ax b 令A D L U ,其 中: D diag(a11 , a22 ,, ann ), 0 0 a12 a 0 0 21 ,U L a31 a32 0 an1 an 2 an 1, n 0 a13 a23 那么, Ax b可等价写成 x G x g 其中G ( D L) 1U , g ( D L) 1 b. 从 而, 我 们 得 到G S (Gauss Seidel)迭 代 法: 给 定x ( 0 ) ( x1( 0 ) , x 2( 0 ) , , x n( 0) )T , (k ) ( k 1) x G x g, k 1,2, 其 中G称 为G S (Gauss Seidel)迭 代 矩 阵。 a1n a2 n 0 an 1, n 0 G-S迭代法的分量形式 ( D L) x ( k ) Ux ( k 1) b, 所 以 x ( k ) D 1 Lx( k ) D 1Ux ( k 1) D 1b 于 是, G S迭 代 法 的 分 量 形 式 为 i 1 n ( k ) (k ) ( k 1) x i bi a i , j x j a i , j x j a i ,i j 1 j i 1 i 1,2, , n. k 1,2, . 注 意: 由于 (1)G S迭 代 法 的 分 量 形 式 与 Jacobi迭 代 的 分 量 形 式 非 常 似 相, 区 别 仅 在 于 右 端 迭 代子 式中 的 前 一 个 和 式 中时 及地 使 用 了 输 出 向 量 的 已 计 算 好 的量 分. (2) Jacobi迭 代 与 分 量 的 顺 序 没 关 有 系,而G S迭 代 法 与 分 量 的 计算顺序有关 . (3)尽 管Jacobi迭 代 法 和G S迭 代 法 的 分 量 形 式 相,似 但迭代矩 阵 区 别 很 大,因 此 它 们 的 收 敛 性 有 很 着大 的 区 别 . G-S迭代程序设计 编制计算程序时,应注意以下几个问题: 1. 算法的实现 根据迭代法的特点 ,只 需 要 设 置 向 量 x ,既 作 为 输 入 又 作 为 输 出 x : D 1 [( L U ) x b ] 2. 算法的终止 预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数 ,当 y x 终 止 算 法;否 则 继 续 迭 代 . 如 果 考 虑 到 算 法 发 散情 的 形, 还 需 要 增 设 迭 代 次 数 量 变count和 最 大 限 定 值CNT ,当 count CNT 时迭代继续 ,否 则 迭 代 终 止 . 3. 程序设计 点击对象展开程序 超松驰(Successive Overrelaxation)迭代法 考虑线性方程组 Ax b 令A D L U ,其 中: D diag(a11 , a22 ,, ann ), 0 0 a12 a 0 0 21 ,U L a31 a32 0 an1 an 2 an 1, n 0 a13 a23 a1n a2 n 0 an 1, n 0 那么对于任一正数 , Ax b可等价写成 x (1 ) x (G x g ) 其中G ( D L) 1U , g ( D L) 1 b. 从 而, 我 们 得 到SOR( Successive Overrelaxation)迭 代 法: 给 定x ( 0) ( x1( 0) , x 2( 0) , , x n( 0) )T , (k ) ( k 1) 1 (k ) ( k 1) x ( 1 ) x D ( L x Ux b) , k 1,2, 其迭代矩阵为 : L ( D L) 1[(1 ) D U ] SOR迭代法的分量形式 于 是, G S迭 代 法 的 分 量 形 式 为 i 1 ( k ) x i (1 ) x i( k 1) bi a i , j x (jk ) j 1 i 1,2, , n. k 1,2, . n a j i 1 i, j x ( k 1) j a i ,i 注 意: (1) SOR迭 代 法 实 质 上 可 以 看 是 作G S迭 代 的 一 种 外 推 ,即 i 1 n ( k ) ( k ) ( k ) ( k 1) ( k 1) ~ x i bi a i , j x j a i , j x j a i ,i j 1 j i 1 确定一个正数 , 对x i( k 1)和~ x i( k ) 作 如 下 组 合 x ( k ) (1 ) x ( k 1) ~ x (k ) i i i (2)当 1时, SOR就 转 化 为 了 G S迭 代 法. (3)与G S迭 代 法 一 样 , SOR迭 代 与 分 量 的 计 算 顺 有 序 关. (4)由 于 算 法 引 入 了 松 驰 子 因 ,因 此SOR算 法 具 有 相 对 的 可 变,性 不 同 的 松 驰 因 子 可 能导 会致 不 同 的 迭 代 效 果 ,甚 至 对 一 特 定 的 方 程 来 说, 应 该 存 在 最 佳 松 驰 因.子 G-S迭代程序设计 编制计算程序时,应注意以下几个问题: 1. 算法的实现 根据迭代法的特点 ,只 需 要 设 置 向 量 x ,既 作 为 输 入 又 作 为 输 出 x : D 1 [( L U ) x b ] 2. 算法的终止 预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数 ,当 y x 终 止 算 法;否 则 继 续 迭 代 . 如 果 考 虑 到 算 法 发 散情 的 形, 还 需 要 增 设 迭 代 次 数 量 变count和 最 大 限 定 值CNT ,当 count CNT 时迭代继续 ,否 则 迭 代 终 止 . 3. 程序设计 点击对象展开程序 单步线性定常迭代法的收敛性 线性方程组Ax b x Mx g单步线性定常迭代算法 指定初始向量x (0) , (k ) ( k 1) x Mx g , k 1, 2, 如果由算法产生的向量序列 x (n) n 0 有极限, 则称该迭 代法是收敛的; 否则就称它是不收敛的或发散的. 注意: 迭代阵M不唯一,影响收敛性。 | i ( M ) | 定义:矩阵M的谱半径为: ( M ) max 1i n 定义:如果存在矩阵G使:G(I – M)=A,Gg=b. 则称迭代法与方程组Ax=b是相容的。 引理1 迭代法 x ( k 1) Mx ( k ) g 收敛当且仅当 M k 0 (k ) nn 引理4.3.2 设 M C ,则有 nn 1. 对 C 上的任意矩阵范数 ,有 (M) M 2. 对任给的 0 ,存在 C nn上的算子范数 使得 M (M) 注: 引理的详细证明过程,请阅读第四章,第3节. nn 定理1 M R , M 0(k )当且仅当(M) 1. k 定理2 单步线性定常迭代法收敛当且仅当 (M) 1. 例 1 当方程组的系数矩阵为 1 2 2 A 1 1 1 2 2 1 可以验证:Jacobi迭代收敛,而Gauss-Seidel迭代不收敛。 例 2 当方程组的系数矩阵为 2 1 1 A 1 1 1 1 1 2 可以验证:Jacobi迭代不收敛,而Gauss-Seidel迭代收敛。 例3 对于方程组 3 x1 2 x2 1 5 x1 3 x2 2 Jacobi迭代公式为 ( k 1) 1 2 (k ) 0 x 1 3 3 x2 ,迭代矩阵为B 5 ( k 1) 2 5 ( k ) 3 3 3 x1 x2 23 , ( B) 0 10 3 1 Gauss-Seidel迭代公式为 ( k 1) 1 2 (k ) x 1 3 3 x2 ( k 1) 2 5 ( k,迭代矩阵为 1) x x 3 3 1 2 0 23 10 G , ( G ) 9 1 10 0 9 显然,两种迭代都不收敛。 若将方程的顺序调整,即 5 x1 3 x2 2 3 x1 2 x2 1 Jacobi迭代公式为 ( k 1) 3 (k ) 2 0 x 1 5 5 x2 ,迭代矩阵为B 3 ( k 1) 1 3 ( k ) 2 x x 2 2 2 1 53 3 10 , ( B ) 10 1 0 Gauss-Seidel迭代公式为 ( k 1) 3 (k ) 2 x 1 5 5 x2 ( k 1) 1 3 ( k,迭代矩阵为 1) x x 2 2 2 1 0 53 9 G , ( G ) 10 1 9 0 10 显然,两种迭代都收敛。 定理3 若迭代矩阵M的范数 M q 1 且 I 1,则 单步线性定常迭代的第k次迭代向量 x (k ) 与准确解 x * 的误差有估计式 x (k ) k q x* x (1) x ( 0) , 1 q 定理4 若迭代矩阵M的范数 M q 1 且 I 1,则 单步线性定常迭代的第k次迭代向量 x (k ) 与准确解 x 的误差有估计式 x (k ) q ( k 1) (k ) x x x , 1 q * * 定理5 若系数矩阵A对称,对角线元素 aii 0(i 1,2,...,n) 则Jacobi迭代收敛的充分必要条件是A和2D-A都正定。 定理6 若系数矩阵A正定,则G-S迭代收敛。 定理7 若矩阵A是严格对角占优的或不可约对角 占优的,则A非奇异。 定理8 若A是严格对角占优的或不可约对角占优 的,则Jacobi迭代和G-S迭代收敛。 超松驰迭代收敛性 定理9 SOR收敛的充分和必要条件是 ( L ) 1. 定理10 SOR收敛的必要条件是 0 2. 定理11 若系数矩阵A是严格对角占优的或不可约对 角占优的,且松驰因子 0 1,则SOR收敛。