已知A=[-8.5 7 8;5 -5.7 9; 0.5 0.2 -6.7]; C=[1.2 0 0;0 1.2 0;0 0 1.2];运用LMI解出3维方阵X,使得A-XC负定。请给出完整代码
时间: 2024-05-24 13:10:49 浏览: 99
使用Matlab中的Robust Control Toolbox中的lmi函数来解决该问题。完整代码如下:
A = [-8.5 7 8; 5 -5.7 9; 0.5 0.2 -6.7];
C = [1.2 0 0; 0 1.2 0; 0 0 1.2];
setlmis([])
X = lmivar(1, [3 1]);
lmiterm([-1 1 1 X], 1, A, 's');
lmiterm([-1 1 1 X], C, 1, 's');
lmiterm([-1 1 1 0], -1);
LMIsys = getlmis;
[tmin, feas] = feasp(LMIsys);
if feas == 0
disp('No solution exists');
else
Xsol = dec2mat(LMIsys, tmin, X);
disp('Solution exists');
end
disp(['Xsol = ', num2str(Xsol)]);
% 检查解是否符合要求
if min(eig(A - Xsol * C)) < 0
disp('A - XC is NOT negative definite');
else
disp('A - XC is negative definite');
end
相关问题
已知A=[-8.5 7 8;5 -5.7 9; 0.5 0.2 -6.7]; C=[1.2 0 0;0 1.2 0;0 0 1.2];运用LMI解出3维方阵X,使得A-XC负定请给出完整代码
clc
clear
A = [-8.5 7 8;5 -5.7 9; 0.5 0.2 -6.7];
C = [1.2 0 0;0 1.2 0;0 0 1.2];
setlmis([]);
X = lmivar(1,[3 1]);
lmiterm([-1 1 1 X],1,1);
lmiterm([-2 1 1 X],C,A,'s');
lmiterm([-2 1 1 X],1,C,'s');
lmis = getlmis;
[tmin,xfeas] = feasp(lmis);
if tmin<0
X = dec2mat(lmis,xfeas,X);
disp('The solution is:')
disp(X)
else
disp('No solution found')
end
已知A=[-8.5 7 8;5 -5.7 9; 0.5 0.2 -6.7]; C=[1.2 0 0;0 1.2 0;0 0 1.2];用matlab LMI解出3维方阵X,使得A-XC负定。请给出完整代码
clc; clear;
A = [-8.5, 7, 8; 5, -5.7, 9; 0.5, 0.2, -6.7];
C = [1.2, 0, 0; 0, 1.2, 0; 0, 0, 1.2];
setlmis([]);
X = lmivar(1, [3, 1]);
lmiterm([-1, 1, 1, 0], X);
lmiterm([1, 1, 1, X], A, C', 's');
lmiterm([-1, 1, 2, 0], C);
lmiterm([-2, 1, 1, X], 1, 1);
lmis = getlmis;
[tmin, xfeas] = feasp(lmis);
X = dec2mat(lmis, xfeas, X);
if min(eig(X)) < 0
disp('A - XC is not negative definite');
else
disp('A - XC is negative definite');
end