分块矩阵的Sherman-Morrison公式在线性方程组求解中的应用
题目描述:
考虑一个大型线性方程组 \(A\mathbf{x} = \mathbf{b}\),其中 \(A\) 是 \(n \times n\) 可逆矩阵。假设我们已经计算了 \(A\) 的逆矩阵 \(A^{-1}\),但此时矩阵 \(A\) 发生了一个低秩更新,变为 \(\tilde{A} = A + UV^T\),其中 \(U\) 和 \(V\) 是 \(n \times k\) 矩阵(通常 \(k \ll n\))。如何利用已知的 \(A^{-1}\) 高效求解更新后的方程组 \(\tilde{A} \mathbf{x} = \mathbf{b}\)?
解题过程:
这个问题可以通过Sherman-Morrison-Woodbury公式(简称SMW公式)来解决,它是Sherman-Morrison公式的推广(Sherman-Morrison公式对应 \(k=1\) 的情况)。其核心思想是避免重新对 \(\tilde{A}\) 求逆,而是利用 \(A^{-1}\) 和低秩修正项 \(UV^T\) 的结构,将求逆问题转化为求解一个 \(k \times k\) 的线性系统,从而大幅减少计算量。
步骤1:理解Sherman-Morrison-Woodbury公式的推导基础
我们寻求 \(\tilde{A}^{-1}\) 的表达式,满足 \((A + UV^T)^{-1}\)。从恒等式出发,假设 \(\tilde{A}^{-1}\) 可写成 \(A^{-1}\) 加上一个修正项。利用矩阵求逆引理:
\[(A + UV^T)^{-1} = A^{-1} - A^{-1}U(I_k + V^T A^{-1}U)^{-1}V^T A^{-1} \]
这个公式成立的条件是:
- \(A\) 和 \((I_k + V^T A^{-1}U)\) 可逆。
- 推导过程基于分块矩阵求逆和舒尔补概念。
简要推导如下:
考虑分块矩阵:
\[\begin{bmatrix} A & U \\ V^T & -I_k \end{bmatrix} \]
对其应用块高斯消元,可以验证其逆矩阵的一个分块是 \((A + UV^T)^{-1}\)。通过直接求这个分块矩阵的逆(利用舒尔补公式),得到上述SMW公式。
步骤2:应用公式求解线性方程组
我们不需要显式计算 \(\tilde{A}^{-1}\),而是直接计算解 \(\mathbf{x} = \tilde{A}^{-1} \mathbf{b}\)。将SMW公式代入:
\[\mathbf{x} = A^{-1}\mathbf{b} - A^{-1}U(I_k + V^T A^{-1}U)^{-1}V^T A^{-1}\mathbf{b} \]
这个表达式可以分解为几个计算步骤:
- 计算中间向量 \(\mathbf{y} = A^{-1}\mathbf{b}\)。由于 \(A^{-1}\) 已知,这只需要一次矩阵向量乘法。
- 计算矩阵 \(M = I_k + V^T (A^{-1}U)\)。这里 \(A^{-1}U\) 是 \(n \times k\) 矩阵,可以通过预先计算 \(A^{-1}U\) 得到(因为 \(A^{-1}\) 已知,计算 \(A^{-1}U\) 是 \(k\) 次矩阵向量乘法)。然后计算 \(k \times k\) 矩阵 \(M = I_k + V^T(A^{-1}U)\)。
- 计算向量 \(\mathbf{z} = V^T \mathbf{y}\)(\(k\) 维向量)。
- 求解 \(k \times k\) 线性系统 \(M \mathbf{w} = \mathbf{z}\) 得到 \(\mathbf{w}\)。
- 最终解为 \(\mathbf{x} = \mathbf{y} - (A^{-1}U) \mathbf{w}\)。
步骤3:复杂度分析
如果不利用SMW公式,直接求解 \(\tilde{A} \mathbf{x} = \mathbf{b}\) 需要 \(O(n^3)\) 的复杂度(如用高斯消元法)。而利用SMW公式:
- 计算 \(A^{-1}U\) 需要 \(O(k n^2)\)(如果 \(A^{-1}\) 已知但稠密),但通常我们不会显式存储 \(A^{-1}\),而是用之前求解 \(A\) 时的因子分解(如LU分解)来快速计算 \(A^{-1}U\) 和 \(A^{-1}\mathbf{b}\),这样复杂度为 \(O(k \cdot \text{解} A \text{一次的成本})\)。
- 求解 \(k \times k\) 系统 \(M \mathbf{w} = \mathbf{z}\) 需要 \(O(k^3)\)。
- 其余为矩阵向量乘法,总复杂度为 \(O(kn^2 + k^3)\)。由于 \(k \ll n\),这比 \(O(n^3)\) 小得多。
步骤4:数值稳定性与适用场景
SMW公式在数值上可能不稳定,如果 \(A\) 的条件数很大,或 \(M\) 接近奇异。但在许多应用中,如动态更新、秩修正优化、机器学习中的在线学习,矩阵 \(A\) 的更新是低秩的,且 \(k\) 很小,此时SMW公式非常高效。尤其适用于:
- 矩阵 \(A\) 的逆或因子分解已预先计算好。
- 矩阵经历多次低秩更新,每次更新用SMW公式快速获得新解。
步骤5:举例说明
设 \(n=1000, k=3\),\(A\) 是已有LU分解的矩阵。现 \(A\) 更新为 \(A + uv^T + pq^T + rs^T\)(三个秩1更新),可合并为 \(U = [u, p, r]\),\(V = [v, q, s]\)。
- 用LU分解快速计算 \(A^{-1}U\) 和 \(A^{-1}\mathbf{b}\)(每次计算等价于解 \(A X = U\) 和 \(A y = b\))。
- 计算 \(M = I_3 + V^T(A^{-1}U)\)。
- 解 \(3 \times 3\) 系统得 \(\mathbf{w}\)。
- 得到解 \(\mathbf{x} = \mathbf{y} - (A^{-1}U)\mathbf{w}\)。
总结:
Sherman-Morrison-Woodbury公式将大型矩阵的低秩更新求逆问题,转化为求解一个小型 \(k \times k\) 线性系统的问题,从而在已知 \(A^{-1}\) 或可快速求解 \(A\) 的方程组时,极大提升计算效率。但需注意数值稳定性,在条件数较大时可能需要正则化或迭代改进。