円制約LMI…Homework
[1] 次の領域を考えます。
図1 領域
このとき、次の命題が成り立ちます。
●実際、まず領域が上図を表すことは、次のように確かめられます。
●次に、十分性は、とすると、次のように確かめられます。
さらに、とおくと、次が成り立ちます。
必要性については、あとで述べます。
演習B12…Flipped Classroom
円制約を調べる次のコードを説明せよ。
MATLAB |
%ana_lmi2.m
%-----
A=[0 1;-2 -3]; n=2;
%-----
setlmis([]);
X=lmivar(1,[n 1]);
%-----
q=0; r=1.5;
lmi1=newlmi;
lmiterm([lmi1 1 1 X],-r,1); %#1:
lmiterm([lmi1 1 2 X],1,A); %#1:2*alpha*X
lmiterm([lmi1 2 2 X],-r,1); %#1:
%
lmi2=newlmi;
lmiterm([-lmi2 1 1 X],1,1); %#2:X
%-----
LMIs=getlmis;
[tmin,xfeas]=feasp(LMIs);
X=dec2mat(LMIs,xfeas,X)
%-----
%eof
|
次の領域を表すを導出し、これをチェックするプログラムを作成せよ。
MATLAB |
%ana_lmi2a.m
%-----
A=[0 1;-1 -2]; n=2;
%-----
setlmis([]);
X=lmivar(1,[n 1]);
%-----
a=2; b=1;
% LMI1=-[-4*a^2*b^2*X (b+a)*X*A+(b-a)*A'*X;
% (b-a)*X*A+(b+a)*A'*X -X];
lmi1=newlmi;
lmiterm([lmi1 1 1 X],-4*a^2*b^2,1); %#1:-4*a^2*b^2*X
lmiterm([lmi1 1 2 X],b+a,A); %#1:(b+a)*X*A
lmiterm([lmi1 1 2 X],(b-a)*A',1); %#1:(b-a)*A'*X
lmiterm([lmi1 2 2 X],-1,1); %#1:-X
%
lmi2=newlmi;
lmiterm([-lmi2 1 1 X],1,1); %#2:X
%-----
LMIs=getlmis;
[tmin,xfeas]=feasp(LMIs);
X=dec2mat(LMIs,xfeas,X)
%-----
%eof
|
次の領域を表すを導出し、これをチェックするプログラムを作成せよ。
MATLAB |
%ana_lmi2b.m
%-----
A=[0 1;-1 -2]; n=2;
%-----
setlmis([]);
X=lmivar(1,[n 1]);
%-----
a=2; b=sqrt(2); f=sqrt(a^2+b^2);
% LMI1=-[b*(X*A+A'*X+2a*X) a*(X*A-A'*X);
% -a*(X*A-A'*X) b*(X*A+A'*X-2a*X)];
lmi1=newlmi;
lmiterm([lmi1 1 1 X],b,A,'s'); %#1:b*(X*A+A'*X)
lmiterm([lmi1 1 1 X],2*a*b,1); %#1:2*a*b*X
lmiterm([lmi1 1 2 X],a,A); %#1:a*X*A
lmiterm([lmi1 1 2 X],-a*A',1); %#1:-a*A'*X
lmiterm([lmi1 2 2 X],b,A,'s'); %#1:b*(X*A+A'*X)
lmiterm([lmi1 2 2 X],-2*a*b,1); %#1:-2*a*b*X
%
lmi2=newlmi;
lmiterm([-lmi2 1 1 X],1,1); %#2:X
%-----
LMIs=getlmis;
[tmin,xfeas]=feasp(LMIs);
X=dec2mat(LMIs,xfeas,X)
%-----
%eof
|