📜  Cayley-Hamilton定理在MATLAB中的实现

📅  最后修改于: 2022-05-13 01:54:29.816000             🧑  作者: Mango

Cayley-Hamilton定理在MATLAB中的实现

根据线性代数,每个方阵都满足自己的特征方程。考虑阶数为“n”的方阵“A”,则其特征方程由关系式给出:

|A-λI| = 0其中“λ”是某个实数常数,“I”是与 A 的阶相同的阶单位矩阵。

扩展上述关系,我们得到:

λn + C1λn-1 + C2λn-2 + . . . + CnIn = 0 (
Another form of Characteristic equation)
where C1, C2, . . . , Cn are Real Constants.

根据 Cayley-Hamilton 定理,上式满足 'A',因此我们有:

An + C1An-1 + C2An-2 + . . . + CnIn = 0 

以下代码中使用的不同方法是:

  • input(text):此方法显示其中写入的文本并等待用户输入值并按回车键。
  • size(A):此方法返回一个行向量,其元素是“A”对应维度的长度。
  • poly(A):此方法返回方阵“A”的特征多项式的 n+1 个系数。
  • zeroes(size):此方法返回一个零数组,其大小向量等于“size”的向量。

例子:

Matlab
% MATLAB code for Implementation of Cayley-Hamilton’s theorem
clear all     
clc           
disp("Cayley-Hamilton’s theorem in MATLAB | GeeksforGeeks")
A = input("Enter a matrix A : ")
 
% DimA(1) = no. of Columns & DimA(2) = no. of Rows
DimA = size(A)
charp = poly(A)
P = zeros(DimA);
for i = 1:(DimA(1)+1)
    P = P + charp(i)*(A^(DimA(1)+1-i));
end
disp("Result of the Characteristic equation after substituting the Matrix itself = ")
disp(round(P))
if round(P)==0
    disp("Therefore, Caylay-Hamilton theorem is verified")
end


输出: