下一节:复对称特征问题中的Lanczos方法
上一级:带状Lanczos方法
上一节:应用至降阶模型
变体
将基于单一起始向量的Krylov子空间技术扩展到多起始向量的传统方法,是设计Krylov子空间算法的块版本。非厄米Lanczos过程的块版本首先在[260,261]中提出。然而,这个块Lanczos算法假设右和左起始块具有相同的大小,即m=p,并且它没有缩减或前瞻功能。显然,任何非厄米Lanczos过程的块版本都要求所有右和左块具有相同的大小。特别是,任何块版本都局限于m=p的特殊情况,并且当可能的缩减在右和左块Krylov序列中同时发生时,使得m_c=p_c贯穿整个算法。
然而,本节描述的非厄米带状Lanczos算法不受这些限制的影响。特别是,它可以用于任意大小的起始块m,\, p\geq 1,并且它允许在右和左块Krylov序列中独立发生的缩减。
算法7.16中陈述的带状Lanczos方法的版本首次以这种形式出现在[175]中。另一种略有不同的版本,还包括一种前瞻程序来修复可能的崩溃,在[5]中描述。
算法7.16中陈述的带状Lanczos方法版本执行所有与A和A^T的乘法作为单个向量的矩阵-向量乘积。然而,在算法的任何阶段,也可以预计算下一个m_c个矩阵-向量乘积与A,这将在接下来的m_c次迭代中需要,作为一个单独的矩阵-矩阵乘积AV,其中V是一个包含m_c个向量的块。实际上,不是执行算法7.16中的步骤(9),而是计算矩阵-矩阵乘积
A \left[ \begin{array}{ccccc}v_j & \hat{v}_{j+1} & \hat{v}_{j+2} &\cdots & \hat{v}_{j+m_c-1}\end{array} \right].
这为我们提供了向量\hat{v}_{j+m_c} = A v_j,它在迭代j的剩余步骤中使用,以及向量
A \hat{v}_{j+1}, A \hat{v}_{j+2}, \ldots, A \hat{v}_{j+m_c-1}.\tag{7.86}
在接下来的m_c-1次迭代中,我们将需要向量
A v_{j+1}, A v_{j+2}, \ldots, A v_{j+m_c^{\prime}-1}.\tag{7.87}
这里,m_c^{\prime}定义为m_c减去在这些接下来的m_c-1次迭代中将发生的\hat{v}_k向量的缩减次数。使用§4.6.4中概述的过程,可以很容易地获得向量(7.87)作为预计算向量(7.86)的适当线性组合。类似地,在算法的任何阶段,也可以预计算下一个p_c个矩阵-向量乘积与A^T,这将在接下来的p_c次迭代中需要,作为一个单独的矩阵-矩阵乘积A^T W,其中W是一个包含p_c个向量的块。实际上,不是执行算法7.16中的步骤(11),而是计算矩阵-矩阵乘积
A^T \left[ \begin{array}{ccccc}w_j & \hat{w}_{j+1} & \hat{w}_{j+2} &\cdots & \hat{w}_{j+p_c-1}\end{array} \right]
然后以类似于向量(7.86)的方式进行。
下一节:复对称特征问题中的Lanczos方法
上一级:带状Lanczos方法
上一节:应用至降阶模型
Susan Blackford
2000-11-20