Cholesky decomposition

Cholesky decomposition

In linear algebra, the Cholesky decomposition or Cholesky triangle is a decomposition of a Hermitian, positive-definite matrix into the product of a lower triangular matrix and its conjugate transpose. It was discovered by André-Louis Cholesky for real matrices. When it is applicable, the Cholesky decomposition is roughly twice as efficient as the LU decomposition for solving systems of linear equations.[1] In a loose, metaphorical sense, this can be thought of as the matrix analogue of taking the square root of a number.

Contents

Statement

If A has real entries and is symmetric (or more generally, is Hermitian) and positive definite, then A can be decomposed as

\mathbf{A} = \mathbf{L} \mathbf{L}^{*},

where L is a lower triangular matrix with strictly positive diagonal entries, and L* denotes the conjugate transpose of L. This is the Cholesky decomposition.

The Cholesky decomposition is unique: given a Hermitian, positive-definite matrix A, there is only one lower triangular matrix L with strictly positive diagonal entries such that A = LL*. The converse holds trivially: if A can be written as LL* for some invertible L, lower triangular or otherwise, then A is Hermitian and positive definite.

The requirement that L have strictly positive diagonal entries can be dropped to extend the factorization to the positive-semidefinite case. The statement then reads: a square matrix A has a Cholesky decomposition if and only if A is Hermitian and positive semi-definite. Cholesky factorizations for positive-semidefinite matrices are not unique in general.

In the special case that A is a symmetric positive-definite matrix with real entries, L has real entries as well.

Applications

The Cholesky decomposition is mainly used for the numerical solution of linear equations Ax = b. If A is symmetric and positive definite, then we can solve Ax = b by first computing the Cholesky decomposition A = LLT, then solving Ly = b for y, and finally solving LTx = y for x.

Linear least squares

Systems of the form Ax = b with A symmetric and positive definite arise quite often in applications. For instance, the normal equations in linear least squares problems are of this form. It may also happen that matrix A comes from an energy functional which must be positive from physical considerations; this happens frequently in the numerical solution of partial differential equations.

Non-linear optimization

Non-linear multi-variate functions may be minimized over their parameters using variants of Newton's method called quasi-Newton methods. At each iteration, the search takes a step s defined by solving Hs = -g for s, where s is the step, g is the gradient vector of the function's partial first derivatives with respect to the parameters, and H is an approximation to the Hessian matrix of partial second derivatives formed by repeated rank 1 updates at each iteration. Two well-known update formulae are called Davidon-Fletcher-Powell (DFP) and Broydon-Fletcher-Goldfarb-Shanno (BFGS). Loss of the positive-definite condition through round-off error is avoided if rather than updating an approximation to the inverse of the Hessian, one updates the Cholesky decomposition of an approximation of the Hessian matrix itself.[citation needed]

Monte Carlo simulation

The Cholesky decomposition is commonly used in the Monte Carlo method for simulating systems with multiple correlated variables: The covariance matrix is decomposed, to give the lower-triangular L. Applying this to a vector of uncorrelated samples, u, produces a sample vector Lu with the covariance properties of the system being modeled.[citation needed]

Kalman filters

Unscented Kalman filters commonly use the Cholesky decomposition to choose a set of so-called sigma points. The Kalman filter tracks the average state of a system as a vector x of length N and covariance as an N-by-N matrix P. The matrix P is always positive semi-definite, and can be decomposed into LLT. The columns of L can be added and subtracted from the mean x to form a set of 2N vectors called sigma points. These sigma points completely capture the mean and covariance of the system state.

Computing the Cholesky decomposition

There are various methods for calculating the Cholesky decomposition. The computational complexity of commonly used algorithms is O(n3) in general.[citation needed] The algorithms described below all involve about n3/3 FLOPs, where n is the size of the matrix A. Hence, they are half the cost of the LU decomposition, which uses 2n3/3 FLOPs (see Trefethen and Bau 1997).

Which of the algorithms below is faster depends on the details of the implementation. Generally, the first algorithm will be slightly slower because it accesses the data in a more irregular manner.

The Cholesky algorithm

The Cholesky algorithm, used to calculate the decomposition matrix L, is a modified version of Gaussian elimination.

The recursive algorithm starts with i := 1 and

\mathbf{A}^{(1)} := \mathbf{A}.

At step i, the matrix A(i) has the following form:

\mathbf{A}^{(i)}
=
\begin{pmatrix}
\mathbf{I}_{i-1} & 0              & 0 \\
0                & a_{i,i}        & \mathbf{b}_{i}^{*} \\
0                & \mathbf{b}_{i} & \mathbf{B}^{(i)}
\end{pmatrix},

where Ii−1 denotes the identity matrix of dimension i − 1.

If we now define the matrix Li by

\mathbf{L}_{i}
:=
\begin{pmatrix}
\mathbf{I}_{i-1} & 0                                  & 0 \\
0                & \sqrt{a_{i,i}}           & 0 \\
0                & \frac{1}{\sqrt{a_{i,i}}} \mathbf{b}_{i} & \mathbf{I}_{n-i}
\end{pmatrix},

then we can write A(i) as


\mathbf{A}^{(i)} = \mathbf{L}_{i} \mathbf{A}^{(i+1)} \mathbf{L}_{i}^{*}

where


\mathbf{A}^{(i+1)}
=
\begin{pmatrix}
\mathbf{I}_{i-1} & 0 & 0 \\
0                & 1 & 0 \\
0                & 0 & \mathbf{B}^{(i)} - \frac{1}{a_{i,i}} \mathbf{b}_{i} \mathbf{b}_{i}^{*}
\end{pmatrix}.

Note that bi bi* is an outer product, therefore this algorithm is called the outer product version in (Golub & Van Loan).

We repeat this for i from 1 to n. After n steps, we get A(n+1) = I. Hence, the lower triangular matrix L we are looking for is calculated as

\mathbf{L} := \mathbf{L}_{1} \mathbf{L}_{2} \dots \mathbf{L}_{n}.

The Cholesky–Banachiewicz and Cholesky–Crout algorithms

If we write out the equation A = LL*,


{\mathbf{A=LL^T}} =
\begin{pmatrix}   L_{11} & 0 & 0 \\
   L_{21} & L_{22} & 0 \\
   L_{31} & L_{32} & L_{33}\\
\end{pmatrix}
\begin{pmatrix}   L_{11} & L_{21} & L_{31} \\
   0 & L_{22} & L_{32} \\
   0 & 0 & L_{33}
\end{pmatrix}
=
\begin{pmatrix}   L_{11}^2 &   &(\text{symmetric})   \\
   L_{21}L_{11} & L_{21}^2 + L_{22}^2& \\
   L_{31}L_{11} & L_{31}L_{21}+L_{32}L_{22} & L_{31}^2 + L_{32}^2+L_{33}^2
\end{pmatrix}

we obtain the following formula for the entries of L:

 L_{j,j} = \sqrt{ A_{j,j} - \sum_{k=1}^{j-1} L_{j,k}^2 }.
 L_{i,j} = \frac{1}{L_{j,j}} \left( A_{i,j} - \sum_{k=1}^{j-1} L_{i,k} L_{j,k} \right), \qquad\text{for } i>j.

The expression under the square root is always positive if A is real and positive-definite.

For complex Hermitian matrix, the following formula applies:

 L_{j,j} = \sqrt{ A_{j,j} - \sum_{k=1}^{j-1} L_{j,k}L_{j,k}^* }.
 L_{i,j} = \frac{1}{L_{j,j}} \left( A_{i,j} - \sum_{k=1}^{j-1} L_{i,k} L_{j,k}^* \right), \qquad\text{for } i>j.

So we can compute the (i, j) entry if we know the entries to the left and above. The computation is usually arranged in either of the following orders.

  • The Cholesky–Banachiewicz algorithm starts from the upper left corner of the matrix L and proceeds to calculate the matrix row by row.
  • The Cholesky–Crout algorithm starts from the upper left corner of the matrix L and proceeds to calculate the matrix column by column.

Stability of the computation

Suppose that we want to solve a well-conditioned system of linear equations. If the LU decomposition is used, then the algorithm is unstable unless we use some sort of pivoting strategy. In the latter case, the error depends on the so-called growth factor of the matrix, which is usually (but not always) small.

Now, suppose that the Cholesky decomposition is applicable. As mentioned above, the algorithm will be twice as fast. Furthermore, no pivoting is necessary and the error will always be small. Specifically, if we want to solve Ax = b, and y denotes the computed solution, then y solves the disturbed system (A + E)y = b where

 \|\mathbf{E}\|_2 \le c_n \varepsilon \|\mathbf{A}\|_2.

Here, || ||2 is the matrix 2-norm, cn is a small constant depending on n, and ε denotes the unit round-off.

There is one small problem with the Cholesky decomposition. Note that we must compute square roots in order to find the Cholesky decomposition. If the matrix is real symmetric and positive definite, then the numbers under the square roots are always positive in exact arithmetic. Unfortunately, the numbers can become negative because of round-off errors, in which case the algorithm cannot continue. However, this can only happen if the matrix is very ill-conditioned.

Avoiding taking square roots

An alternative form is the factorization[2]


{\mathbf{A=LDL}^\mathrm{T}} =
\begin{pmatrix}   1 & 0 & 0 \\
   L_{21} & 1 & 0 \\
   L_{31} & L_{32} & 1\\
\end{pmatrix}
\begin{pmatrix}   D_1 & 0 & 0 \\
   0 & D_2 & 0 \\
   0 & 0 & D_3\\
\end{pmatrix}
\begin{pmatrix}   1 & L_{21} & L_{31} \\
   0 & 1 & L_{32} \\
   0 & 0 & 1\\
\end{pmatrix}=
\begin{pmatrix}   D_1 &   &(\mathrm{symmetric})   \\
   L_{21}D_1 & L_{21}^2D_1 + D_2& \\
   L_{31}D_1 & L_{31}L_{21}D_{1}+L_{32}D_2 & L_{31}^2D_1 + L_{32}^2D_2+D_3.
\end{pmatrix}

This form eliminates the need to take square roots. When A is positive definite the elements of the diagonal matrix D are all positive. However this factorization may be used for most invertible symmetric matrices; an example of an invertible matrix whose decomposition is undefined is one where the first entry is zero.

If A is real, the following recursive relations apply for the entries of D and L:

 D_j = A_{jj} - \sum_{k=1}^{j-1} L_{jk}^2 D_k
 L_{ij} = \frac{1}{D_j} \left( A_{ij} - \sum_{k=1}^{j-1} L_{ik} L_{jk} D_k \right), \qquad\text{for } i>j.

For complex Hermitian matrix A, the following formula applies:

 D_{j} = A_{jj} - \sum_{k=1}^{j-1} L_{jk}L_{jk}^* D_k
 L_{ij} = \frac{1}{D_j} \left( A_{ij} - \sum_{k=1}^{j-1} L_{ik} L_{jk}^* D_k \right), \qquad\text{for } i>j.

The LDLT and LLT factorizations (note that L is different between the two) may be easily related:

\mathbf{A = L D L}^\mathrm{T} = \mathbf L \mathbf D^{\frac 1 2} \mathbf D^{\frac 1 2} \mathbf L^\mathrm{T} =
\mathbf L \mathbf D^{\frac 1 2} (\mathbf D^{\frac 1 2})^\mathrm{T} \mathbf L^\mathrm{T} =
\mathbf L \mathbf D^{\frac 1 2} (\mathbf L \mathbf D^{\frac 1 2})^\mathrm{T}

The last expression is the product of a lower triangular matrix and its transpose, as is the LLT factorization.

Proof for positive semi-definite matrices

The above algorithms show that every positive definite matrix A has a Cholesky decomposition. This result can be extended to the positive semi-definite case by a limiting argument. The argument is not fully constructive, i.e., it gives no explicit numerical algorithms for computing Cholesky factors.

If A is an n-by-n positive semi-definite matrix, then the sequence {Ak} = {A + (1/k)In} consists of positive definite matrices. (This is an immediate consequence of, for example, the spectral mapping theorem for the polynomial functional calculus.) Also,


\mathbf{A}_k \rightarrow \mathbf{A} \,

in operator norm. From the positive definite case, each Ak has Cholesky decomposition Ak = LkLk*. By property of the operator norm,

\| \mathbf{L}_k \|^2 = \|  \mathbf{L}_k \mathbf{L}_k ^* \| = \| \mathbf{A}_k \|.

So {Lk} is a bounded set in the Banach space of operators, therefore relatively compact (because the underlying vector space is finite dimensional). Consequently it has a convergent subsequence, also denoted by {Lk}, with limit L. It can be easily checked that this L has the desired properties, i.e. A = LL* and L is lower triangular with non-negative diagonal entries: for all x and y,


\langle \mathbf{A} x, y \rangle = \langle \lim \mathbf{A}_k x, y \rangle = \langle \lim \mathbf{L}_k \mathbf{L}_k^* x, y \rangle = \langle \mathbf{L} \mathbf{L}^*x, y \rangle.

Therefore A = LL*. Because the underlying vector space is finite dimensional, all topologies on the space of operators are equivalent. So Lk tends to L in norm means Lk tends to L entrywise. This in turn implies that, since each Lk is lower triangular with non-negative diagonal entries, L is also.

Generalization

The Cholesky factorization can be generalized to (not necessarily finite) matrices with operator entries. Let \{\mathcal{H}_n \} be a sequence of Hilbert spaces. Consider the operator matrix


\mathbf{A} =
\begin{bmatrix}
\mathbf{A}_{11}   & \mathbf{A}_{12}   & \mathbf{A}_{13} & \; \\
\mathbf{A}_{12}^* & \mathbf{A}_{22}   & \mathbf{A}_{23} & \; \\
\mathbf{A} _{13}^* & \mathbf{A}_{23}^* & \mathbf{A}_{33} & \; \\
\;       & \;       & \;     & \ddots
\end{bmatrix}

acting on the direct sum

\mathcal{H} = \oplus _n  \mathcal{H}_n,

where each

\mathbf{A}_{ij} : \mathcal{H}_j \rightarrow \mathcal{H} _i

is a bounded operator. If A is positive (semidefinite) in the sense that for all finite k and for any

h \in \oplus _{n = 1 }^k \mathcal{H}_k ,

we have \langle h, \mathbf{A} h\rangle \ge 0, then there exists a lower triangular operator matrix L such that A = LL*. One can also take the diagonal entries of L to be positive.

See also

Notes

  1. ^ Press, William H.; Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery (1992). Numerical Recipes in C: The Art of Scientific Computing (second edition). Cambridge University Press. pp. 994. ISBN 0-521-43108-5. http://www.nr.com/. 
  2. ^ Watkins, D. (1991). Fundamentals of Matrix Computations. New York: Wiley. p. 84. ISBN 0471614149. 

References

External links

Information


Computer code

Use of the matrix in simulation

Online calculators


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Symbolic Cholesky decomposition — In the mathematical subfield of numerical analysis the symbolic Cholesky decomposition is an algorithm used to determine the non zero pattern for the L factors of a symmetric sparse matrix when applying the Cholesky decomposition or… …   Wikipedia

  • Decomposition LU — Décomposition LU En algèbre linéaire, la décomposition LU est une méthode de décomposition d une matrice en une matrice triangulaire inférieure L (comme Low , bas) et une matrice triangulaire supérieure U (comme Up , haut). Cette décomposition… …   Wikipédia en Français

  • Décomposition lu — En algèbre linéaire, la décomposition LU est une méthode de décomposition d une matrice en une matrice triangulaire inférieure L (comme Low , bas) et une matrice triangulaire supérieure U (comme Up , haut). Cette décomposition est utilisée en… …   Wikipédia en Français

  • Decomposition QR — Décomposition QR En algèbre linéaire, la décomposition QR (appelée aussi, décomposition QU) d une matrice A est une décomposition de la forme A = QR où Q est une matrice orthogonale (QQT = I), et R une matrice triangulaire supérieure. Il existe… …   Wikipédia en Français

  • Decomposition method — is a generic term for solutions of various problems and design of algorithms in which the basic idea is to decompose the problem into question into subproblems. The term may specifically refer to one of the following. Decomposition method… …   Wikipedia

  • Décomposition de Cholesky (chimie quantique) — La décomposition de Cholesky (Cholesky Decomposition: CD) est une technique de chimie numérique pour réduire le nombre d intégrales calculées, et donc accélérer le calcul et préserver de la mémoire. Cette technique est basée sur la décomposition… …   Wikipédia en Français

  • Décomposition de Cholesky — Factorisation de Cholesky La factorisation de Cholesky, nommée d après André Louis Cholesky, consiste, pour une matrice symétrique semi définie positive A, à déterminer une matrice triangulaire inférieure L tel que : A=LLT. La matrice L est… …   Wikipédia en Français

  • Décomposition LU — En algèbre linéaire, la décomposition LU est une méthode de décomposition d une matrice comme produit d une matrice triangulaire inférieure L (comme Low , bas) et une matrice triangulaire supérieure U (comme Up , haut). Cette décomposition est… …   Wikipédia en Français

  • Décomposition QR — En algèbre linéaire, la décomposition QR (appelée aussi, décomposition QU) d une matrice A est une décomposition de la forme A = QR où Q est une matrice orthogonale (QQT = I), et R une matrice triangulaire supérieure. Ce type de décomposition est …   Wikipédia en Français

  • Décomposition polaire — Sommaire 1 Décomposition polaire d une matrice réelle 2 Décomposition polaire d une matrice complexe 3 Application 4 Références …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”