MATLAB 中的特徵值分解
我們將研究在 MATLAB 中將任何矩陣分解為其特徵值和特徵向量的不同方法。
在 MATLAB 中將矩陣的特徵值分解為其特徵值和特徵向量
我們將使用不同的示例程式碼和相關輸出來清除你的概念,並讓你全面瞭解在 MATLAB 中將任何矩陣分解為其特徵值和特徵向量的方法。請注意,特徵函式將矩陣分解為其組成部分。
它還使我們的矩陣或資料去相關。我們還使用它來減少矩陣的維度以降低複雜性。
我們也稱這種分解矩陣對角化。
任何矩陣分解成它的特徵值和特徵向量可以是 Cholesky 分解或 Hessenberg 分解等,這取決於我們選擇的要求。讓我們通過檢視以下示例來理解這些概念。
在 MATLAB 中使用 eig()
函式將任何矩陣分解為其特徵值和特徵向量
讓我們假設一個方陣 M
。
$$
M\ =\ \begin{matrix}
1 & 2 & 3\
4 & 5 & 6\
7 & 8 & 9\
\end{matrix}
$$
方陣 M
具有特徵值(標量λ
)和作為非零向量 A
的特徵向量,當它們滿足方程 MA = λA
時。我們得到一個滿足 MV = VΛ
的矩陣,其對角矩陣具有特徵值和矩陣 V
的列上的等效特徵向量。
請注意,如果我們的矩陣 V
是一個非奇異矩陣,我們將我們的特徵分解定義為 M = VΛV-1
。
讓我們通過以下示例來理解這個概念。
程式碼:
M=[1 2 3;4 5 6;7 8 9]
lambda = eig(M)
[V,D] = eig(M)
輸出:
在這個例子中,我們在向量矩陣 M
上使用了 eig(M)
函式。函式 eig(M)
返回一個對角矩陣。
我們將此矩陣表示為 D
。函式 eig(M)
還返回一個包含相應特徵向量(我們的矩陣 M
的右特徵向量)的矩陣。
矩陣 M
、輸出向量 v
和對角矩陣 D
必須滿足方程 M*V = V*D
。如果我們的矩陣 M
是實對稱的、傾斜的 Hermitain 或 Herimitain,那麼我們的矩陣 M
的特徵向量將是正交的。
讓我們通過另一個例子再次理解這個概念。
程式碼:
A = gallery('circul',3)
[V,D] = eig(A) %calculating eigenvalues-and-eigenvectors of our matrix
A*V - V*D %in order to varify our results
輸出:
請注意,特徵分解理想地滿足方程 M*V = V*D
。但實際上,函式 eig()
使用浮點計算進行特徵分解,因此 AV
只能近似 VD
。
換句話說,AV - VD
接近但不等於 0。
Mehak is an electrical engineer, a technical content writer, a team collaborator and a digital marketing enthusiast. She loves sketching and playing table tennis. Nature is what attracts her the most.
LinkedIn