下一节:不精确方法 上一级:预处理技术 上一节:预处理技术

引言

术语“预处理”在数值方法中常被用作加速收敛的额外步骤。预处理是求解大型线性方程组迭代方法中的重要技术。对于特征值问题的预处理并不直接,且发展较慢。俄罗斯文献中有大量相关资料,其中一部分在§11.3中讨论。鲁赫和维伯格[380,373,374]在1970年代使用SOR和共轭梯度法求解特征值。同期,包括戴维森[99]在内的量子化学家,为大型对称矩阵开发了校正方法。后来斯科特认识到戴维森的方法是一种预处理形式,并在[335]中给出了推广。近期发展起来的Jacobi-Davidson方法在前几章中有详细介绍。

在本引言中,我们试图指出一些联系,首先是预处理特征值与线性方程之间的一些比较。然后简要讨论预处理方法与非预处理方法的差异。最后,给出各种预处理特征值求解器之间的联系。

在本段中,我们探讨预处理任务在特征值与线性方程之间的比较。我们列举了几个为何预处理特征值问题更为困难的原因。待预处理的矩阵通常接近奇异。内部特征值难以处理,类似于预处理不定线性方程组。与预处理线性方程不同,预处理特征值方法可能需要某种形式的重新启动,即使在对称情况下也是如此。然而,即使对于非预处理的Krylov特征值方法,计算特征向量时重启也常常是必要的。最后,我们提到特征值预处理方法往往侧重于一次计算一个特征值,这与Krylov特征值方法不同。从非预处理到预处理线性方程方法的过程中,没有类似的额外困难。

尽管存在这些困难,无疑导致了预处理特征值问题发展缓慢,但在能够找到良好预处理器的情境中,仍有巨大的潜力。决定是否采用预处理方法的因素包括预处理器的有效性、所需特征值的数量、是否需要特征向量以及特定情境中的竞争方法。通常,如果不需要太多特征值且需要计算特征向量,预处理更具竞争力。我们还想提到,对于Krylov方法来说,寻找谱内远处的特征值非常困难,因此必须考虑预处理或对位移矩阵进行完全分解。网格特征值问题(见§11.3.1)是预处理似乎特别有前景的一类实际特征值问题的重要例子。

引言的其余部分探讨了本章将描述的各种预处理方法之间的相似性。已经提到,预处理方法通常一次只寻找一个特征值。这与非预处理的Krylov子空间方法截然不同,后者可以同时找到多个特征值。有时采用块方法来缓解预处理方法的这一问题;例如,参见§11.3.9。预处理方法之间的另一个相似之处是全球收敛可能更具挑战性。某些方法,例如§11.3.8中的局部最优预处理共轭梯度法,在数值实验中实际上非常稳健,通常在随机初始猜测下收敛。然而,其他一些方法,例如基于内外迭代的方法,如果可用合理的特征向量近似作为起始向量,效果会更好。这引导我们关注混合方法,即以Krylov方法开始,以预处理方法结束。事实上,可以用于Krylov方法的算子包括AM^{-1}(其中M是位移矩阵A-\nu I的近似),甚至是预处理的算子M^{-1}(A-\nu I),对于固定的\nuM。混合方法可能提供更多的鲁棒性,值得进一步研究。

我们再看一个特征值预处理方法之间的相似之处。为便于阐述,我们假设存在一个标准的对称特征值问题。似乎所有方法的共同点是算子

M^{-1}(A-\nu I), \tag{11.1}
其中\nu是近似特征值,MA-\nu I的(可能变化的)近似。我们将探讨一些不同方法如何使用此算子的例子;有关一般讨论,请参见§11.3.2。讨论的四种方法包括预处理的幂法、Rayleigh商迭代(RQI)、Davidson方法和Jacobi-Davidson方法。预处理的幂法是§11.3中的算法11.5。当B=I时,该算法的步骤4和5执行
w =T(x^{(i)}-\mu^{(i)}Ax^{(i)}) =-\mu^{(i)} T(A - {1/\mu^{(i)}} I) x^{(i)}.
T=M^{-1}{1/\mu^{(i)}} = \nu,我们看到算子(11.1)。§11.3中的其他算法也有类似的算子。

接下来,使用预处理共轭梯度法(PCG)的RQI在PCG的内迭代中使用算子M^{-1}(A-\rho I),其中\rho是Rayleigh商,M是预处理器。而Davidson的原始方法,即§11.2.4(亦见§11.3.6)中的算法11.2,用于标准特征值问题,使用(D-\nu I)^{-1}(A-\nu I),其中DA的对角线,\nu是通过Rayleigh-Ritz过程找到的当前近似特征值。这同样符合(11.1)的形式。因此,如果使用相同的预处理,RQI(带PCG)和Davidson方法在方法的核心部分具有相同的算子。区别在于Davidson方法在每一步都改变\nu,而RQI在PCG运行期间固定\rho,且Davidson方法使用其生成的向量求解特征值问题,而RQI则用它们求解线性方程。RQI中的线性方程是向最终求解特征值问题迈进的一个中间步骤。

最后,我们来看Jacobi-Davidson方法;参见§11.2.5和§11.3.7。有趣的是,算子(11.1)出现了两次。首先,在外迭代中,从Jacobi-Davidson校正方程(4.49)出发,令M =(I-zz^*)(A-\theta I)(I-zz^*),我们有t \approx -M^{-1}r =-M^{-1}(A-\theta I)z。其次,更重要的是,在生成近似解t = -M^{-1}r的内部迭代中,使用预处理的Krylov子空间迭代方法,算子为P^{-1}(I-zz^*)(A-\theta I)(I-zz^*),其中P(I-zz^*)(A-\theta I)(I-zz^*)的预处理器。该算子类似于(11.1),额外增加了对z的消隐。由该预处理算子生成的子空间用于求解线性方程。

由于许多特征值预处理方法在其核心使用密切相关的算子,人们可能会预期使用相同预处理器的结果会相似。事实并非如此。每个方法的具体实现可能会在收敛速度和成本上产生巨大差异。例如,将在下一节讨论,不精确的Cayley变换(以及Jacobi-Davidson方法)在§11.2.5中比不精确的位移-反演Krylov方法要好得多,尽管它们相似。部分原因在于位移-反演方法中的M^{-1}(A-\nu I)算子固定了\nu,而不是接近特征值(在不精确的理性Krylov方法中,\nu是变化的,下一节也会提到)。我们可以说所有预处理方法都共享一个局限性。它们的效果只能达到M^{-1}(A-\nu I)所允许的程度。这取决于预处理器M的质量。

Davidson方法或许是预处理方法中最纯粹的一种,因为每次应用算子时,它都使用已知最佳信息(新的近似特征对),并直接将生成的向量应用于特征值问题。另一方面,每次迭代都有显著的成本。与此同时,对于其他一些方法,包括RQI和Jacobi-Davidson,预处理的线性方程迭代方法的内部迭代在成本和存储方面可能更高效。Jacobi-Davidson具有这种效率,同时也比RQI更稳健,因为它使用子空间进行特征值问题而非单一向量,并且它使用近似特征向量的残差作为线性方程的右侧,而非向量本身。

最后,同时PCG方法,即§11.3.9中的算法11.11,是§11.3中最有前景的方法,它兼具Davidson方法的快速收敛优势,且无其显著成本,并直接将PCG应用于特征值问题,从而消除了内部迭代的需要。数值实验显示,该方法在初始近似、特定预处理器选择以及矩阵A的条件数方面具有极大的实际鲁棒性。

接下来的两节将分别探讨预处理特征值问题的一些细节,但视角有所不同。



下一节:不精确方法 上一级:预处理技术 上一节:预处理技术
Susan Blackford 2000-11-20