形式陈述
一个大型线性系统 公理库 线性方程组 System of linear equations 可写为矩阵方程 Ax=b 的有限个一次方程系统。 里,有些未知量只在局部发生作用,真正连接各部分的是较少的界面未知量。能否先把局部变量解掉,只留下它们对界面的影响?
将变量按内部集合 I 与保留集合 B 排列:
( A I I A I B A B I A B B ) ( x I x B ) = ( b I b B ) . 只要 A I I 可逆,第一组方程给出
x I = A I I − 1 ( b I − A I B x B ) . 代回第二组,得到精确约化系统
S x B = g , S = A B B − A B I A I I − 1 A I B , g = b B − A B I A I I − 1 b I . S 称为关于 A I I 的 Schur 补 。求出 x B 后,必须用第一式恢复 x I 。在有限元中,若 I 是各单元内部、可局部消去的自由度,这个过程称为静态凝聚 。B 是算法保留的界面,不必就是物理区域外边界。
这些逆矩阵符号表示线性求解。实际实现先分解 A I I ,求解
A I I Y = A I B , A I I z = b I , 再构造 S = A B B − A B I Y 与 g = b B − A B I z 。不需要先计算整个逆矩阵。若只需 S v ,还可以依次做 A I B v 、一次内部求解与 A B I 乘法,避免显式存储稠密的 S 。
直觉
消去内部变量,不是让它们停止工作,而是让它们对每一种界面状态都立即达到平衡。原先界面节点之间可能没有直接连接,却能通过内部节点传递作用;消元后,这条间接通路变成了 S 中的直接耦合。
图片加载失败 内部消元、界面求解与恢复 这个过程就是Gaussian 消元 公理库 Gaussian 消元与 LU 分解 Gaussian elimination · LU factorization · PA equals LU 把 Gaussian 消元保存为可复用的带置换 LU 分解,再用三角求解处理一个或多个右端。 的分块形式。以下恒等式同时认证系数更新与变量恢复:
A = ( I 0 A B I A I I − 1 I ) ( A I I 0 0 S ) ( I A I I − 1 A I B 0 I ) . 从左到右对应消元所用的乘子、消元后的两块系统及回代耦合。直接相乘,右下块是 A B I A I I − 1 A I B + S = A B B ,所以约化并未近似原矩阵。
正定性为何保留
进一步假设 A 为实对称正定矩阵 公理库 正定与半正定矩阵 Positive definite matrix · Positive semidefinite matrix · PSD matrix 由二次能量严格为正或非负定义的实对称与复 Hermitian 矩阵。 。固定界面向量 y ,让内部向量 z 自由变化。配方得到
( z y ) T A ( z y ) = ( z + A I I − 1 A I B y ) T A I I ( z + A I I − 1 A I B y ) + y T S y . 因此
y T S y = min z ( z y ) T A ( z y ) , z ∗ = − A I I − 1 A I B y . 若 y ≠ 0 ,完整向量 ( z ∗ , y ) 非零,其能量严格为正,故 S ≻ 0 。这既解释了正定性,也给出“内部取最小能量响应”的物理图像。带右端时,对 1 2 x T A x − b T x 做同样消元,得到 1 2 x B T S x B − g T x B 加一个与 x B 无关的常数;约化右端 g 因而不能省略。
例子与边界
五节点链的完整凝聚
取 A = tridiag ( − 1 , 2 , − 1 ) ∈ R 5 × 5 ,b = ( 1 , 1 , 1 , 1 , 1 ) T ,节点编号为 0 , 1 , 2 , 3 , 4 。保留 B = ( 0 , 2 , 4 ) ,消去 I = ( 1 , 3 ) 。内部两节点不直接相邻,所以 A I I = 2 I 2 ,两个局部求解可独立完成。
两个内部方程是
x 1 = ( 1 + x 0 + x 2 ) / 2 , x 3 = ( 1 + x 2 + x 4 ) / 2. 把它们代入节点 0 , 2 , 4 的方程,得到
S = ( 3 / 2 − 1 / 2 0 − 1 / 2 1 − 1 / 2 0 − 1 / 2 3 / 2 ) , g = ( 3 / 2 2 3 / 2 ) . 例如中间保留节点的原方程为 − x 1 + 2 x 2 − x 3 = 1 。代入后,对角系数由 2 降为 1 ,右端由 1 增为 2 ;这两处改变分别记录内部的柔顺响应与内部载荷。
约化解为
x B = ( 5 / 2 , 9 / 2 , 5 / 2 ) T . 回代得 x 1 = x 3 = 4 ,所以完整解是 ( 5 / 2 , 4 , 9 / 2 , 4 , 5 / 2 ) T 。原方程的中间一行检查为 − 4 + 2 ( 9 / 2 ) − 4 = 1 ,端点一行为 2 ( 5 / 2 ) − 4 = 1 ,其余同样成立。
若直接删除内部行列,只解 A B B x B = b B ,因 A B B = 2 I 3 会得到 ( 1 / 2 , 1 / 2 , 1 / 2 ) T 。它把通过节点 1 , 3 的耦合和载荷一并删除,已经换了问题。
可逆整体不保证所选内部块可逆
矩阵 ( 0 1 1 0 ) 可逆,但若把第一变量选作单个内部块,A I I = 0 无法求解。需要改变分块或采用合适的主元策略。正定假设能保证每个主子块正定;一般非对称或不定系统没有这项便利。
近似内部求解也会改变结论。若每次用不同容差计算 A I I − 1 v ,得到的“Schur 乘法”可能不再是同一个线性算子;它不应被当成已精确形成的 S 。近似消元可以成为预条件技术,但应另行说明近似误差和外层求解接口。
推论与应用
若内部块为 p × p 、界面有 m 个变量,按稠密运算组织,设置成本包括 O ( p 3 ) 分解、O ( p 2 m ) 多右端求解及 O ( p m 2 ) Schur 更新;还要计入求解 m 阶约化系统的成本。凝聚的收益来自许多小型独立内部块,或后续反复复用同一个约化系统,并非“变量少了就免费”。
在稀疏符号分解 公理库 稀疏 Cholesky 的消元图与符号分解 Symbolic Cholesky factorization 从逐点邻居补团预测 Cholesky 因子位置,证明路径判据,比较两种完整消元次序,并区分结构非零和数值相消。 中,每次消去节点的 Schur 更新会把剩余邻居连接起来。嵌套剖分 公理库 嵌套剖分消元顺序 Nested dissection ordering 递归把二维网格分隔器排在子域之后,用完整填充账本与逐层前沿计数推导存储和算术界,并说明三维为何更昂贵。 据此先消去互相分离的内部区域,把最终界面耦合限制在较小分隔器上。
凝聚验收至少检查三件事:约化系数与约化右端来自同一分块;恢复内部变量后原残差 b − A x 满足精度要求;显式或隐式应用 Schur 补的设置、存储和每次求解成本都有记录。
参考资料
NGSolve, “1.4 Static Condensation”, block factorization and full solution recovery:官方教程 。内部自由度、凝聚右端与恢复算子。
Yousef Saad, Iterative Methods for Sparse Linear Systems , 2nd ed., 2003, §3.6 and Chapter 14:作者公开教材 。稀疏消元与子域界面系统。