How to deal with the lack of an explicit Expression type (present in CVX) in Convex.jl?

@juliohm thank you a lot for finding the time to answer my question :slight_smile:

You are right in noticing this inconsistency, but actually the matlab code should read variable xsi(n,n) complex, since xsi is a matrix with complex entries. I am editing the initial post to reflect this.

I know this, but the point is that xsi is not a Semidefinite matrix, it is a more or less arbitrary complex matrix (actually if I choose the coordinates of the problem wisely it can be Hermitian).
On the other hand, the matrices M0 and M1 are always Hermitian, but these matrices are not the variables themselves, they are just combinations of the elements of xsi. Possibly I could rewrite the problem using M0 as my variable, but I am not sure.

Anyway, the point is that I would like to know if it is possible to do what I did in CVX also with Convex.jl, regardless of the details: i.e. how do I create a new matrix from elements of my variable matrix and enforce matrix inequalities on this newly created matrix?

In any case if you are interested, the mathematical problem in its full form is the following (slightly modified from this quantum physics paper):

P.S. I apologize for my bad knowledge of the Greek alphabet, xsi in my code actually corresponds to the \chi letter in the mathematical description!

1 Like