I am running both these codes on MATLAB 7.6(2008a) and cvx solver SDPT3 4.0.
As a result, I am getting Failed status. Can anyone point out possible reason behind such result.
Thanks
function [Grandom,x1max,x2max,P1,P2,count]=G_generator()
G=[87.8 -86.4 ; 108.2 -109.6];
N=13;
Grandom=cell(N,1);
c=0;
noise=10;
kmax=50;
e = noisenorminv(rand(2,kmax),0,1);
U=2round(rand(2,kmax)1)-1;
y=GU+e;
Ghat=(linsolve(UU’,Uy’))’;
yhat=GhatU;
SSE1 = norm(y(1,:)-yhat(1,:)).^2/(kmax - 2);
SSE2 = norm(y(2,:)-yhat(2,:)).^2/(kmax - 2);
b1 = 2SSE1fcdf(0.95,2,kmax-2);
b2 = 2SSE2fcdf(0.95,2,kmax-2);
c1=[1 ;0];
c2=[0;1];
P1=b1.^0.5(UU’)^-0.5;
P2=b2.^0.5(UU’)^-0.5;
x1max=((linsolve(UU’,c1))’[1;0])/((c1’linsolve((UU’)’,c1))/b1).^0.5;
x2max=((linsolve(UU’,c2))’[0;1])/((c2’linsolve((UU’)’,c2))/b2).^0.5;
x1min = -x1max;
x2min = -x2max;
xmax = 1.2max(x1max, x2max);
xmin = -xmax;
count=1;
for i=1:N
dg1=[x1min + (x1max-x1min).*rand(1,1),x1min + (x1max-x1min).*rand(1,1)];
dg2=[x2min + (x2max-x2min).*rand(1,1),x2min + (x2max-x2min).*rand(1,1)];
dG=[dg1;dg2];
if ((dg1*U*U'*dg1')<= b1)&&((dg2*U*U'*dg2')<= b2)
Grandom{count} =Ghat+dG;
count=count+1;
end
end
end
function [P]=P_gen1(X,Grandom,count)
Ghat =[87.5497 -87.5724
106.6350 -111.0270];
X=Ghat;
cvx_begin sdp
variable P(2,2) hermitian
cvx_precision best
variable t
minimize 0
subject to
P >= 0.0001*eye(2,2)
for i=1:count-1
(Grandom{i})'PX+X’P(Grandom{i}) >= 0
end
cvx_end
end