下一节:转换为标准问题 上一级:广义非厄米特征值问题 上一节:引言

直接法

QZ算法 是计算广义非对称厄米特征值问题(GNHEP)(8.1)的首选方法。 该算法是针对广义特征值问题的QR算法(参见第7.3节)的类似方法。 它遵循QR算法所述的模式:

  1. 首先通过酉等价变换同时将AB化为压缩形式。 更具体地说,A被化为上海森堡形式,而B被化为上三角形式(舒尔形式)。 关键在于现在要将A也化为上舒尔形式,同时保持B为该形式。 这一步在下一步中完成。
  2. 通过矩阵对AB上的酉等价变换QZ,模拟一次带位移的QR步对AB^{-1}的影响(不形成该矩阵乘积);这是QZ迭代的核心。 如果迭代应用,它将A化为三角或准三角形式(即对角线上有22块,以避免复数运算),同时保持B的三角结构。 收敛时,我们得到AB的广义舒尔形式(参见第2.6节);即,我们计算出正交的QZ,使得QAZQBZ为上三角。
  3. 可以从三角形式的对角线计算特征值。 特征向量可以作为三角问题的特征向量计算,然后通过Z变换回原问题的特征向量。
这一简要概述必然遗留了许多重要问题未予讨论。 欲了解更多细节,读者应查阅文献:QZ算法的原始论文是莫勒和斯图尔特[328];QZ算法也在例如戈卢布和范洛恩[198]或戴米尔[114]的教科书中有所描述。

QZ算法可求得所有特征值,并可选地求得右和左特征向量。 它需要O(n^3)次浮点运算和O(n^2)个内存位置,其中nAB的阶数。 更具体地说,仅计算特征值需要约30 n^3次浮点运算。 如果需要右特征向量,则还需额外16n^3次运算,左特征向量亦然。 这些工作量的估计基于经验,即每个特征值约需两次QZ迭代(QZ的收敛性质与QR大致相同)。

大多数与线性代数相关的软件包都包含了实现QZ算法的子程序。 在MATLAB中,它被用作eig(A,B)命令。[1]在LAPACK[12]中,以下驱动程序可用于执行各种任务:

xGGES:计算广义特征值、广义舒尔形式,并可选地计算左和/或右舒尔向量矩阵。
xGGESX:xGGES加上特征值和降阶子空间的条件估计。
xGGEV:广义特征值,并可选地计算左和/或右广义特征向量。
xGGEVX:xGGEV加上特征值和特征向量的条件估计。
字母{\tt x}代表实单或双精度数据类型的S或D,或复单或双精度数据类型的C或Z。


  1. 据悉,基于LAPACK的数值计算库将成为MATLAB下一次重大发布的一部分;详情请参阅《MATLAB、Simulink及工具箱用户通讯》2000年冬季刊,网址为http://www.mathworks.com/company/newsletter/clevescorner/winter2000.cleve.shtml。


下一节:转换为标准问题 上一级:广义非厄米特征值问题 上一节:引言
Susan Blackford 2000-11-20