Efficient way to check if a large matrix is positive definite.

Suppose I have a large $n\times{}n$ matrix with $n>1000$ say. I would like to find the quickest way to check if it is positive definite. My matrices are sparse so at the moment I am using sparse matrices in Matlab and the command 'chol'. Is there a quicker way (preferably in Matlab)? Thanks!

My matrices are banded, if that helps.

• Check that all eigenvalues are positive. If the matrix is real, it is even simpler; see en.wikipedia.org/wiki/… – parsiad Jun 26 '16 at 14:57
• That's slower than Cholesky factorization, I'm not bothered about eigenvalues, just the quickest way to see if it's positive definite. – Mathmo Jun 26 '16 at 15:04
• You can check the quadratic form on, say, the standard basis in cubic time. And you can do it in parallel. Is that adequate? I'm not sure how much better you can do without some restrictions on the matrix you're talking about. – Ian Jun 26 '16 at 15:15
• @Mathmo: did you see the comment on Wikipedia about using Descartes rule of signs when the matrix is real? – parsiad Jun 26 '16 at 15:44
• Computational Science StackExchange might be a better venue for this question. – horchler Jun 26 '16 at 15:50