一例子 :
判断系统是否稳定
rank(S)=2,系统不完全可控
结论:不可控部分的特征值为负值-1所以系统稳定
二、使用matlab程序
2.1程序代码如下:
format rat
close all; clear all; clc
axis off
cla
A=input('输入A矩阵\n')
B=input('输入B矩阵\n')
q=[B,A*B,A*A*B];
str=["Пара матриц ","He ","имеет невырожденность.То есть rank="];
rank_q=rank(q);%判断矩阵是否为退化矩阵
if (length(q)==2)&(rank_q == 2)
text('String',"结论:"+str(1:1)+str(3:3)+rank_q,'Position',[0 0.5],'FontSize',15)
end
if (length(q)==3)&(rank_q == 3)
k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 0.5],'FontSize',18)
text('String',"结论:"+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.3],'FontSize',15)
end
if (length(q)==3)&(rank_q == 2)
disp(""+str(1:1)+str(2:2)+str(3:3)+rank_q)
[T,a]=jordan(A);
b=T^-1*B;
ind = find(b==0);
if length(ind) ~= 1
disp("程序不支持A矩阵")
pass
end
if norm(a(ind,ind)) ~= a(ind,ind)
k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 1],'FontSize',10)
text('String',""+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.9],'FontSize',10)
%T
k=['$','T=\left ( \begin{array}{clcr} ',num2str(T(1,1)),'&',num2str(T(1,2)),'&',num2str(T(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(T(2,2)),'&',num2str(T(2,3)),' \\ ',num2str(T(3,1)),'&',num2str(T(3,2)),'&',num2str(T(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 0.8],'FontSize',10)
%T^-1
k=['$','T^{-1} A T=\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 0.62],'FontSize',10)
%b
disp(b)
k=['$','T^{-1} B = \left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0.5 0.62],'FontSize',10)
%all
k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X}}=','\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','\stackrel{\rm -}{X}+','\left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )u','$'];
text('Interpreter','latex','String',k,'Position',[0 0.44],'FontSize',10)
%s
text('String','Неуправляемая часть системы ','Position',[0,0.3],'FontSize',10)
k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X_3}}=',num2str(a(3,3)),'\stackrel{\rm -}{X_3}','$'];
text('Interpreter','latex','String',k,'Position',[0 0.2],'FontSize',10)
text('String','асимптотически устойчива. Система стабилизируема','Position',[0,0.1],'FontSize',10)
else
k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 1],'FontSize',10)
text('String',""+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.9],'FontSize',10)
%T
k=['$','T=\left ( \begin{array}{clcr} ',num2str(T(1,1)),'&',num2str(T(1,2)),'&',num2str(T(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(T(2,2)),'&',num2str(T(2,3)),' \\ ',num2str(T(3,1)),'&',num2str(T(3,2)),'&',num2str(T(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 0.8],'FontSize',10)
%T^-1
k=['$','T^{-1} A T=\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0 0.62],'FontSize',10)
%b
k=['$','T^{-1} B = \left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )','$'];
text('Interpreter','latex','String',k,'Position',[0.5 0.62],'FontSize',10)
%all
k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X}}=','\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','\stackrel{\rm -}{X}+','\left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )u','$'];
text('Interpreter','latex','String',k,'Position',[0 0.44],'FontSize',10)
%s
text('String','Неуправляемая часть системы ','Position',[0,0.3],'FontSize',10)
k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X_3}}=',num2str(a(3,3)),'\stackrel{\rm -}{X_3}','$'];
text('Interpreter','latex','String',k,'Position',[0 0.2],'FontSize',10)
text('String','асимптотически устойчива. Система не стабилизируема','Position',[0,0.1],'FontSize',10)
end
end
2.2使用方法
在命令行中依次输入A,B矩阵即可的到结果