下一节:局部重新正交化
上一级:重新正交化
上一节:完全重新正交化
随着基的大小 j 增长,完全再正交化将需要大量的算术工作,我们寻求一种更经济的方案。可以证明,只要基是近正交(semiorthogonal)的,即正交到机器精度的二分之一,Lanczos算法的大多数期望性质都能保持。
Wj=Vj∗Vj=Ij+E,∥E∥<ϵM.
读者可参考Simon[402]的详细讨论。证明指出,如果通过具有半正交基 Vj 的Lanczos算法计算三对角矩阵 T,那么 T 是 A 在计算基 Vj 所张成子空间上的完全精确投影。
Tj=Nj∗ANj+G,∥G∥=O(ϵM∥A∥).
这里 Nj 是 Vj 所张成子空间的一个正交基。即使 Nj 不显式已知,我们也知道 Tj 的特征值是 A 特征值的精确近似。
确保计算基半正交的一种方法是使用Paige推导的递归关系,监测早期步骤中正交性的损失如何传播到后续步骤,并在递归关系指示超过 ϵM 阈值时进行再正交化。该递归关系涉及乘积矩阵 Wj 的连续元素 ωj,k,并从基本递归关系推导得出。
首先注意到计算向量 vj+1 满足基本递归关系:
βjvj+1=Avj−αjvj−βj−1vj−1+fj,
其中 fj 是舍入误差向量。为得到乘积矩阵 Wj 的元素 ωj,k,我们用 vk∗ 预乘以上式:
βjωj+1,k=vk∗Avj−αjωj,k−βj−1ωj−1,k+vk∗fj.
交换 j 和 k 的乘积关系得到:
βkωj,k+1=vj∗Avk−αkωj,k−βk−1ωj,k−1+vj∗fk,
两式相减得到:
βjωj+1,k=βkωj,k+1+(αk−αj)ωj,k+βk−1ωj,k−1−βj−1ωj−1,k−vj∗fk+vk∗fj.
注意到由于 A 是厄米矩阵,涉及 A 的项抵消了。
我们使用此递归关系逐行填充对称矩阵 W 的下半三角部分。对角元素 ωk,k=1 和紧邻对角线上下的元素 ωk−1,k=ωk,k−1=O(ϵM) 在舍入误差水平上,由于对称性和显式正交化。这为递归关系提供了初始值。我们估计最后两项的绝对值之和为 2ϵM∥A∥,并将其输入递归关系,选择符号以最大化新的 ∣ωj+1,k∣。
ω~=βkωj,k+1+(αk−αj)ωj,k+βk−1ωj,k−1−βj−1ωj−1,k,
ωj+1,k=(ω~+sign(ω~)2ϵM∥A∥)/βj.
一旦某个元素 ωj+1,k 超过 ϵM 阈值,我们就将当前向量 vj 和 vj+1 对所有先前的向量 vk,k=1,…,j 进行正交化,并将相应的 ωj,k 和 ωj+1,k 降至舍入误差水平。由于Lanczos方法中的三项递归关系,我们需要正交化两个向量。存储矩阵 W 的 ω 估计值时,仅需存储最新的两行 j−1 和 j。
上述技术之一在[402]中描述。另一种方法仅对那些 ωj+1,k 超过阈值的向量 vk 进行显式正交化。Simon[402]称之为部分再正交化,而这里描述的周期性再正交化,由Grcar[204]首次描述,实现更简单,并能使用Level 2 BLAS操作。
下一节:局部重新正交化
上一级:重新正交化
上一节:完全重新正交化
Susan Blackford
2000-11-20