- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料輸出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策
- MATLAB - If End 語句
- MATLAB - If Else 語句
- MATLAB - If…Elseif Else 語句
- MATLAB - 巢狀 If 語句
- MATLAB - Switch 語句
- MATLAB - 巢狀 Switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - For 迴圈
- MATLAB - While 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - Break 語句
- MATLAB - Continue 語句
- MATLAB - End 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - 返回語句
- MATLAB - 空函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波器函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序順序
- MATLAB - 對映函式
- MATLAB - 平均值函式
- MATLAB - End 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - Try...Catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 2D 線圖
- MATLAB - 3D 圖
- MATLAB - 格式化繪圖
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製 3D 等值線
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 2D 陣列插值
- MATLAB - 3D 陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 2D 逆餘弦變換
- MATLAB - 向座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消元法
- MATLAB - 高斯-約旦消元法
- MATLAB - 簡化行階梯形
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 雜項
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
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