clc
clear all
A=[0 1;0 -0.1];
B=[0 0.1]';
H=[0.1 0]';
E_1=[1 0];
E_2=-1;
% Initial a LMI system
setlmis([]);
% Define Variables
Q(1,1)=lmivar(1,[2 1]);
Y(1,1)=lmivar(2,[1 2]);
Q(1,2)=lmivar(1,[2 1]);
Y(1,2)=lmivar(2,[1 2]);
Q(2,1)=lmivar(1,[2 1]);
Y(2,1)=lmivar(2,[1 2]);
Q(2,2)=lmivar(1,[2 1]);
Y(2,2)=lmivar(2,[1 2]);
e11=lmivar(1,[1 0]);
e12=lmivar(1,[1 0]);
e21=lmivar(1,[1 0]);
e22=lmivar(1,[1 0]);
lmiterm([-5 1 1 Q(1,1)],1,1);
lmiterm([-6 1 1 Q(1,2)],1,1);
lmiterm([-7 1 1 Q(2,1)],1,1);
lmiterm([-8 1 1 Q(2,2)],1,1);
lmiterm([-9 1 1 e11],1,1);
lmiterm([-10 1 1 e12],1,1);
lmiterm([-11 1 1 e21],1,1);
lmiterm([-12 1 1 e22],1,1);
% pos in (1,1)
lmiterm([1 1 1 Q(1,1)],A,1,'s');
lmiterm([1 1 1 Y(1,1)],B,1,'s');
lmiterm([1 1 1 e11],H,H');
lmiterm([1 1 1 Q(1,1)],-4,1);
% pos in (2,1)
lmiterm([1 2 1 Q(1,1)],E_1,1);
lmiterm([1 2 1 Y(1,1)],E_2,1);
% pos in (2,2)
lmiterm([1 2 2 0],-e11);
% pos in (3 1)
lmiterm([1 3 1 -Q(1,1)],sqrt(3),1);
% pos in (3,3)
lmiterm([1 3 3 Q(2,1)],-1,1);
% pos in (4,1)
lmiterm([1 4 1 -Q(1,1)],1,1);
% pos in (4,4)
lmiterm([1 4 4 Q(1,2)],-1,1);
% pos in (1,1)
lmiterm([2 1 1 Q(1,2)],A,1,'s');
lmiterm([2 1 1 Y(1,2)],B,1,'s');
lmiterm([2 1 1 e12],H,H');
lmiterm([2 1 1 Q(1,2)],-5,1);
% pos in (2,1)
lmiterm([2 2 1 Q(1,2)],E_1,1);
lmiterm([2 2 1 Y(1,2)],E_2,1);
% pos in (2,2)
lmiterm([2 2 2 0],-e12);
% pos in (3 1)
lmiterm([2 3 1 -Q(1,2)],sqrt(3),1);
% pos in (3,3)
lmiterm([2 3 3 Q(2,2)],-1,1);
% pos in (4,1)
lmiterm([2 4 1 -Q(1,2)],1,1);
% pos in (4,4)
lmiterm([2 4 4 Q(1,1)],-1,1);
% pos in (1,1)
lmiterm([3 1 1 Q(2,1)],A,1,'s');
lmiterm([3 1 1 Y(2,1)],B,1,'s');
lmiterm([3 1 1 e21],H,H');
lmiterm([3 1 1 Q(2,1)],-3,1);
% pos in (2,1)
lmiterm([3 2 1 Q(2,1)],E_1,1);
lmiterm([3 2 1 Y(2,1)],E_2,1);
% pos in (2,2)
lmiterm([3 2 2 0],-e21);
% pos in (3 1)
lmiterm([3 3 1 -Q(2,1)],sqrt(2),1);
% pos in (3,3)
lmiterm([3 3 3 Q(1,1)],-1,1);
% pos in (4,1)
lmiterm([3 4 1 -Q(2,1)],sqrt(2),1);
% pos in (4,4)
lmiterm([3 4 4 Q(2,2)],-1,1);
% pos in (1,1)
lmiterm([4 1 1 Q(2,2)],A,1,'s');
lmiterm([4 1 1 Y(2,2)],B,1,'s');
lmiterm([4 1 1 e22],H,H');
lmiterm([4 1 1 Q(2,2)],-4,1);
% pos in (2,1)
lmiterm([4 2 1 Q(2,2)],E_1,1);
lmiterm([4 2 1 Y(2,2)],E_2,1);
% pos in (2,2)
lmiterm([4 2 2 0],-e22);
% pos in (3 1)
lmiterm([4 3 1 -Q(2,2)],sqrt(2),1);
% pos in (3,3)
lmiterm([4 3 3 Q(1,2)],-1,1);
% pos in (4,1)
lmiterm([4 4 1 -Q(2,2)],sqrt(2),1);
% pos in (4,4)
lmiterm([4 4 4 Q(2,1)],-1,1);
lmis=getlmis;
[tmin,feas]=feasp(lmis);
把我上面提到的几个类似的错误句子改了一下,可以运行了
sizex =
24
Solver for LMI feasibility problems L(x) < R(x)
This solver minimizes t subject to L(x) < R(x) + t*I
The best value of t should be negative for feasibility
Iteration : Best value of t so far
1 1.630367
2 0.419948
3 0.419948
4 0.233349
5 0.233349
6 0.062980
7 0.062980
8 0.029221
9 0.029221
10 0.029221
11 0.010424
12 0.010424
13 -6.608582e-004
Result: best value of t: -6.608582e-004
f-radius saturation: 0.000% of R = 1.00e+009