Schur complement

(Juju) #1

Hi guys,
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-x
x’ == 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?

(Michael C. Grant) #2

You simply cannot. You will have to use the first approach. Why do you think you “need” to write it as two equations.

(Juju) #3

@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.

(Michael C. Grant) #4

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.