双步隐式位移QR算法在实Hessenberg矩阵特征值计算中的应用
字数 1914 2025-10-31 08:19:17
双步隐式位移QR算法在实Hessenberg矩阵特征值计算中的应用
题目描述
给定一个实非对称矩阵 \(A\),如何高效计算其全部特征值?直接对 \(A\) 应用QR迭代的代价较高(每次迭代 \(O(n^3)\)),且对于复特征值的情况,实矩阵的QR迭代可能效率低下。双步隐式位移QR算法通过以下步骤解决该问题:
- 将 \(A\) 化简为上Hessenberg形式(次对角线以下全为0),使得QR迭代更高效(每次迭代 \(O(n^2)\))。
- 在迭代中隐式处理可能的复特征值,避免显式复数运算。
- 通过"隐式Q定理"保证变换的正交性,数值稳定性高。
解题过程
步骤1:预处理——化矩阵为上Hessenberg形式
- 目标:通过正交相似变换(如Householder变换)将 \(A\) 化为上Hessenberg矩阵 \(H\)(即 \(h_{ij}=0\) 当 \(i>j+1\))。
- 过程:
- 对第 \(k\) 列(\(k=1,2,\dots,n-2\)),选取Householder反射矩阵 \(P_k\),使得 \(P_k\) 作用后第 \(k\) 列次对角线以下元素归零。
- 更新 \(A \leftarrow P_k A P_k^T\),保持相似性。
- 结果:\(H = Q^T A Q\),其中 \(Q\) 是正交矩阵,\(H\) 是上Hessenberg矩阵。
步骤2:双步隐式位移QR迭代的核心思想
- 单步QR迭代的局限:对实矩阵 \(H\),若有一对共轭复特征值,单步位移(如Wilkinson位移)需复数运算。
- 双步迭代的改进:连续执行两次单步QR迭代,位移取为 \(H\) 右下角 \(2\times2\) 子矩阵的特征值(可能是共轭复数)。若位移为 \(\sigma_1, \sigma_2\),则迭代等价于:
\[ (H - \sigma_1 I)(H - \sigma_2 I) = H^2 - (\sigma_1 + \sigma_2)H + \sigma_1\sigma_2 I, \]
由于 \(\sigma_1 + \sigma_2\) 和 \(\sigma_1\sigma_2\) 均为实数,整个计算可保持实数运算。
步骤3:隐式实现双步迭代(关键技巧)
-
计算初始向量:
- 取向量 \(v = (H - \sigma_1 I)(H - \sigma_2 I)e_1\)(\(e_1\) 是第一单位向量),其仅有前三个分量非零(因 \(H\) 是上Hessenberg形式)。
- 构造Householder反射 \(P_0\) 使得 \(P_0 v\) 与 \(e_1\) 平行。
-
隐式变换:
- 对 \(H\) 应用 \(P_0\),得到 \(H \leftarrow P_0 H P_0^T\)。此时 \(H\) 的Hessenberg形式被破坏,左上角出现一个 \(3\times3\) 的"凸起"。
- 通过后续的Givens旋转或Householder变换,从左上角开始逐次恢复Hessenberg形式(即消去凸起)。
- 具体操作:对第 \(j\) 列(\(j=1,2,\dots,n-2\)),构造变换 \(P_j\) 消去第 \(j+2\) 行第 \(j\) 列的元素,同时保持已处理部分的结构。
-
隐式Q定理的保证:
- 整个变换过程等价于显式双步QR迭代,但无需显式计算 \((H - \sigma_1 I)(H - \sigma_2 I)\)。
- 定理指出:若两个正交相似变换在某初始向量上作用一致,则它们本质相同。因此隐式方法的结果与显式方法一致。
步骤4:收敛性与收缩(Deflation)
- 迭代中,当次对角线元素 \(h_{i+1,i}\) 足够小(如 \(|h_{i+1,i}| < \epsilon (|h_{ii}| + |h_{i+1,i+1}|)\)),可将其视为0,将矩阵分块为更小问题。
- 最终 \(H\) 会收敛到拟上三角矩阵(实特征值在对角线,复特征值在 \(2\times2\) 对角块中),特征值可直接读取。
总结
双步隐式位移QR算法通过巧妙的隐式变换,在实数运算框架下高效处理实矩阵的复特征值问题,是LAPACK等库中计算一般实矩阵特征值的标准方法。其核心在于将复数位移转化为实运算,并利用隐式Q定理保证数值稳定性。