为何QR分解收敛于特征值

QR分解求特征值的方法很简单,计算过程如下:

为何QR分解收敛于特征值_第1张图片

 QR本身可以看作一个将矩阵A转化为上三角矩阵R的过程,通过householder,givens转换等手段,构造一系列的变换矩阵T,将矩阵转换为上三角矩阵R,而变换矩阵的逆矩阵则构成了Q。一定条件下,经过n次迭代后,迭代矩阵An会神奇的收敛成一个上三角矩阵,其对角阵对应的元素就是An的特征值,也是原始矩阵A的特征值,是不是很神奇。那么为什么会收敛成这样呢?直觉上,这是一种幂法,经过不断地迭代,使得特征值保留下来,非特征值部分要么变大,要么收敛为0。事实上,这种求特征值地方法确实属于一种特殊地幂法。我们所知道地幂法和反幂法都是针对最大或者最小的特征值来的,像QR这种一网打尽的方式,实在难以想象。为什么QR这种迭代方式会最终收敛到特征值呢?我找了国内外不少网站,也没有找到浅显的解释。这里将这几天找到的资料整理一下,按照自己的理解说一下。

这个问题看来是一个复杂的问题,所以这里简化了它的收敛证明过程。考虑一种比较特殊的矩阵QR分解形式

假定矩阵A满足以下两个条件

1.A是对称正定矩阵,且特征值各不相同,保证了QR分解的唯一性

2.A可以表示为A = Q\Lambda Q^T,I= Q Q^T且有Q = L_QU_Q,L为下三角矩阵,L的对角线全部为1,U为上三角矩阵

 

另外,需要知道以下几点性质

1.上三角矩阵乘以上三角矩阵仍然是上三角矩阵,对于下三角矩阵也是同理

2.上三角矩阵求逆,仍然是上三角矩阵,对于下三角矩阵也是同理

首先,求得A_n,A^n的推导公式

                                   \\A_1 = A = Q_1R_1 \\A_2 = Q_1^TA_1Q_1=Q_2R_2 \\A_3 = Q_2^TA_2Q_2 = Q_2^TQ_1^TA_1Q_1Q_2 =Q_2^TQ_1^TA_1Q_1Q_2 \\\Rightarrow A_n = (Q_{n-1}^T...Q_1^T)A(Q_1...Q_n) \\\Rightarrow Q_{n-1}R_{n-1} = R_{n}Q_{n} \\A^2 = Q_1R_1Q_1R_1=Q_1Q_2R_2R_1 \\A^n = (Q_1...Q_n)(R_n...R_1)

假设我们的问题中A_n收敛成立,最终可以得到Q_n\rightarrow I,只要能证明这一点就行了,但是最关键的是想看到幂法是如何其作用的。

\\\widetilde {Q}_n= (Q_1...Q_n) ,\widetilde {R}_n=(R_n...R_1)

A^n = (Q\Lambda Q^T)^n = (Q\Lambda^n Q^T)

Q =Q_QR_Q,Q^T = L_QU_Q,代入上式

A^n = (Q\Lambda Q^T)^n = (Q_QR_Q\Lambda^n L_QU_Q)=Q_Q(R_Q\Lambda^n L_Q\Lambda^{-n}R_Q^{-1})R_Q\Lambda^{n}U_Q

其中,\Lambda^n L_Q\Lambda^{-n} =\begin{cases} l_{ij}*(\lambda_i/\lambda_j)^n=0& \text{ , } i<j \\ l_{ij}=1& \text{ , } i=j \\ l_{ij}*(\lambda_i/\lambda_j)^n\rightarrow 0& \text{ , } i>j \end{cases}

由此可以得到\Lambda^n L_Q\Lambda^{-n} \rightarrow I,于是有A^n = Q_QR_Q\Lambda^{n}U_Q = Q\Lambda^{n}U_Q=(Q_1...Q_n)(R_n...R_1)=\widetilde {Q}_n\widetilde {R}_n

其中,\widetilde {Q}_n,\widetilde {R}_n分别为正交矩阵和上三角矩阵,由QR分解的唯一性可以知道,\widetilde {Q}_n\rightarrow QQ_n\rightarrow I

再来看看A_n

                               A_n = (Q_{n-1}^T...Q_1^T)A(Q_1...Q_{n-1}) =\widetilde{Q}_{n-1}^TA\widetilde{Q}_{n-1}= \widetilde{Q}_{n-1}^TQ\Lambda Q^T\widetilde{Q}_{n-1}=\Lambda

我们可以看到,QR迭代过程,可以看作消去Q矩阵的过程。像幂法一样,QR也有平移的算法,以上介绍的是非平移的算法过程。由于A是对称正定矩阵,最终分解得到了对角阵,而不是上三角矩阵。为了尽量的描述简单,加了不少苛刻的条件,下面将条件稍微放宽些,A只是正定,不再是对称,其他条件保持不变,于是I= Q Q^T不再成立。

                               \\A^n = Q_Q(R_Q\Lambda^n L_Q\Lambda^{-n}R_Q^{-1})R_Q\Lambda^{n}U_Q=\widetilde {Q}_n\widetilde {R}_n\\R_Q\Lambda^n L_Q\Lambda^{-n}R_Q^{-1} = \widehat{Q} _n\widehat{R}_n

由于\\R_Q\Lambda^n L_Q\Lambda^{-n}R_Q^{-1} \rightarrow I\Rightarrow \widehat{Q} _n\rightarrow I,\widehat{R}_n\rightarrow I

\\A^n = Q_Q\widehat{Q}_n\widehat{R}_nR_Q\Lambda^{n}U_Q=\widetilde {Q}_n\widetilde {R}_n\Rightarrow \widetilde {Q}_n = Q_Q\widehat{Q}_n,

A_n = \widetilde{Q}_{n-1}^TQ\Lambda Q^{-1}\widetilde{Q}_{n-1}=\widetilde{Q}_{n-1}^TQ_QR_Q\Lambda R_Q^{-1}Q_Q^{-1}\widetilde{Q}_{n-1}=\widehat{Q}_{n-1}^ TR_Q\Lambda R_Q^{-1}\widehat{Q}_{n-1}

由于\widehat{Q} _n\rightarrow IA_n \rightarrow R_Q\Lambda R_Q^{-1}

M= R_Q\Lambda R_Q^{-1},T = R_Q^{-1},毫无疑问,M,R和T都是上三角矩阵,且有\\R_{i,i}*T_{i,i} = 1 ,M_{i,i}=\lambda_i*R_{i,i}*T_{i,i} =\lambda_i,可以看到M的对角线元素收敛于特征值。

上面就是QR收敛的证明过程,证明过程并不严密,且由于条件特殊,并不具备普遍性。确实如此,这个算法本身收敛性是有限制的,并非对所有矩阵都能满足。要做到普遍适用,应该要用到移位的QR算法。

 

参考:

https://www.zhihu.com/question/54455860

https://people.kth.se/~eliasj/qrmethod.pdf

http://pi.math.cornell.edu/~web6140/TopTenAlgorithms/QRalgorithm.html

你可能感兴趣的:(数据科学,机器学习)