clearnum = 1;N = 1;
% define variablesx = sdpvar(2*num,N+1,'full');t = sdpvar(num*num,N+1); % dummy variable for LMI
P = cell(num,N+1);for ii = 1:N+1 for jj = 1:num P{jj,ii} = sdpvar(2,2,'full'); endend
% objectiveobj = sum(sum(t));
% constraintsconstr = [t>=0];
% psd constraint
for ii = 1:N+1 for jj = 1:num constr = [constr,[P{jj,ii} >= 0]:'psd of P']; endend
% LMI constraintfor ii = 1:N for jj = 1:num tmp = 0; for ll = 1:num constr = [constr,[[P{ll,ii+1} x(2*jj-1:2*jj,ii+1)-x(2*ll-1:2*ll,ii+1); (x(2*jj-1:2*jj,ii+1)-x(2*ll-1:2*ll,ii+1))' t(num*(jj-1)+ll,ii+1)]>=0]:'LMI']; end endend
% intentionally add this constraint to show, via the optimization result,% that LMI is interpreted as something elseconstr = [constr, P{1,1}(2,1) == -1, P{1,1}(1,2) == -1];
opt = sdpsettings('solver','mosek','verbose',3,'debug',1,'showprogress',1);sol = optimize(constr,obj,opt);
check(constr)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Primal residual| Dual residual| Tag|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Elementwise inequality| 0| 0| || #2| Elementwise inequality| 0| 0| psd of P|| #3| Elementwise inequality| 0| 0| psd of P|| #4| Elementwise inequality| 0| 0| LMI|| #5| Equality constraint| -1| -1| || #6| Equality constraint| -1| 0| |+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
P{jj,ii} = sdpvar(2,2)