Solved – Why use upper triangular Cholesky

cholesky decomposition

Software packages seem to prefer to work with the upper triangular part of the Cholesky factorization, see for example cholupdate. Why is this? It seems that it is more natural to represent a covariance matrix by it's lower triangular Cholesky factorization. For example, $L z$, where $L$ is the lower triangular Cholesky factorization and $z$ is a vector of standard normal normals, will give you a sample from a multivariate normal distribution. What are the uses of the upper triangular part?

Best Answer

Traditionally, and in most of the "world" (literature), the convention that the Cholesky factor is lower triangular is the most common, i.e., $LL^T$.

In MATLAB and Octave, among others (R's chol), Cholesky factor is defined to be upper triangular, i.e., $R^TR$. This convention was inherited by MATLAB from LINPACK, because MATLAB was originally a front end for LINPACK and EISPACK.

LINPACK chose the then (1970s) unusual convention of defining Cholesky factor to be upper triangular, This was due to its consistency with the QR decomposition, in which R is upper triangular (see the footnote on p. 28 of http://www.netlib.org/utk/people/JackDongarra/PAPERS/Chapter2-LINPACK.pdf ).

LINPACK's successor, LAPACK, does not have a default for upper vs. lower triangular, and makes the user specify which convention to use.

Either way works. Note that $L^T = R$. The important thing is to use the Cholesky factor in a manner commensurate with the convention.

Related Question