How to Correctly Retrieve Lagrange Dual Variables?

18 views
Skip to first unread message

Yuxuan Chen

unread,
Feb 27, 2025, 12:17:52 AMFeb 27
to mosek
I am solving a complex optimization problem using YALMIP with mosek, where there is a semidefinite constraint , and  is a complex block matrix. Each block contains different optimization matrix variables, for example, . When I use dual(A >= 0), the Lagrange dual variables I obtain are NaN.( That's because A is a complex matrix, and MOSEK seems unable to directly obtain the values of the dual variables. ) I understand that the dual variables for semidefinite constraints are stored in sol.solveroutput.res.sol.itr.barx, but it clearly contains both the real and imaginary parts of the dual variables. The documentation also tells me that barx only stores the lower triangular part. I would like to know how the dual variables are arranged in barx, which block corresponds to the real part and which corresponds to the imaginary part, so that I can correctly recover them.  

Thank you in advance.

Erling D. Andersen

unread,
Feb 27, 2025, 1:12:23 AMFeb 27
to mosek
It seems you should pose your questions on the yalmip group, since you use yalmip as a front end.

In any case, Mosek can not deal with complex variables. Therefore, any question regarding complex variables does not make sense in a Mosek context.
I think Yalmip got rid of the complex variable using a reformulation trick.

For each barx variable there is a bars variable which is the dual variable. See


for details.

Erling D. Andersen

unread,
Feb 27, 2025, 1:18:59 AMFeb 27
to mosek
Yalmip discussions


might be the preferred place for Yalmip questions.

Erling D. Andersen

unread,
Feb 28, 2025, 1:50:23 AMFeb 28
to mosek
Reply all
Reply to author
Forward
0 new messages