在幂法基础上的一项重要改进是允许我们计算一个(p > 1)维的不变子空间,而不是一次计算一个特征向量。这种方法被称为正交迭代(有时也称为子空间迭代或同时迭代)。
算法 4.4 HEP的简单子空间迭代 (1) 取初始猜测矩阵 Z,对其做QR分解得到 Z=V R。 (2) for k = 1,2,... (3) Y = AV (4) H = V^\ast Y (5) 若 \Vert Y - VH\Vert_2 \le \epsilon_M,结束 (6) 对 Y 做QR分解得到 Y=V R (7) end for
该算法是幂法的直接推广。QR分解是一种归一化过程,类似于幂法中使用的归一化。厄米矩阵H=V^{\ast}AV的特征值将趋近于矩阵A的p个绝对值最大的特征值。
为了使简单的子空间迭代法成为高效且实际可用的代码,需要进行几项改进。首先,自然地,我们希望尽可能少地进行正交化,即在执行正交化之前进行多次迭代。其次,我们可以选择一个维数p大于所需特征值数量n_{\mathrm{ev}}的子空间,并使用瑞利-里茨过程来获取特征值近似。第三,某些特征值会比其他特征值更快收敛,如果发生这种情况,锁定这些特征值并让矩阵仅对那些尚未收敛的向量进行运算是明智的做法。
此外,该方法很少在不进行某种加速的情况下使用;我们将在本节末尾描述一些加速技术。