矩阵的特征值与特征向量

矩阵特征值的与特征向量

若矩阵\(A\),列向量\(X\),常数\(\lambda\)满足\(AX=\lambda X\),则我们称\(\lambda\)\(A\)的一个特征值,\(X\)\(A\)的一个特征向量

解析解

一元高次方程\(det(X-\lambda E)=0\),这在X的阶很高的时候,几乎是无用的。

近似解

因为我们难以得到矩阵特征值的解析解,所以这里使用近似解来逼近。

Given变换

Given变换是一种旋转变换,他的变换矩阵与单位矩阵相比只有四个元素不一样,变换矩阵如下 $$ \[\begin{aligned} \left[\begin{matrix} &1\\ &&.\\ &&&.\\ &&&&.\\ &&&&&\cos\theta &&&&\sin\theta\\ &&&&&&.\\ &&&&&&&.\\ &&&&&&&&.\\ &&&&&-\sin\theta &&&&\cos\theta\\ &&&&&&&&&&.&\\ &&&&&&&&&&&.&\\ &&&&&&&&&&&&.&\\ &&&&&&&&&&&&&1&\\ \end{matrix}\right] \end{aligned}\]

$$ 不难证明这个矩阵是正交矩阵,不难证明左乘这个变换只会改变两行,右乘这个矩阵只会改变两列

Hessenberg矩阵

次对角线下方元素为0 \[ \begin{aligned} \left[\begin{matrix} &x&x&x&x&x\\ &x&x&x&x&x\\ &&x&x&x&x\\ &&&x&x&x\\ &&&&x&x\\ \end{matrix}\right] \end{aligned} \] 任何一个方阵都有上海森伯格形式的相似矩阵,

幂法

幂法是最基础的算法,我们先来描述一下这个过程 我们随机选择一个初始列向量\(Y\),假设它能够被矩阵A的特征向量线性组合出来,则\[\begin{aligned}\lim_{N\to\infty}A^NY\end{aligned}=一个特征向量\] 这里使用快速幂算法就亏大了快速幂迭代一次\(O(N^3)\),普通迭代一次\(O(N^2)\),所以普通迭代就行了, 证明: 对于大部分\(Y\)来说,如果它能够被组合出来即\(Y=k_1X_1+K_2X_2+K_3X_3+...\),且满足特征值满足条件\(\lambda_1>\lambda_2>...\) 则有\(A^NY=k_1A^NX_1+k_2A^NX_2+...=k_1\lambda_1^NX_1+k_2\lambda_2^NX_2+...\),所以这个极限是显然趋近于特征值绝对值最大的特征向量的。 所以这个算法在大多数情况下都能成功。考虑到幂法会增长很快,我们可以在迭代过程中单位化。

反幂法

求逆以后在用幂法,我们会得到特征值最小的特征向量,这很容易证明。

jacobi迭代法

只能处理对称矩阵 这个算法使用相似矩阵,每次使用一个Given变换,让绝对值最大的非对角线上的元素变为0,这导致了整体势能的下降,最终相似矩阵的非对角线元素会趋近于0,Given变换是一个稀疏矩阵,他和单位矩阵只有四个元素不同,是一种旋转矩阵,加上相似变换以后,这导致他只会改变两行和两列,最终我们就得出了特征值。

QR迭代法

还是先说做法,再给出证明,根据QR分解我们有\(A=QR\),构造\(A_2 = RQ = Q^{-1}AQ\),我们就不难发现\(A_2\)\(A\)相似,我们用同样的办法,从\(A_1\)得到\(A_2\),从\(A_2\)得到\(A_3\)...不断的迭代下去,最终\(A_i\)对角线一下的元素会趋近于0,这是特征值就算出来了.QR算法的本质其实还是幂法, 我们考虑幂法的过程,他可以求出一个特征向量,如果我们在幂法结束以后,得到了\(X_1\),然后我们再随机选择一个\(Y_2\),把\(Y_2\)\(X_1\)的分量去掉,然后进行幂法迭代,这时候我们会得到特征值第二大的特征向量,因为\(Y_2\)再去掉\(X_1\)方向上的分量以后,已经不再包含\(X_1\)方向上的值了,也即\(k_1\)为0,这时候幂法得到的极限是第二大特征向量,随后我们可以顺序得到第三大、第四大、、、,这样太蠢了,我们考虑一次性把他们呢求出来,我们一次性就选择n个随机向量构成矩阵Z,然后用A左乘得到AZ,然后对AZ 使用斯密斯正交化得到\(Z_2\),可以证明\(Z_n\)将趋近于A的所有特征向量构成的矩阵。证明很多细节地方没有处理,这也就是为什么QR算法会失败的原因,但QR算法在大多数情况下是能够成功的, 即我们得到了算法迭代\(Y_i=GramSchmidt(AY_{i-1})\),这个算法叫归一化算法,和上面那个算法优点小区别,但本质上是一样的,只是标记不一样而已。 如果我们能够提前把矩阵变为上海森伯格形式,QR算法的速度将大大提高。