基于Krylov子空间的COCG算法解对称复线性方程组
题目描述
考虑求解对称复线性方程组:
\[A\mathbf{x} = \mathbf{b} \]
其中 \(A \in \mathbb{C}^{n \times n}\) 是对称矩阵(即 \(A = A^T\),但未必是Hermitian矩阵),且可能非正定。\(\mathbf{b} \in \mathbb{C}^n\) 是已知向量,需高效求解未知向量 \(\mathbf{x} \in \mathbb{C}^n\)。COCG(Conjugate Orthogonal Conjugate Gradient)算法是专为此类问题设计的Krylov子空间方法,通过构建共轭正交的搜索方向来避免传统CG算法对正定性的依赖。
解题过程
1. 问题分析与算法动机
- 传统共轭梯度法要求矩阵对称正定(实数域)或Hermitian正定(复数域)。若 \(A\) 仅对称但非Hermitian(例如 \(A \neq A^H\)),则标准CG可能失效。
- COCG通过修改内积定义,将复数域中的共轭正交性(而非标准正交性)作为搜索方向的构建原则,确保残差向量在Krylov子空间中快速下降。
- 核心思想:在Krylov子空间 \(\mathcal{K}_m(A, \mathbf{r}_0) = \text{span}\{\mathbf{r}_0, A\mathbf{r}_0, \dots, A^{m-1}\mathbf{r}_0\}\) 中迭代逼近解,其中 \(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\) 是初始残差。
2. 共轭正交性的定义
- 在复数域中,COCG使用双共轭内积(bilinear form):
\[ \langle \mathbf{u}, \mathbf{v} \rangle = \mathbf{u}^T \mathbf{v} \quad (\text{而非 } \mathbf{u}^H \mathbf{v}) \]
- 两个向量 \(\mathbf{p}\) 和 \(\mathbf{q}\) 称为共轭正交(conjugate orthogonal),若满足:
\[ \mathbf{p}^T A \mathbf{q} = 0 \]
此条件替代了传统CG中 \(\mathbf{p}^H A \mathbf{q} = 0\) 的共轭正交性。
3. COCG算法步骤
初始化:
- 选择初始解 \(\mathbf{x}_0\)(通常设为零向量),计算初始残差 \(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\)。
- 设初始搜索方向 \(\mathbf{p}_0 = \mathbf{r}_0\)。
迭代步骤(第 \(k\) 步):
- 计算步长 \(\alpha_k\):
\[ \alpha_k = \frac{\mathbf{r}_k^T \mathbf{r}_k}{\mathbf{p}_k^T A \mathbf{p}_k} \]
分子是残差的双共轭内积,分母确保搜索方向 \(\mathbf{p}_k\) 与 \(A\mathbf{p}_k\) 共轭正交。
- 更新解和残差:
\[ \mathbf{x}_{k+1} = \mathbf{x}_k + \alpha_k \mathbf{p}_k \]
\[ \mathbf{r}_{k+1} = \mathbf{r}_k - \alpha_k A \mathbf{p}_k \]
残差更新需严格按此公式,避免累积误差。
- 计算方向更新系数 \(\beta_k\):
\[ \beta_k = \frac{\mathbf{r}_{k+1}^T \mathbf{r}_{k+1}}{\mathbf{r}_k^T \mathbf{r}_k} \]
该系数衡量新旧残差的相对变化。
- 更新搜索方向:
\[ \mathbf{p}_{k+1} = \mathbf{r}_{k+1} + \beta_k \mathbf{p}_k \]
新方向 \(\mathbf{p}_{k+1}\) 与旧方向 \(\mathbf{p}_k\) 满足共轭正交性: \(\mathbf{p}_{k+1}^T A \mathbf{p}_k = 0\)。
终止条件:当残差范数 \(\|\mathbf{r}_k\|\) 小于预设容差时停止迭代。
4. 算法特性与注意事项
- 收敛性:若 \(A\) 的特征值分布良好,COCG可在远少于 \(n\) 的迭代步内收敛。
- 稳定性:由于使用双共轭内积,算法可能受舍入误差影响,需监控残差重正交化(如重启策略)。
- 与CG的区别:COCG的内积计算无需共轭转置(仅转置),适用于对称复矩阵,但不再保证残差范数单调下降。
5. 数值示例(简化的迭代演示)
设对称复矩阵 \(A = \begin{bmatrix} 2 & i \\ i & 3 \end{bmatrix}\),向量 \(\mathbf{b} = \begin{bmatrix} 1 + i \\ 2i \end{bmatrix}\),初始解 \(\mathbf{x}_0 = \mathbf{0}\)。
- 初始残差 \(\mathbf{r}_0 = \mathbf{b}\),方向 \(\mathbf{p}_0 = \mathbf{r}_0\)。
- 第一步计算 \(\alpha_0 = \frac{\mathbf{r}_0^T \mathbf{r}_0}{\mathbf{p}_0^T A \mathbf{p}_0}\),更新 \(\mathbf{x}_1\) 和 \(\mathbf{r}_1\),再通过 \(\beta_0\) 更新 \(\mathbf{p}_1\)。
- 迭代至残差足够小,即得近似解。
通过以上步骤,COCG有效解决了对称复线性方程组的求解问题,扩展了CG算法的应用范围。