【數學】特征值分解、奇異值分解


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小結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM