广义特征值问题的QZ算法
字数 1400 2025-11-05 23:45:42

广义特征值问题的QZ算法

题目描述
给定两个n×n矩阵A和B,广义特征值问题要求求解标量λ和非零向量x,使得满足方程:

\[A\mathbf{x} = \lambda B\mathbf{x} \]

当B可逆时,问题可转化为标准特征值问题\(B^{-1}A\mathbf{x} = \lambda\mathbf{x}\),但直接求逆可能数值不稳定,尤其当B接近奇异时。QZ算法通过同时将A和B转化为上三角矩阵(或拟三角矩阵)来避免显式求逆,适用于任意矩阵对(A,B)。

解题过程

1. 问题转化:Hessenberg-三角分解

  • 目标:通过正交变换将A化为上Hessenberg矩阵,同时将B化为上三角矩阵。
  • 步骤
    • 首先对B进行QR分解:\(B = QR\),其中Q正交,R为上三角矩阵。
    • 计算\(\tilde{A} = Q^\top A Q\),此时原问题等价于\(\tilde{A}\mathbf{y} = \lambda R\mathbf{y}\)(其中\(\mathbf{y} = Q^\top\mathbf{x}\))。
    • \(\tilde{A}\)应用Householder变换,将其化为上Hessenberg矩阵H,同时保持R的上三角性(需右乘变换矩阵的转置以保证B的形式不变)。
  • 结果:得到矩阵对(H, T),其中H为上Hessenberg矩阵,T为上三角矩阵,且广义特征值不变。

2. 迭代降阶:隐式QZ迭代

  • 核心思想:通过一系列正交变换,使H的非对角元素逐渐趋近于零,同时保持T的上三角性。
  • 单步迭代流程
    • 步骤1(位移选择):计算广义特征值的近似位移(如通过H和T的右下角2×2子矩阵的广义特征值)。
    • 步骤2(隐式变换)
      • 构造一个正交矩阵P,使其第一列与向量\((H - \sigma T)e_1\)(其中σ为位移)共线。
      • 对H和T同时左乘P、右乘Pᵀ:

\[ H \leftarrow P H P^\top, \quad T \leftarrow P T P^\top \]

- 此时H可能不再保持Hessenberg形式,但可通过额外的Givens旋转恢复其结构,同时保持T的上三角性。  
  • 步骤3(收敛检查):若H的次对角线元素\(|h_{i+1,i}|\)小于容差,则可将问题分解为更小的子问题。

3. 特征值提取

  • 当H和T均转化为拟三角矩阵(H为准上三角,T为上三角)时,广义特征值由对角线比值给出:

\[ \lambda_i = \frac{H_{ii}}{T_{ii}} \quad (\text{若}T_{ii} \neq 0) \]

  • 若T_{ii}=0而H_{ii}≠0,则特征值为无穷;若H_{ii}=T_{ii}=0,则特征值不确定(退化情况)。

4. 特征向量计算(可选)

  • 通过反向代入法求解广义特征向量:
    • 利用变换后的矩阵对(H, T),从最后一个非零行开始逐行求解\((H - \lambda T)\mathbf{y} = 0\)
    • 最终通过正交变换还原原问题的特征向量:\(\mathbf{x} = Q\mathbf{y}\)

关键点

  • QZ算法通过正交变换避免数值不稳定性,适用于任意矩阵对,无需B可逆。
  • 隐式位移技术加速收敛,类似标准QR算法中的双步位移策略。
  • 实际实现需处理数值误差(如零除问题)和退化情况。
广义特征值问题的QZ算法 题目描述 给定两个n×n矩阵A和B,广义特征值问题要求求解标量λ和非零向量x,使得满足方程: \[ A\mathbf{x} = \lambda B\mathbf{x} \] 当B可逆时,问题可转化为标准特征值问题\(B^{-1}A\mathbf{x} = \lambda\mathbf{x}\),但直接求逆可能数值不稳定,尤其当B接近奇异时。QZ算法通过同时将A和B转化为上三角矩阵(或拟三角矩阵)来避免显式求逆,适用于任意矩阵对(A,B)。 解题过程 1. 问题转化:Hessenberg-三角分解 目标 :通过正交变换将A化为上Hessenberg矩阵,同时将B化为上三角矩阵。 步骤 : 首先对B进行QR分解:\(B = QR\),其中Q正交,R为上三角矩阵。 计算\(\tilde{A} = Q^\top A Q\),此时原问题等价于\(\tilde{A}\mathbf{y} = \lambda R\mathbf{y}\)(其中\(\mathbf{y} = Q^\top\mathbf{x}\))。 对\(\tilde{A}\)应用Householder变换,将其化为上Hessenberg矩阵H,同时保持R的上三角性(需右乘变换矩阵的转置以保证B的形式不变)。 结果 :得到矩阵对(H, T),其中H为上Hessenberg矩阵,T为上三角矩阵,且广义特征值不变。 2. 迭代降阶:隐式QZ迭代 核心思想 :通过一系列正交变换,使H的非对角元素逐渐趋近于零,同时保持T的上三角性。 单步迭代流程 : 步骤1(位移选择) :计算广义特征值的近似位移(如通过H和T的右下角2×2子矩阵的广义特征值)。 步骤2(隐式变换) : 构造一个正交矩阵P,使其第一列与向量\((H - \sigma T)e_ 1\)(其中σ为位移)共线。 对H和T同时左乘P、右乘Pᵀ: \[ H \leftarrow P H P^\top, \quad T \leftarrow P T P^\top \] 此时H可能不再保持Hessenberg形式,但可通过额外的Givens旋转恢复其结构,同时保持T的上三角性。 步骤3(收敛检查) :若H的次对角线元素\(|h_ {i+1,i}|\)小于容差,则可将问题分解为更小的子问题。 3. 特征值提取 当H和T均转化为拟三角矩阵(H为准上三角,T为上三角)时,广义特征值由对角线比值给出: \[ \lambda_ i = \frac{H_ {ii}}{T_ {ii}} \quad (\text{若}T_ {ii} \neq 0) \] 若T_ {ii}=0而H_ {ii}≠0,则特征值为无穷;若H_ {ii}=T_ {ii}=0,则特征值不确定(退化情况)。 4. 特征向量计算(可选) 通过反向代入法求解广义特征向量: 利用变换后的矩阵对(H, T),从最后一个非零行开始逐行求解\((H - \lambda T)\mathbf{y} = 0\)。 最终通过正交变换还原原问题的特征向量:\(\mathbf{x} = Q\mathbf{y}\)。 关键点 QZ算法通过正交变换避免数值不稳定性,适用于任意矩阵对,无需B可逆。 隐式位移技术加速收敛,类似标准QR算法中的双步位移策略。 实际实现需处理数值误差(如零除问题)和退化情况。