I am having an issue writing the Schur complement in CVX that keeps telling me “Disciplined convex programming error”. Here is my problem, I have the following matrix [X x; x’ 1] which is positive semidefinite. Note that X is a K \times K matrix and x column vector of size K. If I write
[[X x];[x’ 1]] == semidefinite(K+1), it works fine. For some reasons, I need to write it as
two constraints, i.e. X positive semidefinite and X-xx’ positive semidefinite. So when I write
X== semidefinite(K) and X-xx’ == semidefinite(K)
CVX says that “Disciplined convex programming error”. I am almost certain that the problem is with the product "xx’ ". Does someone have a solution to write "xx’ " in CVX?
You simply cannot. You will have to use the first approach. Why do you think you “need” to write it as two equations.
@mcg I am solving an optimization problem using SDR approach. I have provided an optimality condition (which permits to have a rank one solution) where the theoretical analysis was mainly based on the rank of the Lagrangian multipliers associated with the constraint X-x*x’. So I need to see if empirically, it is really true.
Thanks for replying anyway.
That doesn’t explain why you need the two constraints together. The first one is exactly equivalent to the two-constraint form, only it is actually convex and in a form CVX can handle.