基于Krylov子空间的FOM算法解线性方程组
题目描述
考虑求解大型稀疏非对称线性方程组 \(A\mathbf{x} = \mathbf{b}\),其中 \(A \in \mathbb{R}^{n \times n}\) 为非对称矩阵,\(\mathbf{b} \in \mathbb{R}^n\) 为已知向量。当矩阵 \(A\) 的维度 \(n\) 非常大时,直接法(如LU分解)因计算量和存储需求高而不再适用。FOM(Full Orthogonalization Method)是一种基于Krylov子空间的投影方法,通过将原问题投影到低维Krylov子空间上,转化为一个小规模线性方程组进行求解。
解题过程
- 构建Krylov子空间
FOM算法的核心是构建Krylov子空间 \(\mathcal{K}_m(A, \mathbf{r}_0)\),其中 \(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\) 为初始残差(\(\mathbf{x}_0\) 为初始猜测,通常取 \(\mathbf{x}_0 = \mathbf{0}\)),\(m \ll n\) 为子空间维度。该子空间定义为:
\[ \mathcal{K}_m(A, \mathbf{r}_0) = \text{span}\{\mathbf{r}_0, A\mathbf{r}_0, A^2\mathbf{r}_0, \dots, A^{m-1}\mathbf{r}_0\}. \]
其一组基向量可通过Arnoldi过程(一种正交化方法)得到,确保基向量正交且单位化。
-
Arnoldi过程生成正交基
- 初始化:令 \(\mathbf{v}_1 = \mathbf{r}_0 / \|\mathbf{r}_0\|_2\)。
- 迭代计算(对 \(j = 1, 2, \dots, m\)):
a. 计算 \(\mathbf{w}_j = A\mathbf{v}_j\)。
b. 对 \(k = 1\) 到 \(j\),计算正交化系数 \(h_{k,j} = \mathbf{v}_k^\top \mathbf{w}_j\),并执行正交化: \(\mathbf{w}_j \leftarrow \mathbf{w}_j - h_{k,j}\mathbf{v}_k\)。
c. 令 \(h_{j+1,j} = \|\mathbf{w}_j\|_2\),若 \(h_{j+1,j} = 0\) 则提前终止。
d. 生成新基向量 \(\mathbf{v}_{j+1} = \mathbf{w}_j / h_{j+1,j}\)。
最终得到正交矩阵 \(V_m = [\mathbf{v}_1, \dots, \mathbf{v}_m] \in \mathbb{R}^{n \times m}\) 和上Hessenberg矩阵 \(H_m \in \mathbb{R}^{m \times m}\),满足 \(AV_m = V_m H_m + h_{m+1,m}\mathbf{v}_{m+1}\mathbf{e}_m^\top\),其中 \(\mathbf{e}_m\) 为单位向量。
-
投影求解
FOM要求近似解 \(\mathbf{x}_m\) 满足残差正交于Krylov子空间,即 \(\mathbf{r}_m \perp \mathcal{K}_m(A, \mathbf{r}_0)\)。设 \(\mathbf{x}_m = \mathbf{x}_0 + V_m \mathbf{y}_m\)(\(\mathbf{y}_m \in \mathbb{R}^m\)),代入残差公式并利用正交性可得:
\[ V_m^\top (\mathbf{b} - A(\mathbf{x}_0 + V_m \mathbf{y}_m)) = \mathbf{0} \implies V_m^\top A V_m \mathbf{y}_m = V_m^\top \mathbf{r}_0. \]
由Arnoldi过程性质知 \(V_m^\top A V_m = H_m\) 且 \(V_m^\top \mathbf{r}_0 = \|\mathbf{r}_0\|_2 \mathbf{e}_1\),因此问题转化为求解小规模线性方程组:
\[ H_m \mathbf{y}_m = \|\mathbf{r}_0\|_2 \mathbf{e}_1. \]
解出 \(\mathbf{y}_m\) 后,代入 \(\mathbf{x}_m = \mathbf{x}_0 + V_m \mathbf{y}_m\) 即得近似解。
- 收敛性与重启策略
- 若 \(h_{m+1,m} = 0\),则FOM在 \(m\) 步后得到精确解。
- 对于大型问题,子空间维度 \(m\) 需限制以避免存储开销。若未收敛,可采用重启策略:用当前 \(\mathbf{x}_m\) 作为新初始猜测,重新构建Krylov子空间迭代。
总结
FOM通过Arnoldi过程将高维问题投影到低维正交子空间,利用Hessenberg矩阵的特性简化求解。其优势在于适用于稀疏非对称矩阵,且无需显式存储大型矩阵,但需注意重启策略以平衡计算效率与精度。