下一节:可用的软件
上一级:对称不定Lanczos方法
上一节:停止准则与精度评估
奇异B矩阵
在对称不定兰索斯过程实施中,当B矩阵奇异时需特别小心。这里我们仅限于讨论H^{-1} B可对角化的情况。若H^{-1} B是缺陷的,问题将更为复杂,详情请参阅[161]。
当B奇异时,\{A,B\}具有无穷大特征值;对应无穷大特征值的特征向量位于B的零空间中,而对应感兴趣特征值(即有限特征值)的特征向量则属于H^{-1} B的值域。考虑以下示例:
A=\left[\begin{array}{cc}\alpha & \beta\\\beta & \gamma\end{array}\right], \quad B=\left[\begin{array}{cc}1 & 0 \\0 & 0\end{array}\right].
于是
H^{-1} B = (A-\sigma B)^{-1}B=\frac{1}{\delta}\left[\begin{array}{cc}\gamma & 0\\-\beta & 0\end{array}\right],
其中\delta = (\alpha-\sigma)\gamma-\beta^2。H^{-1} B的感兴趣特征值为\gamma/\delta,相应的特征向量为
[{\gamma} \;\; {-\beta}]^T(零特征值对应于原问题的无穷大特征值)。
注意,特征向量在B的零空间中有一个分量(例如示例中的-\beta),并且H^{-1} B的值域空间与\sigma无关。重要的是,兰索斯起始向量q必须位于此值域空间内,因为空间外的分量可能在兰索斯迭代过程中增长并污染里兹向量。
确保算法8.4生成的里兹向量完全位于H^{-1} B的值域内至关重要。为此,我们建议对算法8.4进行预处理和后处理步骤。
算法8.4中的初始向量q应位于H^{-1} B的值域内。例如,可以使用H^{-1} B与随机向量的乘积。在精确算术中,若初始向量q位于H^{-1} B的值域内,则所有兰索斯向量\{q_j\}都将属于H^{-1} B的值域[340]。
然而,在有限精度算术中,仅预处理初始向量q可能不足以确保里兹向量位于H^{-1} B的值域内。随着兰索斯迭代的进行,舍入误差导致兰索斯向量在B的零空间中获得不需要的分量。尽管可以通过[340]中推导的廉价递归来监控这些分量的大小,但无法廉价地从兰索斯向量中消除这些分量。幸运的是,有一种简单的后处理方案可以清除位于B零空间中的里兹向量的不期望分量。其思路是用H^{-1}Bx_i^{(j)}的倍数替换里兹向量{x}_i^{(j)},显然这属于H^{-1} B的值域。实际上,无需显式计算向量H^{-1}Bx_i^{(j)};我们可以利用兰索斯过程中现成的量来计算与H^{-1}B {x}_i^{(j)}平行的向量。由方程(8.23)可知
H^{-1}B{x}_i^{(j)}= \theta_i^{(j)} {x}_i^{(j)} +\gamma_i^{(j)}q_{j+1}.
因此,可以通过简单地用q_{j+1}的倍数更新{x}_i^{(j)}来廉价计算净化的里兹向量,
(1/\theta_i^{(j)})H^{-1}B{x}_i^{(j)},
x_i^{(j)} := {x}_i^{(j)} +\frac{\gamma_i^{(j)}}{\theta_i^{(j)}}q_{j+1}. \tag{8.27}
这一技术最初在[162]中提出,旨在提高里兹向量的质量,后来在[340]中证明具有所需的净化效果。数值经验表明,更新后的向量几乎完全位于H^{-1} B的值域内,通常能提供更好的特征向量近似。该方案也推荐用于不定情况。
下一节:可用的软件
上一级:对称不定Lanczos方法
上一节:停止准则与精度评估
Susan Blackford
2000-11-20