收缩是QR迭代实际应用中的一个重要概念,因此对IRAM(隐式重启Arnoldi方法)同样至关重要。在QR迭代的背景下,收缩意味着将海森堡矩阵H的一个小次对角元素置零。之所以称为收缩,是因为这会将海森堡矩阵分割成两个更小的子问题,这两个子问题可以独立地进一步细化。
然而,在IRAM的背景下,传统的QR收缩技术并不总是适用。需要针对隐式重启的额外收缩功能。通常希望在精度水平\epsilon_D处进行收缩,其中1 > \epsilon_D > \epsilon_M,\epsilon_M是机器精度。理论上(即在精确算术中),当A具有对应于不同特征向量的多重特征值时,IRAM不可能计算出该多重性的多个实例,因为它是一种“单向量”方法,而非块方法。然而,在实践中,通常在收敛过程中方法会自行收缩,且舍入误差通常会在后续起始向量中引入新特征向量方向的分量,因此计算多重特征值通常没有太大困难。尽管如此,这种方法可能不可靠,可能会遗漏多重特征值。无论如何,这种方法通常需要严格的收敛容差才能成功找到多重特征值的所有实例。更有效的方法是,一旦近似特征值收敛到一定精度水平,就进行收缩(即锁定),然后强制后续的Arnoldi向量与收敛的子空间正交。通过这一功能,可以以相同的指定精度计算多重特征值的额外实例,而无需将它们收敛到不必要的过高精度。
在Arnoldi过程中,与QR迭代一样,在隐式重启的过程中,前k个次对角线元素可能会变小。然而,通常情况下,在次对角元素变小之前,H的谱中就已经出现了收敛的Ritz值。这种收敛通常通过观察H的特征向量y中的小末端分量来检测。当这种情况发生时,我们能够构造H的正交相似变换,得到一个略微扰动的H,确实具有零次对角线,这是我们收缩方案的基础。
在IRAM的背景下,需要两种类型的收缩: