的QR算法变种

由克里夫·莫勒尔,MathWorks公司

该QR算法是我们在数学软件最成功和最有力的工具之一。

在MATLAB®核心库包括QR算法的几个变种。这些变体计算实对称矩阵,非对称实矩阵,对实数矩阵,复数矩阵,对复杂的矩阵,以及各种类型的矩阵的奇异值的特征值。这些核心库函数被用于各种MATLAB工具箱用于寻找本征值和稀疏矩阵和线性算子的奇异值,找到多项式的零,解决特殊线性系统,评估数值稳定性,并执行许多其它任务。

数十人已到QR算法变种的发展作出了贡献。关于这个问题的第一篇论文,从J.G.F.来到弗朗西斯于1961年,1962年和Vera N. Kublanovskaya在1963年,但它是J.H.威尔金森谁开发了QR算法的第一个完整实现。威尔金森还开发了一个重要的收敛性分析。威尔金森的书代数特征值问题和他的两个论文发表于1965年。这意味着我们将能够为庆祝2015年的实际QR算法的五十周年。

用于奇异值分解(SVD)的QR算法的变体是由基因戈卢布和Velvel Kahan的出版于1965年,并通过戈卢布和Christian赖因施于1969年完善。

该名“QR”

名称为“QR”被从字母Q,用来表示正交矩阵,并且字母R,用来表示右三角矩阵的。有一个QR在MATLAB的功能,但它计算QR分解,而不是QR算法。任何基质,无论是真实的或复杂的,正方形或矩形,可以分解成一个矩阵的乘积Q与正交列和矩阵[R即非零仅在其上部,或向右,三角形。你可能还记得革兰氏施密特过程,这确实几乎同样的事情,虽然在其原来的形式,它在数值上是不稳定的。

一个班轮

使用QR功能,QR算法的简单变体可以在MATLAB一行代码来表示。让一种是一个正方形,ñ-通过-ñ矩阵,让I =眼(N,N)。那么QR迭代一个步骤由下式给出

S = A(N,N);[Q,R] = QR(A  -  S * I); A = R * Q + S * I

量\(š\)是移位;它加速收敛。如\(A \)接近上三角矩阵,\(S \)接近的本征值。如果您在一行上输入这三个语句,你可以使用向上箭头键进行迭代。

的QR分解产生上三角\(R \)。

\ [A-SI = QR \]

然后以相反的顺序乘法,\(RQ \),恢复的特征值,因为

\ [RQ + SL = Q ^ {T】(A - SL)Q + SL = Q ^ {T】AQ \]

因此,新的\(A \)是类似原来的\(A \)。每次迭代有效地从低一些“质量”传送到上三角,同时保持本征值。随着迭代的前进,基质开始接近上三角矩阵与方便地显示对角线上的特征值。

一个例子

为了说明这个过程中,我们将使用矩阵从MATLAB画廊收藏。

A =廊(3)A = -149 -50 -154 537 180 546 -27 -9 -25

它是不是在所有明显,但该矩阵已被构造成具有特征值1,2和3的我们的一个行的QR码的第一次迭代产生

A = 28.8263 -259.8671 773.9292 1.0353 -8.6686 33.1759 -0.5973 5.5786 -14.1578

矩阵现在是非常接近是上三角,但特征值仍不明显。然而,经过五年多的迭代,我们有

A = 3.0321 -8.0851 0.0017 804.6651 0.9931 145.5046 -0.0001 0.0005 1.9749

我们开始看到特征值3,1和2出现在对角线上。八次更多的迭代给

A = 3.0716 -7.6952 802.1201 0.0193 0.9284 158.9556 0 0 2.0000

本征值2.0已经计算所显示的精确度,和与其相邻的下方对角元素变为零。在这一点上,有必要继续对2×2左上子矩阵的迭代。

该QR算法永远不会在这个简单的形式进行。它总是被还原以紧凑的形式,其中所述次对角以下的所有元素均为零之前。迭代保留了这一形式降低,并且因式分解,可以更快速地完成。这种转变的策略是更复杂,是各种形式的算法不同。另外,还原形式是极其重要的迭代的收敛性。

对称矩阵

图1-3说明三个QR算法中最重要的变种。附图中的快照从由程序生成的输出取eigsvdgui.m数值计算与MATLAB

最简单的变型涉及真实,对称矩阵。一个ñ-通过-ñ真实的,对称矩阵可以借助于减少到三对角形式N-2一家之主反射,这是相似变换保存的特征值的一个序列。该QR迭代适用于三对角形式。威尔金森提供的,让他来证明这两个全局收敛性和局部立方收敛速度换档策略。即使在舍入误差的存在,这种算法是保证成功。

图1示出了初始对称矩阵,中途还原成三对角的三对角,通过所述QR迭代的情况中途,最后,本征值的情况。实际上,由于矩阵是对称的,计算仅在阵列的一半进行的,但我们的数字反映的结果显示的整个矩阵。

图1.一个对称矩阵的特征值。从左到右:输入 - 一个随机的对称10乘10矩阵,中途通过对称三对角QR迭代正交还原成三对角形式,对称三对角形式,中途,和特征值的最终的对角矩阵。

非对称矩阵

真的,非对称矩阵的情况要复杂得多。最初的使用减少N-2一家之主相似变换来创建海森伯格矩阵,这是上三角加上一个“额外”的次对角。然后用双换档策略甲QR迭代使用。这将保留Hessenberg形式,试图创建一个真正的舒尔形式,其除2×2对应于对在对角线上复共轭本征值的块上三角。

在非对称Hessenberg QR算法是不可能不犯错。这是一个反复的过程,并不总是保证收敛。即使是30年前的反基本迭代被称为。威尔金森介绍了一个额外的“特设”移来处理它们,但没有人能证明一个完全收敛定理。所以,在罕见的情况下,MATLAB用户可能会看到这条消息:

错误使用==> EIG,解决方案不收敛

几年前,这条消息的接收者可能已经接受了它不可避免的。但今天,大多数人会感到惊讶或恼火;他们已经开始期待犯错误。

我们现在知道,一个4×4的例子,可能会导致真正的,非对称QR算法失败在某些计算机,即使威尔金森特设转变。该矩阵

\ [A = \ BEGIN {bmatrix} 0&2&0 -1 \\ 1 0 0 0 0 \\&1&0 0 \\ 0 0&1&0 \ {端bmatrix} \]

这是多项式\的友矩阵(P(X)= X ^ 4 - 2 ^ 2 + 1 \),和该语句

根([1 0 -2 0 1])

要求的计算EIG(A)。值\(\拉姆达= 1 \)和\(\拉姆达= -1 \)是两个特征值,或多项式的根,与多重性2。对于真正的\(x \),多项式\(P(X)\)从不为负。这些双根减慢迭代,以至于在某些计算机上,在检测之前收敛舍入误差变幻莫测干扰。迭代可以永远游荡,试图收敛,但转弯时关闭它靠拢。

类似的行为是由形式的实施例中所示

\ [\ {开始} bmatrix 0&1&0 0 \\ 1 0 - \增量&0 \\ 0 \增量&0&1 \\ 0 0&1&0 \ {端bmatrix} \]

其中\(\增量\)是小,但不小到足以忽略不计,比如说,\(\,δ= 10 ^ { - 8} \)。确切的特征值都接近一对双根。威尔金森双转移迭代从每一对使用一个本征值。这种迭代确实改变了基质,但不足以获得快速收敛。所以,我们必须使用基于重复的低2×2块的特征值中的一个的不同的双移。

这些不同的自组织转变的战略已被纳入LAPACK的最新版本,并因此进入MATLAB。我们现在是在我们不知道任何矩阵这一事业的情况EIG要么以显示“不收敛”的消息,但我们没有证据表明这些不同的装饰的非对称码是不变的真理。

图2示出的初始不对称矩阵,中途减少到Hessenberg形式,中,Hessenberg形式,通过QR迭代的情况中途,和最终真实舒尔形式的情况。在这个特殊矩阵,正好有四个实特征值和三个复共轭对,一共有十个特征值。

图2.非对称矩阵的特征值。从左到右:输入 - 一个随机10乘10矩阵;中途正交还原Hessenberg形式,;Hessenberg形式,,上三角加一次对角;通过非对称QR迭代中途;和最终真实舒尔形式与真正的特征值和2×2的块复杂对在对角线上特征值。

奇异值

一个可能的矩形矩阵\(A \)的奇异值是对称矩阵\(A ^ {T】A \)的特征值的平方根。这个事实可以用来激励和分析的算法,但它不应该是对有限精度算术实际计算的基础。所述戈卢布-Kahan的-赖因施算法的初始阶段包括在左侧和减少一个矩阵的双对角形式的权利两种操作的Householder反射。此阶段之后是在双对角线的QR算法操作的一个SVD变体。对称三对角QR的威尔金森的分析适用于该算法为好,这样的过程是保证全局收敛。

图3示出的初始矩形矩阵,情况中途减少到双对角线形式中,双对角线形式,通过QR迭代的情况中途,并将含有奇异值的最终对角形式。

图3的矩形矩阵的奇异值。从左到右:输入 - 一个随机矩形12×10矩阵,中途通过双对角线的奇异值QR迭代正交减少到双对角线形式,双对角线形式,中途,和奇异值的最终的对角矩阵。

QR算法应用

虽然计算特征值和奇异值的QR算法是密切相关的,结果的应用程序通常是非常不同的。特征值经常用来分析常微分方程系统中的行为的时间的函数是重要的。奇异值,而另一方面,是用于分析联立一次方程式,其中方程的数目通常是不一样的未知量的数目的静态系统是有用的。

控制理论与控制设计自动化大量使用特征值。在控制理论研究微分方程的经典状态空间系统是

\ [\ {开始对准} \点{X}&= AX +卜\\ Y'= CX +都\ {端对准} \]

使用QR算法来计算\(A \)的特征值是一样的稳定性和可控性问题的调查是必不可少的。

在统计学中,该SVD是获得主成分数值上可靠的方法。主成分分析(PCA)是分析联立线性方程的超定系统的技术

\ [Ax = b的\]

其中\(A \)具有比列多行。使用QR算法来计算奇异值和\(A \)的矢量产生的主要构成。

进一步阅读和观看

戈卢布,基因H.,和Charles F.范贷款,矩阵计算,第4版约翰·霍普金斯大学出版社,1996年,697pp。

Moler,克利夫,数值计算与MATLAB,第10章,“特征值和奇异值。”

Moler,克利夫,1976年矩阵奇异值分解电影

威尔金森,J.H.,代数特征值问题牛津大学出版社,1965年,662页。

注:本文的部分是基于“该QR算法,”MATLAB新闻和笔记,1995年夏季。

发布时间2014 - 92224v00


下载188bet金宝搏使用的产品