MATLAB中Cayley-Hamilton定理的實現
線上性代數中,有一個被稱為Cayley-Hamilton定理的基本定理,用於建立方陣與其特徵方程之間的關係。閱讀本文以瞭解Cayley-Hamilton定理在MATLAB程式設計中的實現。讓我們從Cayley-Hamilton定理的概述開始。
什麼是Cayley-Hamilton定理?
線上性代數中,Cayley-Hamilton定理是一個基本定理,用於建立方陣與其特徵方程之間的關係。換句話說,根據Cayley-Hamilton定理,方陣必須滿足其自身的特徵方程。
解釋
考慮一個n階方陣A。如果p(λ)是矩陣A的特徵多項式,則由下式給出:
$$\mathrm{p(\lambda) \: = \: \lvert \lambda I \: − \: A \rvert}$$
其中:
“I”是n階單位矩陣。
“λ”是一個實常數。
這個多項式p(λ)的根稱為方陣A的“特徵值”。
根據Cayley-Hamilton定理,如果多項式p(λ)是方陣A的特徵多項式。那麼,如果我們將λ = A代入p(λ),它將得到一個零矩陣,即:
$$\mathrm{p(A) \: = \: 0}$$
因此,如果我們對方陣A的特徵多項式在矩陣A本身處求值,則結果為零矩陣。因此,Cayley-Hamilton定理滿足其自身的特徵多項式。
Cayley-Hamilton定理在控制理論、物理學、訊號處理等各個工程領域發揮著至關重要的作用。這就是關於Cayley-Hamilton定理基礎知識的全部內容。現在讓我們學習它在MATLAB中的實現。
MATLAB中Cayley-Hamilton定理的實現
我們可以在MATLAB中實現Cayley-Hamilton定理。下面解釋了實現Cayley-Hamilton定理的兩種最簡單的方法。
方法(1) – 透過定義函式實現Cayley-Hamilton定理
function CH(A)
% Check whether the input matrix is a square matrix
[m, n] = size(A);
if m ~= n
error('Input matrix is not a square matrix.');
end
% Defining characteristic polynomial of input square matrix
p = poly(A);
% Cayley-Hamilton theorem calculation
r = polyvalm(p, A);
% Display the result
disp('Cayley-Hamilton Theorem:');
disp(r);
% Verify the Cayley-Hamilton Theorem
if isequal(round(r), zeros(size(A)))
disp('Cayley-Hamilton theorem is verified.');
else
disp('Cayley-Hamilton theorem verification failed.');
end
end
將此函式儲存在MATLAB環境中當前的工作區中。然後,開啟MATLAB命令視窗,並呼叫“CH”函式來計算Cayley-Hamilton定理。
示例1
% Create a square matrix A = [10, 20; 30, 40]; % Calculate Cayley-Hamilton’s theorem CH(A);
輸出
它將產生以下輸出:
Cayley-Hamilton Theorem:
0 0
0 0
Cayley-Hamilton theorem is verified.
示例2
% Create a square matrix A = [10, 20 30; 30, 40, 50]; % Calculate Cayley-Hamilton’s theorem CH(A);
輸出
它將產生以下輸出:
Error using CH Input matrix is not a square matrix.
現在讓我們討論另一種在MATLAB中實現Cayley-Hamilton定理的方法。
方法(2) – 使用“for”迴圈計算Cayley-Hamilton定理
以下示例程式演示了在MATLAB中實現Cayley-Hamilton定理。
示例3
% MATLAB program to Implement Cayley-Hamilton’s theorem
% Input a square matrix
A = [10, 20; 30, 40];
% Check if the input matrix is a square matrix
[m, n] = size(A);
if m ~= n
error('Input matrix is not a square matrix.');
end
% Store the size of the input matrix in a variable
mat_size = size(A);
% Characteristic polynomial calculation
p = poly(A);
% Create a zero matrix of the same size as A
r = zeros(mat_size);
% Calculate Cayley-Hamilton theorem using a loop
for i = 1 : (mat_size(1) + 1)
r = r + p(i) * (A^(mat_size(1)+1 - i));
end
% Display the result
disp("Cayley-Hamilton’s Theorem:");
disp(round(r));
% Verify Cayley-Hamilton theorem
if isequal(round(r), zeros(mat_size))
disp("Cayley-Hamilton theorem is verified.")
else
disp("Cayley-Hamilton theorem verification is failed.")
end
輸出
它將產生以下輸出:
Cayley-Hamilton’s Theorem:
0 0
0 0
Cayley-Hamilton theorem is verified.
如果我們將輸入矩陣“A”替換為以下非方陣:
A = [10, 20, 30; 30, 40, 50];
則輸出將為:
Input matrix is not a square matrix.
結論
總之,Cayley-Hamilton定理是線性代數中的一個強大結果,它給出了方陣與其特徵方程或多項式之間的關係。我們可以在MATLAB中實現Cayley-Hamilton定理。在本文中,我透過示例解釋了在MATLAB中實現Cayley-Hamilton定理的兩種最簡單的方法。您可以使用不同的方陣嘗試這些MATLAB程式碼,以檢視結果。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP