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