分块矩阵的Schur补方法在求解线性方程组中的应用
字数 805 2025-11-01 15:29:06
分块矩阵的Schur补方法在求解线性方程组中的应用
题目描述
考虑分块线性方程组 Ax = b,其中 A 是 n×n 矩阵,x 和 b 是 n 维向量。当 A 可以划分为 2×2 分块形式时,我们可以使用 Schur 补方法进行高效求解。具体形式如下:
A = [A₁₁ A₁₂] x = [x₁] b = [b₁]
[A₂₁ A₂₂] [x₂] [b₂]
其中 A₁₁ 是 p×p 子矩阵,A₂₂ 是 q×q 子矩阵(p+q = n),A₁₂ 是 p×q,A₂₁ 是 q×p。当 A₁₁ 可逆时,Schur 补方法提供了一种分块求解策略。
解题过程
第一步:理解分块矩阵方程
将原方程按分块形式展开:
A₁₁x₁ + A₁₂x₂ = b₁ (1)
A₂₁x₁ + A₂₂x₂ = b₂ (2)
我们的目标是通过分块消元法求解 x₁ 和 x₂。
第二步:构造 Schur 补
从方程(1)解出 x₁(假设 A₁₁ 可逆):
x₁ = A₁₁⁻¹(b₁ - A₁₂x₂) (3)
将(3)代入方程(2):
A₂₁[A₁₁⁻¹(b₁ - A₁₂x₂)] + A₂₂x₂ = b₂
整理得:
A₂₁A₁₁⁻¹b₁ - A₂₁A₁₁⁻¹A₁₂x₂ + A₂₂x₂ = b₂
合并 x₂ 项:
(A₂₂ - A₂₁A₁₁⁻¹A₁₂)x₂ = b₂ - A₂₁A₁₁⁻¹b₁
这里 S = A₂₂ - A₂₁A₁₁⁻¹A₁₂ 称为 Schur 补。
第三步:求解 x₂
令 c = b₂ - A₂₁A₁₁⁻¹b₁,则方程简化为:
Sx₂ = c
如果 Schur 补 S 可逆,我们可以直接求解:
x₂ = S⁻¹c = (A₂₂ - A₂₁A₁₁⁻¹A₁₂)⁻¹(b₂ - A₂₁A₁₁⁻¹b₁)
第四步:回代求解 x₁
将求得的 x₂ 代入方程(3):
x₁ = A₁₁⁻¹(b₁ - A₁₂x₂)
这样就完成了整个方程组的求解。
第五步:算法步骤总结
- 验证 A₁₁ 可逆,计算 A₁₁⁻¹
- 计算 Schur 补 S = A₂₂ - A₂₁A₁₁⁻¹A₁₂
- 计算修正项 c = b₂ - A₂₁A₁₁⁻¹b₁
- 求解 Sx₂ = c 得到 x₂
- 回代计算 x₁ = A₁₁⁻¹(b₁ - A₁₂x₂)
应用价值
这种方法在以下场景特别有用:
- A₁₁ 是易于求逆的特殊矩阵(如对角矩阵、三角矩阵)
- 分块结构允许并行计算 A₁₁⁻¹A₁₂ 等乘积
- 问题规模较大时,分块求解比直接求解整个系统更高效
数值稳定性考虑
当 A₁₁ 条件数很大时,需要谨慎使用。有时需要对整个矩阵进行重排序(如使用AMD、METIS等排序算法)来选择数值性质更好的分块结构。