Minimize trace(P+Q) under the constraints:
This problem is solved by the function below:
function [LME,LMI,OBJ]=of_eval(XLIST) [P,Q]=XLIST(:) /////////////////DEFINE LME, LMI and OBJ BELOW LME=list(P-P',Q-Q') LMI= list(-NB'*(A*Q+Q*A'+Q)*NB,-NC'*(A'*P+P*A+P)*NC,[P I; I Q]); OBJ=trace(P+Q);
Solving function generated by lmitool
function [P,Q]=of(A,B,C) // Generated by lmitool on Thu Feb 09 11:22:01 MET 1995 Mbound = 1e3;abstol = 1e-10;reltol = 1e-10; nu = 10;maxiters = 100; options=[Mbound,abstol,nu,maxiters,reltol]; ///////////DEFINE INITIAL GUESS AND PRELIMINARY CALCULATIONS BELOW P_init=zeros(A) Q_init=zeros(A) NB=kernel(B'); NC=kernel(C); I=eye(A); /////////// XLIST0=list(P_init,Q_init) XLIST=lmisolver(XLIST0,of_eval,options) [P,Q]=XLIST(:)Let's try a simple example with 3 states
A=[0,1,0;2,3,1;-1,-2,0]; B=[1,0;-2,1;0,1]; C=[1,2,0;0,1,-2]; [P,Q]=of(A,B,C) Q = ! 1.0251242 - 0.7135499 - 0.3606374 ! ! - 0.7135499 1.2950105 0.6655355 ! ! - 0.3606374 0.6655355 1.5585759 ! P = ! 1.5824578 0.8759924 - 0.0078987 ! ! 0.8759924 1.4742173 - 0.4268180 ! ! - 0.0078987 - 0.4268180 0.8220415 !