MATLAB - 特徵值和特徵向量



特徵值和特徵向量是線性代數中的基本概念,廣泛應用於各個領域,包括物理學、工程學和資料分析。在 MATLAB 中,可以輕鬆地探索和計算這些概念。

什麼是特徵值?

特徵值是一個標量,表示為 λ(lambda),與向量空間的線性變換相關聯。它表示在變換期間相應特徵向量縮放的因子。

什麼是特徵向量?

特徵向量是一個非零向量,當對其應用線性變換時,它只會按標量因子改變。換句話說,如果 A 是一個矩陣,v 是 A 的對應於特徵值 λ 的特徵向量,則 -

Av=λv

這裡,A 是一個方陣,v 是特徵向量,λ 是特徵值。

MATLAB 函式

MATLAB 提供了計算特徵值和特徵向量的內建函式。

使用 eig

此函式計算矩陣的特徵值和特徵向量。

語法

e = eig(A)
[V,D] = eig(A)
[V,D,W] = eig(A)
e = eig(A,B)
[V,D] = eig(A,B)
[V,D,W] = eig(A,B)
[___] = eig(A,balanceOption)
[___] = eig(A,B,algorithm)
[___] = eig(___,outputForm)

語法說明

e = eig(A) 返回一個列向量,其中包含方陣 A 的特徵值。

[V,D] = eig(A) 返回一個對角矩陣 D,其中包含 A 的特徵值,以及一個矩陣 V,其列是相應的特徵向量。這意味著將 A 乘以 V 與將 V 乘以 D 相同。

[V,D,W] = eig(A) 還返回一個完整的矩陣 W,其列是相應的左特徵向量。這意味著將 W 的轉置乘以 A 與將 D 乘以 W 的轉置相同。

特徵值問題是關於找到方程 Av = λv 的解,其中 A 是一個方陣,v 是一個列向量,λ 是一個標量。滿足此方程的 λ 值是特徵值,滿足此方程的 v 值是右特徵向量。左特徵向量 w 滿足方程 w'A = λw'。

e = eig(A,B) 返回一個列向量,其中包含方陣 A 和 B 的廣義特徵值。

[V,D] = eig(A,B) 返回一個對角矩陣 D,其中包含廣義特徵值,以及一個完整的矩陣 V,其列是相應的右特徵向量。這意味著將 A 乘以 V 與將 B、V 和 D 乘在一起相同。

[V,D,W] = eig(A,B) 還返回一個完整的矩陣 W,其列是相應的左特徵向量。這意味著將 W 的轉置乘以 A 與將 D、W 的轉置和 B 乘在一起相同。

廣義特徵值問題是關於找到方程 Av = λBv 的解,其中 A 和 B 是方陣,v 是一個列向量,λ 是一個標量。滿足此方程的 λ 值是廣義特徵值,v 值是相應的右特徵向量。左特徵向量 w 滿足方程 w'A = λw'B。

[___] = eig(A, balanceOption),其中 balanceOption 為 "nobalance",關閉演算法中的初步平衡步驟。預設情況下,balanceOption 為 "balance",開啟平衡。eig 函式可以返回前面示例中提到的任何輸出引數。

[___] = eig(A,B,algorithm),其中 algorithm 為 "chol",使用 B 的 Cholesky 分解來計算廣義特徵值。預設演算法取決於 A 和 B 的屬性,但當 A 或 B 不對稱時,它是 "qz"(QZ 演算法)。

[___] = eig(___,outputForm) 以 outputForm 指定的格式返回特徵值,使用前面提到的任何輸入或輸出引數。將 outputForm 設定為 "vector" 以獲取列向量中的特徵值,或 "matrix" 以獲取對角矩陣中的特徵值。

Matlab 函式 eig() 的示例

以下是一些說明如何使用它的示例 -

示例 1:使用 e = eig(A) 計算特徵值

在 MATLAB 中,您可以使用 eig 函式找到矩陣 A 的特徵值。考慮以下程式碼 -

% Define the matrix A
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% Compute the eigenvalues
e = eig(A)

在上面的示例中 -

  • 矩陣 A 定義為一個 3x3 矩陣,其條目如所示。
  • eig(A) 函式計算矩陣 A 的特徵值。
  • eig(A) 的結果儲存在變數 e 中,這是一個包含 A 的特徵值的列向量。

計算程式碼時,我們得到的輸出如下 -

>> % Define the matrix A
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% Compute the eigenvalues
e = eig(A)


e =

   16.1168
   -1.1168
   -0.0000

示例 2:使用 [V,D] = eig(A) 獲取特徵值和特徵向量

在 MATLAB 中,您可以使用 eig 函式找到矩陣 A 的特徵值和特徵向量。

考慮以下程式碼 -

% Define the matrix A
A = [2, -1;
     4, 3];

% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);

% Display the eigenvalues
disp('Eigenvalues:');
disp(D);

% Display the eigenvectors
disp('Eigenvectors:');
disp(V);

在上面的程式碼中,我們有 -

  • 矩陣 A 定義為一個 2x2 矩陣,其條目如所示。
  • [V, D] = eig(A) 函式計算矩陣 A 的特徵值 (D) 和相應的特徵向量 (V)。
  • D 是一個包含 A 的特徵值的對角矩陣。
  • V 是一個矩陣,其列是相應的特徵向量。

執行程式碼時,我們得到的輸出如下 -

>> % Define the matrix A
A = [2, -1;
     4, 3];

% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);

% Display the eigenvalues
disp('Eigenvalues:');
disp(D);

% Display the eigenvectors
disp('Eigenvectors:');
disp(V);

Eigenvalues:
   2.5000 + 1.9365i   0.0000 + 0.0000i
   0.0000 + 0.0000i   2.5000 - 1.9365i

Eigenvectors:
  -0.1118 + 0.4330i  -0.1118 - 0.4330i
   0.8944 + 0.0000i   0.8944 + 0.0000i
廣告

© . All rights reserved.