Inverse of a SDP var

40 views
Skip to first unread message

Ryad BOUKHARI

unread,
Nov 29, 2017, 5:02:03 AM11/29/17
to YALMIP
Hi Sir Lofberg, i hope you are fine,

I am struggling to overcome the issue of variables wich can appear in two ways (d and (1/d) ) in my LMI.

for example, if i use the following lemma : A*B'+A'*B <= delta* A'*A + (1/delta)*B'*B,  i'll have "delta" and "1/delta" in the LMI.

I tried to use BMIBNB as solver and decalring "delta" as a SDPVAR, and it can't solve it !

Do you have an idea to tackle this problem ?

With my advance thanks !


Mohamed Ryad Boukhari.

Johan Löfberg

unread,
Nov 29, 2017, 5:17:32 AM11/29/17
to YALMIP
Too little information. 

If you are using BMINB, you are using a local solver inside. Which? PENLAB? If you are using penlab, you cannot have an inverse as penlab via YALMIP is for polynomial problems. You would then introduce a new variable delta_inverse, and add the constraint delta*delta_inverse == 1.

And it makes no sense to say "in the LMI" when you just said you don't have an LMI (as delta is a variable)

Also, we don't know if you are throwing away easily linearizable stuff. For instance, if you have  delta* A'*A + (1/delta)*B'*B <= X, you should obviously perform a Schur complement to get rid of the inverse (assuming A is constant)

Ryad BOUKHARI

unread,
Nov 29, 2017, 5:57:19 AM11/29/17
to YALMIP
Yes my question was too short and uncomprehensible, but as all the times your answer is clear and pertinent.

The idea that i need it was to add an other variable "inv_delta", and make a novel constraint "delta*inv_delta == 1".

On the hand, i didn't understand the question of the local solver, i only specify that the solver is "bmibnb" by typing : "sdpsettings('solver','bmibnb'), and it seems that it works well.  

Thank you, Sir, for the valuable answer !

Johan Löfberg

unread,
Nov 29, 2017, 6:11:11 AM11/29/17
to YALMIP
When you solve a problem with the global solver BMIBNB, YALMIP will display which solvers it has selected for solving relaxation (lower solver) and upper bounds using local solver. If you have a nonlinear SDP, and it runs, that means you have penlab or penbmi on your path and YALMIP selected some of those
Reply all
Reply to author
Forward
0 new messages