对称矩阵特征值计算的Rayleigh商迭代法
题目描述
Rayleigh商迭代法是求解对称矩阵特征值问题的高效算法,特别适用于计算已知近似特征向量对应的特征值。问题可描述为:
给定一个 \(n \times n\) 的实对称矩阵 \(A\),求其某个特征值 \(\lambda\) 和对应的特征向量 \(x\)(满足 \(Ax = \lambda x\))。Rayleigh商迭代法通过迭代快速收敛到精确解,尤其当初始向量接近真实特征向量时,收敛速度可达立方级。
解题过程
1. Rayleigh商的定义
对于任意非零向量 \(x\),Rayleigh商 \(R(x)\) 定义为:
\[R(x) = \frac{x^T A x}{x^T x} \]
若 \(x\) 是特征向量,则 \(R(x)\) 即为对应的特征值。对于近似特征向量,\(R(x)\) 是特征值的最佳近似(在最小二乘意义下)。
2. 迭代格式
Rayleigh商迭代法的每一步分为两个阶段:
- 计算Rayleigh商:
\[ \lambda_k = R(x_k) = \frac{x_k^T A x_k}{x_k^T x_k} \]
其中 \(x_k\) 是第 \(k\) 步的迭代向量。
2. 解线性方程组更新向量:
\[ (A - \lambda_k I) x_{k+1} = x_k \]
解出 \(x_{k+1}\) 后,需归一化:
\[ x_{k+1} = \frac{x_{k+1}}{\|x_{k+1}\|} \]
3. 算法步骤详解
- 步骤1:初始化。选择任意非零初始向量 \(x_0\)(通常随机生成或基于先验知识),并归一化:
\[ x_0 = \frac{x_0}{\|x_0\|} \]
- 步骤2:迭代直至收敛。对于 \(k = 0, 1, 2, \dots\):
- 计算当前Rayleigh商:
\[ \lambda_k = x_k^T A x_k \quad (\text{因 } x_k^T x_k = 1) \]
- 解线性方程组:
\[ (A - \lambda_k I) y = x_k \]
得到未归一化的新向量 $ y $。
- 归一化:
\[ x_{k+1} = \frac{y}{\|y\|} \]
- 检查收敛条件:若 \(\|A x_{k+1} - \lambda_{k+1} x_{k+1}\| < \varepsilon\)(\(\varepsilon\) 为预设精度),则停止迭代。
4. 关键点与注意事项
- 对称性要求:算法依赖矩阵对称性以保证Rayleigh商的最优性,非对称矩阵需改用其他方法(如广义Rayleigh商迭代)。
- 收敛性:初始向量 \(x_0\) 需与某个特征向量方向接近,否则可能收敛到错误特征值。局部收敛速度为立方(即误差每步缩减为前一步的立方)。
- 线性方程组求解:需高效求解 \((A - \lambda_k I) x_{k+1} = x_k\)。当 \(A\) 大型稀疏时,可用迭代法(如共轭梯度法)或预处理技术。
- 特征值顺序:算法收敛到与初始向量最接近的特征值,无法直接控制选择最大或最小特征值(需结合幂迭代或逆迭代预处理)。
5. 示例演示
设对称矩阵 \(A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}\),真实特征值为 \(\lambda_1 = 3, \lambda_2 = 1\)。
- 初始向量取 \(x_0 = [0.9, 0.1]^T\)(接近特征向量 \([1, 1]^T/\sqrt{2}\))。
- 第一步计算 \(\lambda_0 = x_0^T A x_0 \approx 2.18\),解方程组得 \(x_1 \approx [0.994, 0.112]^T\),归一化后继续迭代。
- 经3次迭代后,\(\lambda_k \to 3.000\),\(x_k \to [1, 1]^T/\sqrt{2}\)。
总结
Rayleigh商迭代法通过结合Rayleigh商近似和逆迭代,实现了对称矩阵特征值问题的高效求解。其核心思想是利用矩阵对称性构造快速收敛格式,适用于中小规模矩阵或稀疏矩阵的精确特征值计算。