I am implementing an optimization problem using semi-definite approach. One of my constraints is of following form

$ trace(A∗X)−(k∗trace(A∗X))+(k∗\sqrt {(trace(B∗X)} )==0$

where k is a constant, A and B are constant complex hermitian matrices, $B=A^2$ and $X$ is $m∗m$ complex, hermitian semi-definite matrix optimization variable.

It can be seen that the last terms $\sqrt {(trace(B∗X)}$ is a problematic term. This terms appears in the equation when I introduced one special electrical load (In the absence of that load, the constraint is reduced to first two terms which I have already solved successfully). Since, I am writing my code using YALMIP, which is an external toolbox of MATLAB, sqrt on complex variable is not allowed in that toolbox. Is there any way to rewrite that particular term using some convex optimization tools so that, I can get rid of square root and obtain a linear equation again in terms of $X$?

  • $\begingroup$ Is the formula correct? The second term is just a multiple of the first... $\endgroup$ Nov 13, 2018 at 13:41
  • $\begingroup$ yes, it is correct. $\endgroup$ Nov 13, 2018 at 13:42
  • $\begingroup$ But then there are really only two terms -- the square root and $(1-k)\;\text{trace}\,(AX)$. $\endgroup$ Nov 13, 2018 at 23:09
  • $\begingroup$ Yes, that's true. I have just stated it explicitly. Otherwise, there are only two terms in the constraint. $\endgroup$ Nov 14, 2018 at 7:47

1 Answer 1


square both side ?

(1-k)^2*trace(A*X)^2 == k^2*trace(B*X)
(1-k)^2*trace(A*X)^2 -  k^2*trace(B*X) == 0

move from SDP to QCQP. Or move to unconstrained problem with last term penalized with quadratic error (so X^4 minimization) or abs error


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.