随机化Chebyshev迭代法求解大型稀疏线性方程组
字数 5761 2025-12-12 09:30:23

随机化Chebyshev迭代法求解大型稀疏线性方程组


1. 问题描述

我们考虑求解大型稀疏线性方程组

\[A\mathbf{x} = \mathbf{b}, \]

其中 \(A \in \mathbb{R}^{n \times n}\) 是对称正定(SPD)矩阵,\(\mathbf{b} \in \mathbb{R}^n\) 是已知向量,\(\mathbf{x} \in \mathbb{R}^n\) 是待求解向量。在许多科学与工程问题中(如偏微分方程离散化),\(A\) 通常非常大(\(n\) 可达数百万甚至更大)且稀疏。直接法(如 LU 分解)因内存和计算成本过高而不适用,因此迭代法是更可行的选择。

Chebyshev 迭代法是一种多项式迭代方法,它通过构造一系列 Chebyshev 多项式来加速收敛,特别适用于系数矩阵的特征值边界已知的情况。其基本思想是:将解向量表示为初始猜测与一系列修正项的线性组合,这些修正项由 Chebyshev 多项式生成,以最小化迭代误差在某种范数下的上界。


2. 核心思想

Chebyshev 迭代法属于多项式加速方法。它不依赖于 Krylov 子空间的正交性(如共轭梯度法),而是利用 Chebyshev 多项式在区间 \([-1,1]\) 上的最小最大性质,将矩阵 \(A\) 的特征值映射到该区间,从而设计迭代格式,使误差在谱半径上快速衰减。


3. 逐步推导与算法细节

步骤 1:将问题转化为多项式优化问题

设第 \(k\) 步迭代的解为 \(\mathbf{x}_k\),误差为 \(\mathbf{e}_k = \mathbf{x}_* - \mathbf{x}_k\)\(\mathbf{x}_*\) 为精确解)。由于 \(A\) 对称正定,其特征值满足 \(0 < \lambda_{\min} = \lambda_1 \leq \lambda_2 \leq \dots \leq \lambda_n = \lambda_{\max}\)

我们希望通过一个 \(k\) 次多项式 \(P_k(\lambda)\) 满足 \(P_k(0) = 1\),来构造迭代:

\[\mathbf{e}_k = P_k(A) \mathbf{e}_0, \]

其中 \(\mathbf{e}_0\) 是初始误差。我们希望选择 \(P_k\) 使得 \(\|P_k(A)\|_2\) 尽可能小,从而误差衰减快。因为 \(A\) 对称,有

\[\|P_k(A)\|_2 = \max_{\lambda \in [\lambda_{\min},\lambda_{\max}]} |P_k(\lambda)|. \]

于是问题转化为:在多项式集合 \(\{P_k: P_k(0)=1\}\) 中,寻找一个多项式使得

\[\max_{\lambda \in [\lambda_{\min},\lambda_{\max}]} |P_k(\lambda)| \]

最小。


步骤 2:Chebyshev多项式的最小最大性质

标准 Chebyshev 多项式 \(T_k(t)\) 定义在 \([-1,1]\) 上:

\[T_k(t) = \cos(k \arccos t), \quad |t| \leq 1. \]

它在 \([-1,1]\) 上满足 \(|T_k(t)| \leq 1\),并且在首项系数为 \(2^{k-1}\) 的所有 \(k\) 次多项式中,\(T_k(t)/2^{k-1}\) 是零点的唯一多项式,在 \([-1,1]\) 上与零的偏差最小。

我们需要将区间 \([\lambda_{\min},\lambda_{\max}]\) 映射到 \([-1,1]\)。设

\[\lambda = \frac{\lambda_{\max} + \lambda_{\min}}{2} + \frac{\lambda_{\max} - \lambda_{\min}}{2} t, \quad t \in [-1,1]. \]

定义缩放平移后的 Chebyshev 多项式:

\[\tilde{P}_k(\lambda) = \frac{T_k\left( \frac{\lambda_{\max} + \lambda_{\min} - 2\lambda}{\lambda_{\max} - \lambda_{\min}} \right)}{T_k\left( \frac{\lambda_{\max} + \lambda_{\min}}{\lambda_{\max} - \lambda_{\min}} \right)}. \]

注意 \(\tilde{P}_k(0) = 1\),且 \(|\tilde{P}_k(\lambda)| \leq 1 / |T_k(\gamma)|\) 对于 \(\lambda \in [\lambda_{\min},\lambda_{\max}]\),其中

\[\gamma = \frac{\lambda_{\max} + \lambda_{\min}}{\lambda_{\max} - \lambda_{\min}} > 1. \]

由于 \(|T_k(\gamma)|\)\(k\) 指数增长,误差会指数衰减。


步骤 3:递推公式的导出

利用 Chebyshev 多项式的三项递推关系:

\[T_{k+1}(t) = 2t T_k(t) - T_{k-1}(t), \quad T_0(t)=1, \ T_1(t)=t. \]

\[\alpha = \frac{\lambda_{\max} + \lambda_{\min}}{2}, \quad \beta = \frac{\lambda_{\max} - \lambda_{\min}}{2}, \quad t = \frac{\alpha - \lambda}{\beta}. \]

定义 \(C_k = T_k(\alpha / \beta)\),则

\[\tilde{P}_k(\lambda) = \frac{T_k((\alpha - \lambda)/\beta)}{C_k}. \]

代入三项递推,可得到解向量迭代格式。经过推导(过程略),得到 Chebyshev迭代法 的递推形式:

初始化:选 \(\mathbf{x}_0\),计算 \(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\)
\(\rho = \frac{\lambda_{\max} - \lambda_{\min}}{\lambda_{\max} + \lambda_{\min}}\),并取

\[\omega_1 = \frac{2}{2\lambda_{\max} - \lambda_{\min}}, \quad \mathbf{x}_1 = \mathbf{x}_0 + \omega_1 \mathbf{r}_0. \]

对于 \(k \geq 1\)

\[\omega_{k+1} = \frac{4}{4\lambda_{\max} - \lambda_{\min} - \left( \frac{\lambda_{\max} - \lambda_{\min}}{2} \right)^2 \omega_k}, \]

\[ \mathbf{x}_{k+1} = \mathbf{x}_k + \omega_{k+1} (\mathbf{b} - A\mathbf{x}_k) + \frac{\omega_{k+1}}{\omega_k} (1 - \omega_k \lambda_{\min}) (\mathbf{x}_k - \mathbf{x}_{k-1}). \]

注意:实际常用简化形式(见下一步)。


步骤 4:简化递推公式(实用形式)

\[\theta = \frac{\lambda_{\max} + \lambda_{\min}}{2}, \quad \delta = \frac{\lambda_{\max} - \lambda_{\min}}{2}, \quad \rho = \frac{\delta}{\theta}. \]

并设

\[\tau_k = T_k(1/\rho), \quad \sigma_k = \frac{2}{\delta} \cdot \frac{\tau_{k-1}}{\tau_k}. \]

可得更稳定的递推(避免直接使用 \(\lambda_{\min}, \lambda_{\max}\) 造成数值敏感):

  1. 初始化:\(\mathbf{x}_0\) 任意,\(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\)\(\mathbf{x}_1 = \mathbf{x}_0 + \frac{2}{2\lambda_{\max} - \lambda_{\min}} \mathbf{r}_0\)
  2. \(k=1,2,\dots\) 直到收敛:

\[\mathbf{r}_k = \mathbf{b} - A\mathbf{x}_k, \]

\[ \omega_{k+1} = \left[ \theta - \frac{\delta^2}{4} \omega_k \right]^{-1} \cdot 2, \]

\[ \mathbf{x}_{k+1} = \mathbf{x}_k + \omega_{k+1} \mathbf{r}_k + \frac{\omega_{k+1}}{\omega_k} (1 - \omega_k \lambda_{\min}) (\mathbf{x}_k - \mathbf{x}_{k-1}). \]


步骤 5:收敛性分析

误差满足:

\[\frac{\|\mathbf{e}_k\|_A}{\|\mathbf{e}_0\|_A} \leq 2 \left( \frac{\sqrt{\kappa} - 1}{\sqrt{\kappa} + 1} \right)^k, \]

其中 \(\kappa = \lambda_{\max}/\lambda_{\min}\) 是条件数,\(\|\mathbf{e}\|_A = \sqrt{\mathbf{e}^T A \mathbf{e}}\) 是能量范数。
与最速下降法相比,Chebyshev 迭代避免了最坏情况的方向,收敛速度由 \(\kappa\) 决定,且不需要计算内积(无正交化),适合并行计算。


步骤 6:与共轭梯度法(CG)的比较

  • CG 在能量范数下是最优的,但需要全局内积(并行时通信成本高)。
  • Chebyshev 迭代不需要内积,只需已知 \([\lambda_{\min},\lambda_{\max}]\),适合分布式计算。
  • 如果特征值边界估计不准,Chebyshev 可能收敛慢甚至发散,CG 则对谱分布不敏感(但仍受条件数影响)。
  • Chebyshev 可作为预处理子的加速方法(多项式预处理)。

步骤 7:算法总结

输入:\(A, \mathbf{b}\),初值 \(\mathbf{x}_0\)\(\lambda_{\min}\)\(\lambda_{\max}\),容差 \(\epsilon\),最大步数 \(K\)
输出:近似解 \(\mathbf{x}_k\)

  1. 计算 \(\theta = (\lambda_{\max} + \lambda_{\min})/2\)\(\delta = (\lambda_{\max} - \lambda_{\min})/2\)\(\rho = \delta/\theta\)
  2. 计算 \(\mathbf{r}_0 = \mathbf{b} - A\mathbf{x}_0\)
  3. \(\omega_1 = 2 / (2\lambda_{\max} - \lambda_{\min})\)\(\mathbf{x}_1 = \mathbf{x}_0 + \omega_1 \mathbf{r}_0\)
  4. \(k = 1,2,\dots,K\)
    • 计算残差 \(\mathbf{r}_k = \mathbf{b} - A\mathbf{x}_k\)
    • 如果 \(\|\mathbf{r}_k\|_2 < \epsilon\),退出。
    • 计算 \(\omega_{k+1} = 4 / (4\lambda_{\max} - \lambda_{\min} - \delta^2 \omega_k)\)
    • 更新:

\[ \mathbf{x}_{k+1} = \mathbf{x}_k + \omega_{k+1} \mathbf{r}_k + \frac{\omega_{k+1}}{\omega_k} (1 - \omega_k \lambda_{\min}) (\mathbf{x}_k - \mathbf{x}_{k-1}). \]

  1. 返回 \(\mathbf{x}_k\)

8. 关键点

  • Chebyshev 迭代法需要预先估计 \(\lambda_{\min}\)\(\lambda_{\max}\),可用 Gershgorin 圆定理或少量迭代(如幂法)得到。
  • 该方法特别适合在已知谱边界且矩阵-向量乘易于并行的情况下,作为 CG 的替代。
  • 若特征值分布不均匀,可结合多项式预处理(如 Chebyshev 多项式平滑)改善收敛。
随机化Chebyshev迭代法求解大型稀疏线性方程组 1. 问题描述 我们考虑求解大型稀疏线性方程组 \[ A\mathbf{x} = \mathbf{b}, \] 其中 \(A \in \mathbb{R}^{n \times n}\) 是对称正定(SPD)矩阵,\(\mathbf{b} \in \mathbb{R}^n\) 是已知向量,\(\mathbf{x} \in \mathbb{R}^n\) 是待求解向量。在许多科学与工程问题中(如偏微分方程离散化),\(A\) 通常非常大(\(n\) 可达数百万甚至更大)且稀疏。直接法(如 LU 分解)因内存和计算成本过高而不适用,因此迭代法是更可行的选择。 Chebyshev 迭代法是一种多项式迭代方法,它通过构造一系列 Chebyshev 多项式来加速收敛,特别适用于系数矩阵的特征值边界已知的情况。其基本思想是:将解向量表示为初始猜测与一系列修正项的线性组合,这些修正项由 Chebyshev 多项式生成,以最小化迭代误差在某种范数下的上界。 2. 核心思想 Chebyshev 迭代法属于 多项式加速方法 。它不依赖于 Krylov 子空间的正交性(如共轭梯度法),而是利用 Chebyshev 多项式在区间 \([ -1,1 ]\) 上的最小最大性质,将矩阵 \(A\) 的特征值映射到该区间,从而设计迭代格式,使误差在谱半径上快速衰减。 3. 逐步推导与算法细节 步骤 1:将问题转化为多项式优化问题 设第 \(k\) 步迭代的解为 \(\mathbf{x} k\),误差为 \(\mathbf{e} k = \mathbf{x} * - \mathbf{x} k\)(\(\mathbf{x} * \) 为精确解)。由于 \(A\) 对称正定,其特征值满足 \(0 < \lambda {\min} = \lambda_ 1 \leq \lambda_ 2 \leq \dots \leq \lambda_ n = \lambda_ {\max}\)。 我们希望通过一个 \(k\) 次多项式 \(P_ k(\lambda)\) 满足 \(P_ k(0) = 1\),来构造迭代: \[ \mathbf{e} k = P_ k(A) \mathbf{e} 0, \] 其中 \(\mathbf{e} 0\) 是初始误差。我们希望选择 \(P_ k\) 使得 \(\|P_ k(A)\| 2\) 尽可能小,从而误差衰减快。因为 \(A\) 对称,有 \[ \|P_ k(A)\| 2 = \max {\lambda \in [ \lambda {\min},\lambda {\max}]} |P_ k(\lambda)|. \] 于是问题转化为:在多项式集合 \(\{P_ k: P_ k(0)=1\}\) 中,寻找一个多项式使得 \[ \max {\lambda \in [ \lambda {\min},\lambda_ {\max}]} |P_ k(\lambda)| \] 最小。 步骤 2:Chebyshev多项式的最小最大性质 标准 Chebyshev 多项式 \(T_ k(t)\) 定义在 \([ -1,1 ]\) 上: \[ T_ k(t) = \cos(k \arccos t), \quad |t| \leq 1. \] 它在 \([ -1,1]\) 上满足 \(|T_ k(t)| \leq 1\),并且在首项系数为 \(2^{k-1}\) 的所有 \(k\) 次多项式中,\(T_ k(t)/2^{k-1}\) 是零点的唯一多项式,在 \([ -1,1 ]\) 上与零的偏差最小。 我们需要将区间 \([ \lambda_ {\min},\lambda_ {\max}]\) 映射到 \([ -1,1 ]\)。设 \[ \lambda = \frac{\lambda_ {\max} + \lambda_ {\min}}{2} + \frac{\lambda_ {\max} - \lambda_ {\min}}{2} t, \quad t \in [ -1,1 ]. \] 定义缩放平移后的 Chebyshev 多项式: \[ \tilde{P} k(\lambda) = \frac{T_ k\left( \frac{\lambda {\max} + \lambda_ {\min} - 2\lambda}{\lambda_ {\max} - \lambda_ {\min}} \right)}{T_ k\left( \frac{\lambda_ {\max} + \lambda_ {\min}}{\lambda_ {\max} - \lambda_ {\min}} \right)}. \] 注意 \(\tilde{P} k(0) = 1\),且 \(|\tilde{P} k(\lambda)| \leq 1 / |T_ k(\gamma)|\) 对于 \(\lambda \in [ \lambda {\min},\lambda {\max} ]\),其中 \[ \gamma = \frac{\lambda_ {\max} + \lambda_ {\min}}{\lambda_ {\max} - \lambda_ {\min}} > 1. \] 由于 \(|T_ k(\gamma)|\) 随 \(k\) 指数增长,误差会指数衰减。 步骤 3:递推公式的导出 利用 Chebyshev 多项式的三项递推关系: \[ T_ {k+1}(t) = 2t T_ k(t) - T_ {k-1}(t), \quad T_ 0(t)=1, \ T_ 1(t)=t. \] 令 \[ \alpha = \frac{\lambda_ {\max} + \lambda_ {\min}}{2}, \quad \beta = \frac{\lambda_ {\max} - \lambda_ {\min}}{2}, \quad t = \frac{\alpha - \lambda}{\beta}. \] 定义 \(C_ k = T_ k(\alpha / \beta)\),则 \[ \tilde{P}_ k(\lambda) = \frac{T_ k((\alpha - \lambda)/\beta)}{C_ k}. \] 代入三项递推,可得到解向量迭代格式。经过推导(过程略),得到 Chebyshev迭代法 的递推形式: 初始化:选 \(\mathbf{x} 0\),计算 \(\mathbf{r} 0 = \mathbf{b} - A\mathbf{x} 0\)。 设 \(\rho = \frac{\lambda {\max} - \lambda {\min}}{\lambda {\max} + \lambda_ {\min}}\),并取 \[ \omega_ 1 = \frac{2}{2\lambda_ {\max} - \lambda_ {\min}}, \quad \mathbf{x} 1 = \mathbf{x} 0 + \omega_ 1 \mathbf{r} 0. \] 对于 \(k \geq 1\): \[ \omega {k+1} = \frac{4}{4\lambda {\max} - \lambda {\min} - \left( \frac{\lambda_ {\max} - \lambda_ {\min}}{2} \right)^2 \omega_ k}, \] \[ \mathbf{x} {k+1} = \mathbf{x} k + \omega {k+1} (\mathbf{b} - A\mathbf{x} k) + \frac{\omega {k+1}}{\omega_ k} (1 - \omega_ k \lambda {\min}) (\mathbf{x} k - \mathbf{x} {k-1}). \] 注意:实际常用简化形式(见下一步)。 步骤 4:简化递推公式(实用形式) 令 \[ \theta = \frac{\lambda_ {\max} + \lambda_ {\min}}{2}, \quad \delta = \frac{\lambda_ {\max} - \lambda_ {\min}}{2}, \quad \rho = \frac{\delta}{\theta}. \] 并设 \[ \tau_ k = T_ k(1/\rho), \quad \sigma_ k = \frac{2}{\delta} \cdot \frac{\tau_ {k-1}}{\tau_ k}. \] 可得更稳定的递推(避免直接使用 \(\lambda_ {\min}, \lambda_ {\max}\) 造成数值敏感): 初始化:\(\mathbf{x}_ 0\) 任意,\(\mathbf{r}_ 0 = \mathbf{b} - A\mathbf{x}_ 0\),\(\mathbf{x} 1 = \mathbf{x} 0 + \frac{2}{2\lambda {\max} - \lambda {\min}} \mathbf{r}_ 0\)。 对 \(k=1,2,\dots\) 直到收敛: \[ \mathbf{r} k = \mathbf{b} - A\mathbf{x} k, \] \[ \omega {k+1} = \left[ \theta - \frac{\delta^2}{4} \omega_ k \right ]^{-1} \cdot 2, \] \[ \mathbf{x} {k+1} = \mathbf{x} k + \omega {k+1} \mathbf{r} k + \frac{\omega {k+1}}{\omega_ k} (1 - \omega_ k \lambda_ {\min}) (\mathbf{x} k - \mathbf{x} {k-1}). \] 步骤 5:收敛性分析 误差满足: \[ \frac{\|\mathbf{e}_ k\|_ A}{\|\mathbf{e} 0\| A} \leq 2 \left( \frac{\sqrt{\kappa} - 1}{\sqrt{\kappa} + 1} \right)^k, \] 其中 \(\kappa = \lambda {\max}/\lambda {\min}\) 是条件数,\(\|\mathbf{e}\|_ A = \sqrt{\mathbf{e}^T A \mathbf{e}}\) 是能量范数。 与最速下降法相比,Chebyshev 迭代避免了最坏情况的方向,收敛速度由 \(\kappa\) 决定,且不需要计算内积(无正交化),适合并行计算。 步骤 6:与共轭梯度法(CG)的比较 CG 在能量范数下是最优的,但需要全局内积(并行时通信成本高)。 Chebyshev 迭代不需要内积,只需已知 \([ \lambda_ {\min},\lambda_ {\max} ]\),适合分布式计算。 如果特征值边界估计不准,Chebyshev 可能收敛慢甚至发散,CG 则对谱分布不敏感(但仍受条件数影响)。 Chebyshev 可作为预处理子的加速方法(多项式预处理)。 步骤 7:算法总结 输入:\(A, \mathbf{b}\),初值 \(\mathbf{x} 0\),\(\lambda {\min}\),\(\lambda_ {\max}\),容差 \(\epsilon\),最大步数 \(K\)。 输出:近似解 \(\mathbf{x}_ k\)。 计算 \(\theta = (\lambda_ {\max} + \lambda_ {\min})/2\),\(\delta = (\lambda_ {\max} - \lambda_ {\min})/2\),\(\rho = \delta/\theta\)。 计算 \(\mathbf{r}_ 0 = \mathbf{b} - A\mathbf{x}_ 0\)。 设 \(\omega_ 1 = 2 / (2\lambda_ {\max} - \lambda_ {\min})\),\(\mathbf{x}_ 1 = \mathbf{x}_ 0 + \omega_ 1 \mathbf{r}_ 0\)。 对 \(k = 1,2,\dots,K\): 计算残差 \(\mathbf{r}_ k = \mathbf{b} - A\mathbf{x}_ k\)。 如果 \(\|\mathbf{r}_ k\|_ 2 < \epsilon\),退出。 计算 \(\omega_ {k+1} = 4 / (4\lambda_ {\max} - \lambda_ {\min} - \delta^2 \omega_ k)\)。 更新: \[ \mathbf{x} {k+1} = \mathbf{x} k + \omega {k+1} \mathbf{r} k + \frac{\omega {k+1}}{\omega_ k} (1 - \omega_ k \lambda {\min}) (\mathbf{x} k - \mathbf{x} {k-1}). \] 返回 \(\mathbf{x}_ k\)。 8. 关键点 Chebyshev 迭代法需要预先估计 \(\lambda_ {\min}\) 和 \(\lambda_ {\max}\),可用 Gershgorin 圆定理或少量迭代(如幂法)得到。 该方法特别适合在已知谱边界且矩阵-向量乘易于并行的情况下,作为 CG 的替代。 若特征值分布不均匀,可结合多项式预处理(如 Chebyshev 多项式平滑)改善收敛。