Is it possible to solve by YALMIP

98 views
Skip to first unread message

葉善茹

unread,
Dec 22, 2013, 10:53:36 AM12/22/13
to yal...@googlegroups.com
Dear all,

I want to find P1、P2、P3 which are matrices  and have to satisfy following constraints.

P=[P1 P3; (P3)' P2]>0  (1)
F*P1=F*(C)'*(P3)'+F*(P3)*C-F*(C)'*P2*(C)    (2)

*note that P1=(P1)'>0 ,P=(P)'>0

assume C=[1 2], F=[2 3] . The dimension of P1 is 2*2, P3 is 2*1, P1 is 1*1.

Is it possible to solve this question by YALMIP? I am the beginner of using YALMIP. Thank you for your help.

Shan-Ju 

Johan Löfberg

unread,
Dec 22, 2013, 11:04:55 AM12/22/13
to
It is basically as basic as it gets, so I recommend you to take a look at the basic examples
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Tutorials.Basics
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Tutorials.SemidefiniteProgramming

Note that your problem is ill-posed as 0 is a solution (the problem is homogenous in P1 P2 P3) when you change the strict inequality to a non-strict inequality (which you have to do in practice, we cannot optimize over open sets). When dehomogenizing your problem, it turns out to be infeasible
C=[1 2];
F
=[2 3];
P1
= sdpvar(2);
P3
= sdpvar(2,1);
P2
= sdpvar(1);
Model = [[P1 P3; (P3)' P2]>=eye(3), F*P1==F*(C)'*(P3)'+F*(P3)*C-F*(C)'*P2*(C)]
solvesdp
(Model)
  yalmiptime
: 2.789999999999964e-01
    solvertime
: 2.190000000000012e-01
          info
: 'Infeasible problem (SDPT3-4)'
       problem
: 1


葉善茹

unread,
Dec 23, 2013, 2:04:37 AM12/23/13
to yal...@googlegroups.com
Hi Johan,

Thank you for your information. I run your code and get the solution as following. Should I remove LMI toolbox? P is a positive definite matrix. Why you write P>=eye(3)?

Shan-Ju


Johan Löfberg

unread,
Dec 23, 2013, 3:35:34 AM12/23/13
to yal...@googlegroups.com
You should install another solver, such as sedumi or sdpt3 or mosek
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Solvers.LMILAB

LMILAB has failed completely, although it reported success. Both constraints are severely violated
 checkset(Model)
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   ID|      Constraint|                  Type|   Primal residual|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   #1|   Numeric value|     Matrix inequality|          -0.93919|
|   #2|   Numeric value|   Equality constraint|          -0.93725|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

I use P>=I since you problem is homogeneuous. If P is a feasible solution to your problem, then so is alpha*P where alpha is any positive number. Hence, a feasible solution is 0.000000000000000000000000001*P where P is solves the problem. In practice, that means P=0 is feasible, which isn't feasible in theory. To avoid that, we scale P and instead of P>0 we say P>=I. When you do that, you will note that the problem actually is infeasible (as just noted above)

葉善茹

unread,
Dec 24, 2013, 12:44:10 AM12/24/13
to yal...@googlegroups.com

Hi Johan,

Thank you for your explanation. I have installed sdpt3. I change to make P1 P2 P3 C known. In the meanwhile, I have checked P=[P1 P3; (P3)' P2]>0. I write code to find F. The following is my solution. Does it mean that I find "F" which satisfies (1) ?


Johan Löfberg

unread,
Dec 24, 2013, 3:57:36 AM12/24/13
to yal...@googlegroups.com
LINPROG has found a trivial solution F=0. You don't need a solver to find that solution.
Reply all
Reply to author
Forward
0 new messages