Feasibility problem with LMIs using differents solvers

670 views
Skip to first unread message

Francisco Ronay López Estrada

unread,
Nov 23, 2012, 5:26:51 AM11/23/12
to yal...@googlegroups.com
Dear Johan

I have  the following problem when I try to solve the following LMIs

However, the problem tends to be unfeasible. Can you help me. I attached the matlab file.

LMIs.m

Johan Löfberg

unread,
Nov 23, 2012, 5:41:48 AM11/23/12
to yal...@googlegroups.com
This 

Con=[Ee'*Pe==Pe'*Ee, Pe'*Ee>eye(8)]

will not work. YALMIP interprets non-symmetric matrices in constraints as elementwise constraints. The fact that you force the numerical solution to be symmetric will not help. 

Hence, unless you can code it differently, you could do
X = sdpvar(8);
Con= [X>=0, X==Ee'*Pe];

Note non-strict inequalities. YALMIP does not support strict inequalities

Johan Löfberg

unread,
Nov 23, 2012, 6:17:19 AM11/23/12
to
Note though, the problem is inherently infeasible. Already this fails

solvesdp([Ee'*Pe+(Ee'*Pe)' >= eye(8)])

Francisco Ronay López Estrada

unread,
Nov 23, 2012, 6:22:43 AM11/23/12
to yal...@googlegroups.com
Thanks a lot for your soon answer. 

You right E is singular, and considering the first approach

X = sdpvar(8);
Con= [X>=0, X==Ee'*Pe];

the solver almost works, however the solution is very close to zero, and the following message appears, "Numerical problems ".
with respect to second expression that becomes unfeasible

solvesdp([Ee'*Pe+(Ee'*Pe)' >= eye(8)])

where Pe=[P1 0 ; 0 P2], P1, P2 are sdpvar objects. Even when this symmetric expression is not used in other part, the problem is that Pe is formed by P1 and P2, which are used in the rest of the set of LMIs. So, I do not known how to rewrite this expression.

Johan Löfberg

unread,
Nov 23, 2012, 6:32:48 AM11/23/12
to yal...@googlegroups.com
With the identity margin removed, it indeed runs into numerical issues, but if you look at the solution, it is essentially as good as you ever can expect it to be. All eigenvalues are within 10^-12 from 0.

checkset(Con)

Note that g seems to go to 0, and since you want g minimal, and it is constrained non-negative, you can resolve the problem with g replaced with 0. Note also that P2 is very close to zero no matter what you do (feasibility problem, maximize P2 trace etc). Hence, my guess is P2=0 is the only feasible choice.

Johan Löfberg

unread,
Nov 23, 2012, 6:35:34 AM11/23/12
to yal...@googlegroups.com
BTW, constraining g to be non-negative is redundant, since the diagnoal (3,3) and (4,4) blocks are identity matrices scaled by g.

Francisco Ronay López Estrada

unread,
Nov 23, 2012, 6:43:53 AM11/23/12
to yal...@googlegroups.com
Again, thank you very much for your reply and your time. However, I can solve the problem fixing the value of g, e.g g=1.  I will review in more detail the equations to try to find a different solution.

Johan Löfberg

unread,
Nov 23, 2012, 6:46:01 AM11/23/12
to yal...@googlegroups.com
I don't see the reason for fixing g to 1. You get exactly the problem, i.e., P2 has to be 0.

Francisco Ronay López Estrada

unread,
Nov 23, 2012, 8:52:48 AM11/23/12
to yal...@googlegroups.com
 I had checked different ways, and best solution still closer to zero. I will redesign  the LMIs ir order of tried to find a better solution. Pr.  Johan Löfberg
I really appreciate your help, thank you very much.

Johan Löfberg

unread,
Nov 23, 2012, 9:06:31 AM11/23/12
to
Just so there is no misconception here: everything you see below, say, 1e-7, is numerical noise and has absolutely no actual meaning. 

CD

unread,
Jan 26, 2016, 8:21:17 PM1/26/16
to YALMIP
Dear Johan,

In order to solve the matrix inequalities: 
E'P=P'E>=0
A'P+P'A<0

I use the following Yalmap code:
%%%%%%%%%%%%%%%%%%%
E=[1 1 0.5;-0.5 1.5 1.75;1 1 0.5];
A=[-10 5 6.5;2 -5.5 -1.25;-9 4 8.5];
n=size(A,1);
P=sdpvar(n,n,'full');
X=sdpvar(n,n);
F=[X>=0,X==E'*P,A'*P+P'*A<=0];            
optimize(F);
%%%%%%%%%%%%%%%%%%%
Why is the feasible solution not found? However, the feasible solution can be obtained by transform the matrix inequalities to an LMI. Are there any errors about the code used?

Johan Löfberg

unread,
Jan 27, 2016, 2:26:33 AM1/27/16
to YALMIP
Code looks weird. P looks like a Lyapunov and should thus typically be symmetric, but you say it should be full. X on the other hand looks like something which cannot be symmetric due to the equality, but you say it should be symmetric (default for square matrices).


CD

unread,
Jan 27, 2016, 2:38:28 AM1/27/16
to YALMIP
Actually, it is the stability condition for descriptor system which is seen as follows:


Therefore, matrix P is not necessarily symmetric. If the following code does not work

%%%%%%%%%%%%%%%%%%%
E=[1 1 0.5;-0.5 1.5 1.75;1 1 0.5];
A=[-10 5 6.5;2 -5.5 -1.25;-9 4 8.5];
n=size(A,1);
P=sdpvar(n,n,'full');
X=sdpvar(n,n);
F=[X>=0,X==E'*P,A'*P+P'*A<=0];            
optimize(F);
%%%%%%%%%%%%%%%%%%%

How can I use Yalmip code to solve matrix P effectively?

Johan Löfberg

unread,
Jan 27, 2016, 6:41:05 AM1/27/16
to YALMIP
Your code works, ao I'm not sure what you are asking

ans =

    yalmiptime
: 0.2016
    solvertime
: 0.1894
          info
: 'Successfully solved (SeDuMi-1.3)'
       problem
: 0

>>


CD

unread,
Jan 27, 2016, 8:28:16 AM1/27/16
to YALMIP
  • Because the result returns 'Marginal infeasibility: these LMI constraints may be feasible but are not strictly feasible', I thought it is not feasible. But after I check them by substituting the solution to matrix inequalities, I found they are feasible actually. Thanks for your reply.

Johan Löfberg

unread,
Jan 27, 2016, 8:31:20 AM1/27/16
to YALMIP
Please read

and your model is ill-posed as it is homogeneous allowing all-zeros as a feasible solution

CD

unread,
Jan 27, 2016, 4:40:05 PM1/27/16
to YALMIP
Thanks, I will install other solvers.
Reply all
Reply to author
Forward
0 new messages