Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

Hi all!

Let's say I have a positive definite sparse matrix $M$ whose sparsity pattern is known, and let's assume I compute a Cholesky factorization $M = LL^{T}$ of this matrix with all admissible non-zero entries set to, say, one. The factors $L$ are assumed to be sparse.

Will this factorization be valid for every possible positive semi-definite $M$ in the sense that irregardless of the values of the non-zero entries it holds that $M = LL^{T}$, with $L$ always having the sparsity pattern obtained when factorizing the original (positive definite) $M$ but with different values depending on $M$? Some small numerical experiments indicate that this is the case, but can it be proven?

regards
-- Olav

share|improve this question

1 Answer 1

up vote 3 down vote accepted

Yes, this is more or less true. See for example Timothy Davis's book, "Direct Methods for Sparse Linear Systems."

You can work out in advance the locations of all possible non-zero entries in $L$ from knowledge of the locations of the nonzeros in $M$. This process is often called "symbolic factorization." Once you've got an actual matrix in hand, the actual "numerical factorization" process is then quite fast. Most library routines for sparse Cholesky factorization exploit this.

Note that it is possible for an entry in $L$ to come out zero due to cancellation of terms in the numerical factorization. In such situations you can end up with zero values stored explicitly in the sparse matrix $L$. Because of this possibility it is not safe to do the symbolic factorization by putting arbitrary numbers into $M$, constructing the Cholesky factor, and recording where the nonzeros are in $L$. Davis's book discusses an algorithm for working out the locations of all possible nonzeros in $L$.

One place where this is particularly helpful is in interior point methods for linear programming. In the primal-dual interior point method, you solve a symmetric and positive definite system of equations of the form $A\theta A^{T} \Delta x =b$, where $\theta$ is a diagonal matrix that changes from iteration to iteration. The locations of the nonzero entries in $A\theta A^{T}$ don't change from iteration to iteration, but the actual values do change. So, you do the symbolic factorization once (during the first iteration) and then do numerical factorization only in each successive iteration of the algorithm.

share|improve this answer
    
Thanks for that! I'll check out the book. It looks as if the Matlab function "symbfact" does precisely the required symbolic factorization in a safe way. –  user12400 Nov 15 '11 at 9:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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