MATLAB 中的特徵值分解

Mehak Mubarik 2023年1月30日 2022年5月11日
  1. 在 MATLAB 中將矩陣的特徵值分解為其特徵值和特徵向量
  2. 在 MATLAB 中使用 eig() 函式將任何矩陣分解為其特徵值和特徵向量
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 Mubarik avatar Mehak Mubarik avatar

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