Q0=sdpvar(2*n, 2*n,'symmetric');
Q1=sdpvar(2*n, 2*n,'symmetric');
Q2=sdpvar(2*n, 2*n,'symmetric');
Q=@(rho) Q0 + Q1*sin(rho) + Q2*cos(rho);
dQ=@(rho) 0 + Q1*cos(rho) - Q2*sin(rho);
P0=sdpvar(2*n, 2*n,'symmetric');
P1=sdpvar(2*n, 2*n,'symmetric');
P2=sdpvar(2*n, 2*n,'symmetric');
P=@(rho) P0 + P1*sin(rho) + P2*cos(rho);
dP=@(rho) 0 + P1*cos(rho) - P2*sin(rho);
P(rho)>0
Q(rho)>0
rate*dQ(rho)+(A_rho'*Q(rho))+(Q(rho)*A_rho)+C_rho'*C_rho)<0;
-rate*dP(rho))+(A_rho*P(rho))+(P(rho)*A_rho')+(B_rho*B_rho<0;
trace(P(rho)*Q(rho))
sdpoptions=sdpsettings('solver','sdpt3','debug',1);
sum_obsv=cost_obsv(P,Q,rho_grid,k,no);
J(k)=sum_obsv; % J is an array
diagnostic_obsv = optimize(LMIConstraints_obsv,J(k),sdpoptions);
diagnostic_ctrb = optimize(LMIConstraints_ctrb,cost_ctrb(P,Q,rho_grid),sdpoptions) %or
diagnostic_obsv = optimize(LMIConstraints_obsv,cost_obsv(P,Q,rho_grid),sdpoptions)
>> P(1.1)Linear matrix variable 6x6 (symmetric, real, 63 variables)Eigenvalues between [2.7199,22.3001]Coeffiecient range: 0.4536 to 1
K>> Q(.3)Linear matrix variable 6x6 (symmetric, real, 63 variables)Eigenvalues between [2.5978,22.7681]Coeffiecient range: 0.29552 to 1