Basic Concepts
Definition 1: A matrix A has a Cholesky Decomposition if there is a lower triangular matrix L all whose diagonal elements are positive such that A = LLT.
Property 1: Every positive definite matrix A has a Cholesky Decomposition and we can construct this decomposition.
Proof: The result is trivial for a 1 × 1 positive definite matrix A = [a11] since a11 > 0 and so L = [l11] where l11 =
We assume by induction that we can construct a Cholesky Decomposition for any positive definite n-1 × n-1 matrix and show how to construct the Cholesky Decomposition of an n × n positive definite matrix A.
Since A is positive definite it is symmetric and so we can represent A as follows
Since A is positive definite a11 > 0, and so we can define
is a positive definite. Let X be any n–1 × 1 column vector with X ≠0 and let
Then
since A is positive definite. Since
is a positive definite n-1 × n-1 matrix, there exists a lower triangular matrix  all of whose diagonal elements are positive such that
Example
Example 1: Find the Cholesky Decomposition of the matrix in range A4:C6 of Figure 1.
Figure 1 – Cholesky Decomposition
Figure 2 – Formulas for Cholesky Decomposition
Note that =MMULT(A17:C19,TRANSPOSE(A17:C19)) yields the matrix in the range A4:C6.
Worksheet Function
Real Statistics Function: The following array function is provided in the Real Statistics Resource Pack.
CHOL(R1): returns the matrix L such that LLT is the Cholesky Decomposition of the matrix in range R1
For Example 1, CHOL(A4:C6) returns the matrix found in range A17:C19.
Property 2: If LLT is the Cholesky Decomposition of A then the inverse of A is (L-1)TL-1.
Proof: A(L-TL–1) = (LLT)(L-TL–1) =L(LTL-T)TL–1= LIL–1 = LL–1 = I.
The proof that ((L-1)TL-1)A = I is similar.
Examples Workbook
Click here to download the Excel workbook with the examples described on this webpage.
References
Golub, G. H., Van Loan, C. F. (1996) Matrix computations. 3rd ed. Johns Hopkins University Press
Searle, S. R. (1982) Matrix algebra useful for statistics. Wiley
Perry, W. L. (1988)Â Elementary linear algebra. McGraw-Hill
Fasshauer, G. (2015)Â Linear algebra.
https://math.iit.edu/~fass/532_handouts.html
Lambers, J. (2010)Â Numerical linear algebra
https://www.yumpu.com/en/document/view/41276350
Thank you Charles.
Question: Is there a way to do this calculation in reverse?
Given the Cholesky Matrix [L], how can I determine the initial matrix [A] ?
If you have L then A = LL’ where L’ is the transpose of L.
Charles
hi sir, if A=[2 1 0; -1 2 -1; 0 -1 2] it is non-symmetric but at the same time x’Ax>0. so should we use Cholesky decomposition for it? can we use (A+A’)/2 to make it symmetric but then it is not the decomposition of A.
Thanks in advance.
If the matrix is positive definite, you can do a Cholesky decomposition.
In fact, I just checked and you can use the Real Statistics CHOL function to find this decomposition.
Charles
Charles, When I use the CHOL() function it returns just one number. How can I solve this?
Tomas,
CHOL is an array function and so you need to highlight the range of the output and press Ctrl-Shft-Enter instead of just Enter. See the following webpage for details:
Array Functions and Formulas
Charles
Charles I downloaded your Real Statistics Resource Pack, but I can’t use the CHOL() function, it gives me a #VALUE! error.
I used the function =ver() and I’ve got version 4.1.1 and excell 2007
thanks for the add in btw
Miguel,
I just tried to use the CHOL(R1) function on the data on the referenced webpage and it worked fine. I assume that you didn’t type in CHOL(), but also included a range inside the parentheses.
If you send me an Excel file with your data I will try to figure out what has gone wrong. The email address is shown on the Contact Us webpage.
Charles
Just sent it
thanks in advance Charles, you’re a great guy!
Miguel,
The matrix is not positive definite and so it does not have a Cholesky decomposition. Since one row is repeated probably this is not the matrix you want to decompose.
Charles
Thank you very much Charles!
didn’t see that problem before, just fixed it and the function works very well!
have a good one
When I use the CHOL() function the cell reports #NAME?. I have pressed both ENTER and CTRL+SHIFT+ENTER to execute. Thoughts?
James,
The CHOL function was introduced in release 2.13 back in May, 2014. As long as you have a release that was downloaded since May the CHOL function should be there.
What version of Excel are you using and what is the release number of the Real Statistics Resource Pack that you are using? You can get the release number by entering =VER() in any cell. Once I have this information I will try to figure out why you are getting a #NAME? error.
Charles