【数学】特征值分解、奇异值分解

1.特征值分解 (EVD):\(A=Q\Lambda Q^{-1}\)

\(若A是方阵,则A=Q\Lambda Q^{-1};若A是实对称方阵,则A=Q\Lambda Q^{T}\)

前提:A是方阵。就有如上的分解,其中Q是由矩阵A的特征向量构成,\(\Lambda\)是一个对角阵,由矩阵A的特征值构成,并且P中的特征向量与\(\Lambda\)中的特征值的位置是对应的。

1.1 特征值

若向量x是方阵A的特征向量,则有:

\[Ax=\lambda x \]

其中的\(\lambda\)就是特征向量对应的特征值。

1.2 特征分解推导

设列向量\(x_i\)为矩阵A的特征向量,并设矩阵A共有n个线性无关的特征向量,记为\(Q=[x_1,x_2,\cdots,x_n]\),则

\[\begin{aligned} AQ & =A[x_1,x_2,\cdots,x_n]\\ & =[Ax_1,Ax_2, \cdots,Ax_n]\\ & =[\lambda_1x_1,\lambda_2x_2, \cdots,\lambda_nx_n]\\ & =[x_1,x_2,\cdots,x_n]\Lambda\\ & = Q\Lambda \\ \end{aligned} \]

则,其中的\(\Lambda\)为对角矩阵,\(\Lambda=diag(\lambda_1,\lambda_2,\cdots,\lambda_n),\lambda_i\)为特征值。由于Q中的特征向量是线性无关的,所以有矩阵Q的逆矩阵。则有

\[\begin{aligned} AQ & =Q\Lambda \\ A& =Q\Lambda Q^{-1}\\ 或\Lambda& =Q^{-1}AQ \end{aligned} \]

特殊的,若矩阵A是实对称矩阵,那么它的特征向量是线性无关的,并且是相互正交的,也即矩阵Q是个正交矩阵,因为对于正交矩阵,有\(QQ^T=E\),所以有:

\[\begin{aligned} AQ & =Q\Lambda \\ 则AQQ^T & =Q\Lambda Q^T \\ 即A& =Q\Lambda Q^{T}\\ \end{aligned} \]

A=rand(5,5)*100;
%随便的方阵A的特征值和特征向量有可能是复数;实对称(如协方差)矩阵的特征值和特征向量是实数,且特征向量相互正交
[eigenvector,eigenvalue]=eig(A);%eigenvector的列向量和eigenvalue对角元分别为A的特征向量和特征值
[eigenvector,eigenvalue]=eig(cov(A));%cov(A)是实对称

2.奇异值分解(SVD):\(A=U\Lambda V^{T}\)

\(任意矩阵A,则有分解:A=U\Lambda V^{T}\)

2.1 奇异值定义

对任意矩阵A,其\(AA^T\)是个方阵,同理进行特征值分解,则有

\[(AA^T)v_i=\lambda_iv_i \]

定义:

\[\sigma_i=\sqrt{\lambda_i}\\ u_i=\frac 1{\sigma_i}Av_i \]

则,这里的\(\sigma_i\)就是奇异值,可见与特征值类似;其中的\(v_i\)为右奇异向量,\(u_i\)为左奇异向量;

同时,对\(m\times n的实数矩阵A\)有如下的分解定义:

\[A=U\Sigma V^T \]

\(其中U和V均为单位正交阵,即有UU^T=E和VV^T=E,U称为左奇异矩阵,V称为右奇异矩阵,Σ仅在主对角线上有值,\\称为奇异值,其它元素均为0。上面矩阵的维度分别为U\in R^{m×m}, Σ\in R^{m×n}, V\in R^{n×n},其中的\\\Sigma有如下的形式\)

\[\Sigma=\begin{bmatrix}\sigma_{1}&0&\cdots&0&0&\cdots&0\\ 0&\sigma_{2}&\cdots&0&0&\cdots&0\\ \vdots&\vdots&\ddots&\vdots&\vdots&\cdots&0\\ 0&0&\cdots&\sigma_m&0&\cdots&0\end{bmatrix}_{m\times n} \]

2.2 求解奇异值

若用上述的定义求解奇异值则会非常的不便,可利用下式

\[AA^T=U\Sigma V^TV\Sigma^TU^T=U\Sigma\Sigma^TU^T \]

其中\(AA^T\)是实对称矩阵呀,可以进行特征值分解,这样就可以计算出左奇异矩阵\(U\)\(\Sigma\Sigma^T\)了。可以看到,其中的\(\Sigma\)是以奇异值为对角元素的对角阵,而\(\Sigma\Sigma^T\)则是以奇异值的平方为元素的对角阵。同理可以利用下式

\[A^TA=V\Sigma^TU^TU\Sigma V^T=V\Sigma^T\Sigma V^T \]

计算出右奇异矩阵\(V\)\(\Sigma^T\Sigma\)

注意,计算得到的\(\Sigma\Sigma^T\in R^{m×m}\)\(\Sigma^T\Sigma\in R^{n×n}\)的矩阵大小是不一样的哟!!但是他们的主对角线的奇异值是相等的

\[\Sigma\Sigma^T=\begin{bmatrix}\sigma_{1}^2&0&\cdots&0\\ 0&\sigma_{2}^2&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&\sigma_m^2\end{bmatrix}_{m\times m}        \Sigma^T\Sigma=\begin{bmatrix}\sigma_{1}^2&0&\cdots&0\\ 0&\sigma_{2}^2&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&\sigma_n^2\end{bmatrix}_{n\times n}  \]

但两个矩阵的大小是不一样的呀,那么多出来的几个奇异值的大小是怎么样的呢?其实多出来的几个奇异值是很小的,约等于零,可以自己用如下程序算算。

 A=rand(4,6)*100;
 [a,b]=eig(A*A');%b是特征矩阵
 [c,d]=eig(A'*A);%d是特征矩阵

3.参考

SVD小结

posted @ 2020-09-09 19:45  LENMOD  阅读(1850)  评论(1编辑  收藏  举报