I'm trying to use CVX to solve SDP problem. I have a constraint with positive definite matrix, but if i read the document of CVX, I can only find variable with positive semidefinite matrix. Can anyone know how I should define positive definite matrix in CVX?


As a practical matter, in floating point arithmetic there's no clear distinction between a positive definite matrix and a positive semidefinite matrix.

One way to characterize positive semidefinite and positive definite matrices is by the eigenvalues. However, any computation of the eigenvalues of $X$ will have some round off error, and you can never be sure whether the smallest eigenvalue is exactly 0, slightly negative, or slightly positive. So, you end up using some kind of tolerance and declaring the matrix to be positive semidefinite if the most negative eigenvalue is smaller in absolute value than this tolerance.

Some codes consider a matrix to be effectively positive definite if it has a Cholesky factorization, but this approach has similar issues with round off errors.

You may want to select a value $\tau$ and consider $X$ to be positive definite if all eigenvalues of $X$ are greater than or equal to $\tau$ or equivalently consider $X$ to be positive definite if $X-\tau I$ is positive semidefinite.

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