I want to add a constraint to a convex program, to guarantee some matrix $A$ to be positive semidefinite. How should I do it?

The library I am working with can cope with linear/ quadratic inequalities only.

By definition, $A$ is positive semidefinite iff $\forall x \in \mathbb C^n : x^T A x \geq 0$, but this is a set of inifinitely many constraints. So, my question is: how can I formulate it using a finitely many set of contraints and using linear/ quadratic inequalities only.

Thanks in advance!

  • 2
    $\begingroup$ Add the constraint "$A$ is positive semidefinite". This is a convex constraint since the positive semidefinite matrices form a convex cone. $\endgroup$ – Yuval Filmus Aug 29 '16 at 21:11
  • $\begingroup$ If your question is about a particular convex programming library, then it's probably out of scope here. $\endgroup$ – Yuval Filmus Aug 29 '16 at 21:11
  • 1
    $\begingroup$ I have trouble understanding what you are asking. Community votes, please: unclear? $\endgroup$ – Raphael Aug 29 '16 at 22:08

A matrix $A$ is positive semidefinite if and only if there exists a matrix $V$ such that $$A = V^\top V.$$ So, you can use the entries of $V$ as your unknowns, and express each entry of $A$ as a quadratic function of the unknowns. Whenever you want to use $A$, instead rewrite that equation in terms of the entries of $V$.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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