双步隐式位移QR算法计算矩阵特征值
字数 1711 2025-10-27 11:27:25
双步隐式位移QR算法计算矩阵特征值
题目描述
双步隐式位移QR算法是计算实矩阵所有特征值的高效数值方法,特别适用于非对称矩阵。它通过隐式应用两次位移的QR迭代,将矩阵逐步转化为舒尔形式(上三角矩阵),从而直接读取特征值。与显式QR算法相比,双步隐式方法避免了复数运算,且通过保结构变换维持数值稳定性。核心问题:给定一个实矩阵 \(A \in \mathbb{R}^{n \times n}\),如何通过双步隐式位移QR算法计算其特征值?
解题过程
-
预处理:转化为上海森伯格形式
- 目标:使用Householder变换将矩阵 \(A\) 化为上海森伯格矩阵 \(H\)(即当 \(i > j+1\) 时 \(h_{ij} = 0\)),减少后续计算量。
- 步骤:
- 对 \(k = 1\) 到 \(n-2\) 列,计算Householder反射矩阵 \(P_k\),使得 \(A\) 的第 \(k\) 列中第 \(k+2\) 行以下的元素变为零。
- 更新矩阵:\(A \leftarrow P_k A P_k^T\),保持相似性(特征值不变)。
- 结果:\(H\) 仅在对角线、上次对角线和上次对角线以上有非零元。
-
双步隐式位移QR迭代
- 位移策略:
- 每次迭代从 \(H\) 的右下角 \(2 \times 2\) 子矩阵 \(\begin{bmatrix} h_{n-1,n-1} & h_{n-1,n} \\ h_{n,n-1} & h_{n,n} \end{bmatrix}\) 计算两个位移量 \(\sigma_1\) 和 \(\sigma_2\),作为该子矩阵特征值的近似。
- 若特征值为复数,则使用共轭对作为位移,避免引入复数运算。
- 隐式步骤:
- 计算向量 \(v = (H - \sigma_1 I)(H - \sigma_2 I)e_1\),其中 \(e_1\) 是第一个标准基向量。
- 构造Householder变换 \(P_0\),使 \(P_0 v\) 与 \(e_1\) 对齐(即除第一个分量外其余为零)。
- 应用 \(P_0\) 到 \(H\):\(H \leftarrow P_0 H P_0^T\)。这会引入一个“凸起”(bulge),破坏上海森伯格形式。
- 追迹凸起:通过一系列Givens旋转或Householder变换 \(P_1, P_2, \dots, P_{n-2}\),将凸起沿对角线向下移动,直至恢复上海森伯格形式。具体:
- 对 \(k = 0\) 到 \(n-3\),构造 \(P_{k+1}\) 消去第 \(k+2\) 行凸起元素,更新 \(H \leftarrow P_{k+1} H P_{k+1}^T\)。
- 迭代直到 \(H\) 的对角块分离出 \(1 \times 1\)(实特征值)或 \(2 \times 2\)(共轭复特征值)子矩阵。
- 位移策略:
-
收敛判断与特征值提取
- 当上次对角线元素 \(|h_{i+1,i}|\) 小于容差(如 \(\epsilon \|H\|\))时,视作零,将 \(H\) 分割为更小的不可约块。
- 重复迭代直至所有特征值分离:
- \(1 \times 1\) 块的对角元即为实特征值。
- \(2 \times 2\) 块的特征值通过求解二次方程 \(\lambda^2 - (h_{ii} + h_{i+1,i+1})\lambda + (h_{ii}h_{i+1,i+1} - h_{i,i+1}h_{i+1,i}) = 0\) 得到复特征值。
关键点
- 隐式位移避免直接计算 \((H - \sigma_1 I)(H - \sigma_2 I)\) 的显式QR分解,提升效率。
- 通过保相似变换维持特征值不变,且数值稳定性优于显式方法。
- 算法复杂度为 \(O(n^3)\),但预处理后每次迭代仅 \(O(n^2)\)。