[Math] Factorize positive definite symmetric matrix

MATLABmatricesmatrix decompositionpositive definitesymmetric matrices

Let's start from the assumption of disposal of a positive definite symmetric matrix of size $\ (N,N) $. For some reason I have to factorize this matrix: I am already aware of the Cholesky factorization method, but I am wondering if there is any procedure allowing for matrix factorization based on eigen-vectors and eigen-values.

I am not a mathematician, therefore my background knowledge on the topic is rather scarce and little. I need the factorization within a MATLAB code, and the Cholesky factorization is quite time-expensive, so that I'd more than appreciate moving towards a more practical (but effective) way to compute the lower triangular matrix.

Any support will be more than welcome.

Best Answer

Edit: Another decomposition which involves an upper triangular matrix (therefore a lower triangular one if you apply it to the adjoint first) is the QR decomposition, which is based on Gram-Schmidt. Of course, there is also the general $LU$ decomposition, but Cholesky is twice as efficient. I don't know how the efficiency of QR compares to the one of Cholesky.

Now here is my previous answer, which did not answer the question...

Since you said symmetric, I assume your matrix is real.

Every positive definite symmetric (real, square) matrix is diagonalizable in an orthonormal basis.

Thus there exists $P$ invertible (and actually, $P$ can be taken to be an orthogonal matrix, wich means $P^tP=PP^t=I_n$) such that $$ A=PDP^{-1}=PDP^t $$ where $D$ is diagonal and the diagonal coefficients of $D$ are the eigenvalues of $A$, which are all positive.

Note that $P$ is simply a matrix whose columns constitute an orthonormal basis made of eigenvectors.

The same is true for positive definite complex matrices (they are not necessarily symmetric, they are self-adjoint or hermitian). Just replace orthogonal by unitary (ie $P^*P=PP^*=I_n$) and $P^t$ by $P^*$.