Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Cholesky decomposition

From Wikipedia, the free encyclopedia
Matrix decomposition method

Inlinear algebra, theCholesky decomposition orCholesky factorization (pronounced/ʃəˈlɛski/shə-LES-kee) is adecomposition of aHermitian,positive-definite matrix into the product of alower triangular matrix and itsconjugate transpose, which is useful for efficient numerical solutions, e.g.,Monte Carlo simulations. It was discovered byAndré-Louis Cholesky for real matrices, and posthumously published in 1924.[1]When it is applicable, the Cholesky decomposition is roughly twice as efficient as theLU decomposition for solvingsystems of linear equations.[2]

Statement

[edit]

The Cholesky decomposition of aHermitianpositive-definite matrixA is a decomposition of the form

A=LL,{\displaystyle \mathbf {A} =\mathbf {LL} ^{*},}

whereL is alower triangular matrix with real and positive diagonal entries, andL* denotes theconjugate transpose ofL. Every Hermitian positive-definite matrix (and thus also every real symmetric positive-definite matrix) has a Cholesky decomposition and the lower triangular matrix is unique if we impose the diagonal to be strictly positive.[3]

The converse holds trivially: ifA can be written asLL* for some invertibleL, lower triangular or otherwise, thenA is Hermitian and positive definite.

WhenA is a real matrix (hence symmetric positive-definite), the factorization may be writtenA=LLT,{\displaystyle \mathbf {A} =\mathbf {LL} ^{\mathsf {T}},}whereL is a real lower triangular matrix with positive diagonal entries.[4][5][6]

Positive semidefinite matrices

[edit]

If a Hermitian matrixA is only positive semidefinite, instead of positive definite, then it still has a decomposition of the formA =LL* where the diagonal entries ofL are allowed to be zero.[7]The decomposition need not be unique, for example:[0001]=LL,L=[00cosθsinθ],{\displaystyle {\begin{bmatrix}0&0\\0&1\end{bmatrix}}=\mathbf {L} \mathbf {L} ^{*},\quad \quad \mathbf {L} ={\begin{bmatrix}0&0\\\cos \theta &\sin \theta \end{bmatrix}},}for anyθ. However, if the rank ofA isr, then there is a unique lower triangularL with exactlyr positive diagonal elements andnr columns containing all zeroes.[8]

Alternatively, the decomposition can be made unique when a pivoting choice is fixed. Formally, ifA is ann ×n positive semidefinite matrix of rankr, then there is at least one permutation matrixP such thatP A PT has a unique decomposition of the formP A PT =L L* withL=[L10L20]{\textstyle \mathbf {L} ={\begin{bmatrix}\mathbf {L} _{1}&0\\\mathbf {L} _{2}&0\end{bmatrix}}},whereL1 is anr ×r lower triangular matrix with positive diagonal.[9]

LDL decomposition

[edit]

A closely related variant of the classical Cholesky decomposition is the LDL decomposition,

A=LDL,{\displaystyle \mathbf {A} =\mathbf {LDL} ^{*},}

whereL is alower unit triangular (unitriangular) matrix, andD is adiagonal matrix. That is, the diagonal elements ofL are required to be 1 at the cost of introducing an additional diagonal matrixD in the decomposition. The main advantage is that the LDL decomposition can be computed and used with essentially the same algorithms, but avoids extracting square roots.[10]

For this reason, the LDL decomposition is often called thesquare-root-free Cholesky decomposition. For real matrices, the factorization has the formA =LDLT and is often referred to asLDLT decomposition (orLDLT decomposition, orLDL′). It is reminiscent of theeigendecomposition of real symmetric matrices,A =QΛQT, but is quite different in practice becauseΛ andD are notsimilar matrices.

The LDL decomposition is related to the classical Cholesky decomposition of the formLL* as follows:

A=LDL=LD1/2(D1/2)L=LD1/2(LD1/2).{\displaystyle \mathbf {A} =\mathbf {LDL} ^{*}=\mathbf {L} \mathbf {D} ^{1/2}\left(\mathbf {D} ^{1/2}\right)^{*}\mathbf {L} ^{*}=\mathbf {L} \mathbf {D} ^{1/2}\left(\mathbf {L} \mathbf {D} ^{1/2}\right)^{*}.}

Conversely, given the classical Cholesky decompositionA=CC{\textstyle \mathbf {A} =\mathbf {C} \mathbf {C} ^{*}} of a positive definite matrix, ifS is a diagonal matrix that contains themain diagonal ofC{\textstyle \mathbf {C} }, thenA can be decomposed asLDL{\textstyle \mathbf {L} \mathbf {D} \mathbf {L} ^{*}} whereL=CS1{\displaystyle \mathbf {L} =\mathbf {C} \mathbf {S} ^{-1}} (this rescales each column to make diagonal elements 1),D=SS.{\displaystyle \mathbf {D} =\mathbf {S} \mathbf {S} ^{*}.}

IfA is positive definite then the diagonal elements ofD are all positive.For positive semidefiniteA, anLDL{\textstyle \mathbf {L} \mathbf {D} \mathbf {L} ^{*}} decomposition exists where the number of non-zero elements on the diagonalD is exactly the rank ofA.[11]Some indefinite matrices for which no Cholesky decomposition exists have an LDL decomposition with negative entries inD: it suffices that the firstn − 1leading principal minors ofA are non-singular.[12]

Example

[edit]

Here is the Cholesky decomposition of a symmetric real matrix:

(41216123743164398)=(200610853)(268015003).{\displaystyle {\begin{aligned}{\begin{pmatrix}4&12&-16\\12&37&-43\\-16&-43&98\\\end{pmatrix}}={\begin{pmatrix}2&0&0\\6&1&0\\-8&5&3\\\end{pmatrix}}{\begin{pmatrix}2&6&-8\\0&1&5\\0&0&3\\\end{pmatrix}}.\end{aligned}}}

And here is its LDLT decomposition:

(41216123743164398)=(100310451)(400010009)(134015001).{\displaystyle {\begin{aligned}{\begin{pmatrix}4&12&-16\\12&37&-43\\-16&-43&98\\\end{pmatrix}}&={\begin{pmatrix}1&0&0\\3&1&0\\-4&5&1\\\end{pmatrix}}{\begin{pmatrix}4&0&0\\0&1&0\\0&0&9\\\end{pmatrix}}{\begin{pmatrix}1&3&-4\\0&1&5\\0&0&1\\\end{pmatrix}}.\end{aligned}}}

Geometric interpretation

[edit]
See also:Whitening transformation
The ellipse is a linear image of the unit circle. The two vectorsv1,v2{\textstyle v_{1},v_{2}} are conjugate axes of the ellipse chosen such thatv1{\textstyle v_{1}} is parallel to the first axis andv2{\textstyle v_{2}} is within the plane spanned by the first two axes.

The Cholesky decomposition is equivalent to a particular choice ofconjugate axes of anellipsoid.[13] In detail, let the ellipsoid be defined asyTAy=1{\textstyle y^{T}Ay=1}, then by definition, a set of vectorsv1,...,vn{\textstyle v_{1},...,v_{n}} are conjugate axes of the ellipsoid iffviTAvj=δij{\textstyle v_{i}^{T}Av_{j}=\delta _{ij}}. Then, the ellipsoid is precisely{ixivi:xTx=1}=f(Sn){\displaystyle \left\{\sum _{i}x_{i}v_{i}:x^{T}x=1\right\}=f(\mathbb {S} ^{n})}wheref{\textstyle f} maps the basis vectoreivi{\textstyle e_{i}\mapsto v_{i}}, andSn{\textstyle \mathbb {S} ^{n}} is theunit sphere in n dimensions. That is, the ellipsoid is a linear image of the unit sphere.

Define the matrixV:=[v1|v2||vn]{\textstyle V:=[v_{1}|v_{2}|\cdots |v_{n}]}, thenviTAvj=δij{\textstyle v_{i}^{T}Av_{j}=\delta _{ij}} is equivalent toVTAV=I{\textstyle V^{T}AV=I}. Different choices of the conjugate axes correspond to different decompositions.

The Cholesky decomposition corresponds to choosingv1{\textstyle v_{1}} to be parallel to the first axis,v2{\textstyle v_{2}} to be within the plane spanned by the first two axes, and so on. This makesV{\textstyle V} an upper-triangular matrix. Then, there isA=LLT{\textstyle A=LL^{T}}, whereL=(V1)T{\textstyle L=(V^{-1})^{T}} is lower-triangular.

Similarly,principal component analysis corresponds to choosingv1,...,vn{\textstyle v_{1},...,v_{n}} to be perpendicular. Then, letλ=1/vi2{\textstyle \lambda =1/\|v_{i}\|^{2}} andΣ=diag(λ1,...,λn){\textstyle \Sigma =\mathrm {diag} (\lambda _{1},...,\lambda _{n})}, and there isV=UΣ1/2{\textstyle V=U\Sigma ^{-1/2}} whereU{\textstyle U} is anorthogonal matrix. This then yieldsA=UΣUT{\textstyle A=U\Sigma U^{T}}.

Applications

[edit]

Numerical solution of system of linear equations

[edit]

The Cholesky decomposition is mainly used for the numerical solution oflinear equationsAx=b{\textstyle \mathbf {Ax} =\mathbf {b} }. IfA is symmetric and positive definite, thenAx=b{\textstyle \mathbf {Ax} =\mathbf {b} } can be solved by first computing the Cholesky decompositionA=LL{\textstyle \mathbf {A} =\mathbf {LL} ^{\mathrm {*} }}, then solvingLy=b{\textstyle \mathbf {Ly} =\mathbf {b} } fory byforward substitution, and finally solvingLx=y{\textstyle \mathbf {L^{*}x} =\mathbf {y} } forx byback substitution.

An alternative way to eliminate taking square roots in theLL{\textstyle \mathbf {LL} ^{\mathrm {*} }} decomposition is to compute the LDL decompositionA=LDL{\textstyle \mathbf {A} =\mathbf {LDL} ^{\mathrm {*} }}, then solvingLy=b{\textstyle \mathbf {Ly} =\mathbf {b} } fory, and finally solvingDLx=y{\textstyle \mathbf {DL} ^{\mathrm {*} }\mathbf {x} =\mathbf {y} }.

For linear systems that can be put into symmetric form, the Cholesky decomposition (or its LDL variant) is the method of choice, for superior efficiency andnumerical stability. Compared to theLU decomposition, it is roughly twice as efficient.[2]

Linear least squares

[edit]

Inlinear least squares problem one seeks a solutionx of an over-determined systemAx =l, such that quadratic norm of the residual vectorAx-l is minimum. This may be accomplished by solving by Cholesky decompositionnormal equationsNx=ATl{\displaystyle \mathbf {Nx} =\mathbf {A} ^{\mathsf {T}}\mathbf {l} }, whereN=ATA{\displaystyle \mathbf {N} =\mathbf {A} ^{\mathsf {T}}\mathbf {A} } is symmetric positive definite. Symmetric equation matrixmay also come from an energy functional, which must be positive from physical considerations; this happens frequently in the numerical solution ofpartial differential equations.

Such method is economic and works well in many applications, however it fails for near singularN. This is best illustrated in pathological case of squareA{\displaystyle \mathbf {A} },where determinant ofN is square of that of the original systemAx =l.Then it is best to apply SVD or QR decomposition. Givens QR has the advantage that similarlyto normal equations there is no need to keep the whole matrixA as it ispossible to update Cholesky factor with consecutive rows ofA.

Non-linear optimization

[edit]

Non-linear least squares are a particular case of nonlinear optimization. Letf(x)=l{\textstyle \mathbf {f} (\mathbf {x} )=\mathbf {l} } be an over-determined system of equations with a non-linear functionf{\displaystyle \mathbf {f} } returning vector results. The aim is to minimize square norm of residualsv=f(x)l{\textstyle \mathbf {v} =\mathbf {f} (\mathbf {x} )-\mathbf {l} }. An approximateNewton's method solution is obtained by expandingf{\displaystyle \mathbf {f} } into curtailed Taylor seriesf(x0+δx)f(x0)+(f/x)δx{\displaystyle {\bf {f(x_{\rm {0}}+\delta x)\approx f(x_{\rm {0}})+(\partial f/\partial x)\delta x}}} yieldinglinear least squares problem forδx{\displaystyle {\bf {\delta x}}}

(f/x)δx=lf(x0)=v,minδx=v2.{\displaystyle {\bf {(\partial f/\partial x)\delta x=l-f(x_{\rm {0}})=v,\;\;\min _{\delta x}=\|v\|^{2}}}.}

Of course because of neglect of higher Taylor terms such solution is only approximate, if it ever exists. Now one could update expansion point toxn+1=xn+δx{\displaystyle {\bf {x_{\rm {n+1}}=x_{\rm {n}}+\delta x}}}and repeat the whole procedure, hoping that (i) iterations converge to a solutionand (ii) that the solution is the one needed. Unfortunately neither is guaranteed andmust be verified.

Non-linear least squares may be also applied to the linear least squares problem by settingx0=0{\displaystyle {\bf {x_{\rm {0}}=0}}} andf(x0)=Ax{\displaystyle {\bf {f(x_{\rm {0}})=Ax}}}. This may be useful if Cholesky decomposition yields an inaccurate inverseR1{\displaystyle {\bf {R^{\rm {-1}}}}} for the triangle matrix whereRTR=N{\displaystyle {\bf {R^{\rm {T}}R=N}}}, because of rounding errors. Such a procedure is called adifferential correction of the solution. As long as iterations converge, by virtue of theBanach fixed-point theorem they yield the solution with a precision that is only limited by the precision of the calculated residualsv=Axl{\displaystyle {\bf {v=Ax-l}}}. The precision is independent rounding errors inR1{\displaystyle {\bf {R^{\rm {-1}}}}}. PoorR1{\displaystyle {\bf {R^{\rm {-1}}}}} may restrict region of initialx0{\displaystyle {\bf {x_{\rm {0}}}}}yielding convergence or altogether preventing it. Usually convergence is slower e.g. linearso thatδxn+1=αδxn{\displaystyle {\bf {\|\delta x_{\rm {n+1}}\|\approx \|=\alpha \delta x_{\rm {n}}\|}}} where constantα<1{\displaystyle \alpha <1}. Such slow convergence may be sped byAitkenδ2{\displaystyle \delta ^{2}} method.If calculation ofR1{\displaystyle {\bf {R^{\rm {-1}}}}} is very costly, it is possible to use it from previous iterations as long as convergence is maintained. Such Cholesky procedure may work even for Hilbert matrices, notoriously difficult to invert.[14]

Non-linear multi-variate functions may be minimized over their parameters using variants ofNewton's method calledquasi-Newton methods. At iteration k, the search steps in a directionpk{\textstyle p_{k}} defined by solvingBkpk=gk{\textstyle B_{k}p_{k}=-g_{k}} forpk{\textstyle p_{k}}, wherepk{\textstyle p_{k}} is the step direction,gk{\textstyle g_{k}} is thegradient, andBk{\textstyle B_{k}} is an approximation to theHessian matrix formed by repeating rank-1 updates at each iteration. Two well-known update formulas are calledDavidon–Fletcher–Powell (DFP) andBroyden–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.[15]

Monte Carlo simulation

[edit]

The Cholesky decomposition is commonly used in theMonte Carlo method for simulating systems with multiple correlated variables. Thecovariance matrix is decomposed to give the lower-triangularL. Applying this to a vector of uncorrelated observations in a sampleu produces a sample vectorLu with the covariance properties of the system being modeled.[16]

The following simplified example shows the economy one gets from the Cholesky decomposition: suppose the goal is to generate two correlated normal variablesx1{\textstyle x_{1}} andx2{\textstyle x_{2}} with given correlation coefficientρ{\textstyle \rho }. To accomplish that, it is necessary to first generate two uncorrelated Gaussian random variablesz1{\textstyle z_{1}} andz2{\textstyle z_{2}} (for example, via aBox–Muller transform). Given the required correlation coefficientρ{\textstyle \rho }, the correlated normal variables can be obtained via the transformationsx1=z1{\textstyle x_{1}=z_{1}} andx2=ρz1+1ρ2z2{\textstyle x_{2}=\rho z_{1}+{\sqrt {1-\rho ^{2}}}z_{2}}.

Kalman filters

[edit]

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 vectorx of lengthN and covariance as anN ×N matrixP. The matrixP is always positive semi-definite and can be decomposed intoLLT. The columns ofL can be added and subtracted from the meanx to form a set of2N vectors calledsigma points. These sigma points completely capture the mean and covariance of the system state.

Matrix inversion

[edit]

The explicitinverse of a Hermitian matrix can be computed by Cholesky decomposition, in a manner similar to solving linear systems, usingn3{\textstyle n^{3}} operations (12n3{\textstyle {\tfrac {1}{2}}n^{3}} multiplications).[10] The entire inversion can even be efficiently performed in-place.

A non-Hermitian matrixB can also be inverted using the following identity, whereBB* will always be Hermitian:


B1=B(BB)1.{\displaystyle \mathbf {B} ^{-1}=\mathbf {B} ^{*}(\mathbf {BB} ^{*})^{-1}.}


Data Imputation

[edit]

Cholesky decomposition can also be used to impute data. Variations of the expectation maximization algorithm among other data imputation algorithms, make use of Cholesky decomposition.[17]

Computation

[edit]

There are various methods for calculating the Cholesky decomposition. The computational complexity of commonly used algorithms isO(n3) in general.[citation needed] The algorithms described below all involve about(1/3)n3FLOPs (n3/6 multiplications and the same number of additions) for real flavors and(4/3)n3FLOPs for complex flavors,[18] wheren is the size of the matrixA. Hence, they have half the cost of theLU decomposition, which uses2n3/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 less regular manner.The Cholesky decomposition was shown to be numerically stable without need for pivoting.[19]

The Cholesky algorithm

[edit]

TheCholesky algorithm, used to calculate the decomposition matrixL, is a modified version ofGaussian elimination.

The recursive algorithm starts withi := 1 and

A(1) :=A.

At stepi, the matrixA(i) has the following form:A(i)=(Ii1000ai,ibi0biB(i)),{\displaystyle \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}},}whereIi−1 denotes theidentity matrix of dimensioni − 1.

If the matrixLi is defined byLi:=(Ii1000ai,i001ai,ibiIni),{\displaystyle \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}},}(note thatai,i > 0 sinceA(i) is positive definite),thenA(i) can be written asA(i)=LiA(i+1)Li{\displaystyle \mathbf {A} ^{(i)}=\mathbf {L} _{i}\mathbf {A} ^{(i+1)}\mathbf {L} _{i}^{*}}whereA(i+1)=(Ii10001000B(i)1ai,ibibi).{\displaystyle \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 thatbibi* is anouter product, therefore this algorithm is called theouter-product version in (Golub & Van Loan).

This is repeated fori from 1 ton. Aftern steps,A(n+1) =I is obtained, and hence, the lower triangular matrixL sought for is calculated as

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

The Cholesky–Banachiewicz and Cholesky–Crout algorithms

[edit]
Access pattern (white) and writing pattern (yellow) for the in-place Cholesky—Banachiewicz algorithm on a 5×5 matrix

If the equationA=LLT=(L1100L21L220L31L32L33)(L11L21L310L22L3200L33)=(L112(symmetric)L21L11L212+L222L31L11L31L21+L32L22L312+L322+L332),{\displaystyle {\begin{aligned}\mathbf {A} =\mathbf {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}}\\[8pt]&={\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}},\end{aligned}}}

is written out, the following is obtained:

L=(A1100A21/L11A22L2120A31/L11(A32L31L21)/L22A33L312L322){\displaystyle {\begin{aligned}\mathbf {L} ={\begin{pmatrix}{\sqrt {A_{11}}}&0&0\\A_{21}/L_{11}&{\sqrt {A_{22}-L_{21}^{2}}}&0\\A_{31}/L_{11}&\left(A_{32}-L_{31}L_{21}\right)/L_{22}&{\sqrt {A_{33}-L_{31}^{2}-L_{32}^{2}}}\end{pmatrix}}\end{aligned}}}

and therefore the following formulas for the entries ofL:

Lj,j=(±)Aj,jk=1j1Lj,k2,{\displaystyle L_{j,j}=(\pm ){\sqrt {A_{j,j}-\sum _{k=1}^{j-1}L_{j,k}^{2}}},}Li,j=1Lj,j(Ai,jk=1j1Li,kLj,k)for i>j.{\displaystyle L_{i,j}={\frac {1}{L_{j,j}}}\left(A_{i,j}-\sum _{k=1}^{j-1}L_{i,k}L_{j,k}\right)\quad {\text{for }}i>j.}

For complex and real matrices, inconsequential arbitrary sign changes of diagonal and associated off-diagonal elements are allowed. The expression under thesquare root is always positive ifA is real and positive-definite.

For complex Hermitian matrix, the following formula applies:

Lj,j=Aj,jk=1j1Lj,kLj,k,{\displaystyle L_{j,j}={\sqrt {A_{j,j}-\sum _{k=1}^{j-1}L_{j,k}^{*}L_{j,k}}},}Li,j=1Lj,j(Ai,jk=1j1Lj,kLi,k)for i>j.{\displaystyle L_{i,j}={\frac {1}{L_{j,j}}}\left(A_{i,j}-\sum _{k=1}^{j-1}L_{j,k}^{*}L_{i,k}\right)\quad {\text{for }}i>j.}

and it can be shown thatLj,j{\displaystyle L_{j,j}} is alwaysreal and positive ifA is positive-definite.[20]: 49

So it now is possible to compute the(i,j) entry if the entries to the left and above are known. The computation is usually arranged in either of the following orders:

  • TheCholesky–Banachiewicz algorithm starts from the upper left corner of the matrixL and proceeds to calculate the matrix row by row.
for(i=0;i<dimensionSize;i++){for(j=0;j<=i;j++){floatsum=0;for(k=0;k<j;k++)sum+=L[i][k]*L[j][k];if(i==j)L[i][j]=sqrt(A[i][i]-sum);elseL[i][j]=(1.0/L[j][j]*(A[i][j]-sum));}}

The above algorithm can be succinctly expressed as combining adot product andmatrix multiplication in vectorized programming languages such asFortran as the following,

doi=1,size(A,1)L(i,i)=sqrt(A(i,i)-dot_product(L(i,1:i-1),L(i,1:i-1)))L(i+1:,i)=(A(i+1:,i)-matmul(conjg(L(i,1:i-1)),L(i+1:,1:i-1)))/L(i,i)end do

whereconjg refers to complex conjugate of the elements.

  • TheCholesky–Crout algorithm starts from the upper left corner of the matrixL and proceeds to calculate the matrix column by column.
    for(j=0;j<dimensionSize;j++){floatsum=0;for(k=0;k<j;k++){sum+=L[j][k]*L[j][k];}L[j][j]=sqrt(A[j][j]-sum);for(i=j+1;i<dimensionSize;i++){sum=0;for(k=0;k<j;k++){sum+=L[i][k]*L[j][k];}L[i][j]=(1.0/L[j][j]*(A[i][j]-sum));}}

The above algorithm can be succinctly expressed as combining adot product andmatrix multiplication in vectorized programming languages such asFortran as the following,

doi=1,size(A,1)L(i,i)=sqrt(A(i,i)-dot_product(L(1:i-1,i),L(1:i-1,i)))L(i,i+1:)=(A(i,i+1:)-matmul(conjg(L(1:i-1,i)),L(1:i-1,i+1:)))/L(i,i)end do

whereconjg refers to complex conjugate of the elements.

Either pattern of access allows the entire computation to be performed in-place if desired.

Stability of the computation

[edit]

Suppose that there is a desire to solve awell-conditioned system of linear equations. If the LU decomposition is used, then the algorithm is unstable unless some sort of pivoting strategy is used. 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, nopivoting is necessary, and the error will always be small. Specifically, ifAx =b, andy denotes the computed solution, theny solves the perturbed system (A +E)y =b, whereE2cnεA2.{\displaystyle \|\mathbf {E} \|_{2}\leq c_{n}\varepsilon \|\mathbf {A} \|_{2}.}Here ||·||2 is thematrix 2-norm,cn is a small constant depending onn, andε denotes theunit round-off.

One concern with the Cholesky decomposition to be aware of is the use of square roots. If the matrix being factorized is positive definite as required, the numbers under the square roots are always positivein exact arithmetic. Unfortunately, the numbers can become negative because ofround-off errors, in which case the algorithm cannot continue. However, this can only happen if the matrix is very ill-conditioned. One way to address this is to add a diagonal correction matrix to the matrix being decomposed in an attempt to promote the positive-definiteness.[21] While this might lessen the accuracy of the decomposition, it can be very favorable for other reasons; for example, when performingNewton's method in optimization, adding a diagonal matrix can improve stability when far from the optimum.

LDL decomposition

[edit]

An alternative form, eliminating the need to take square roots whenA is symmetric, is the symmetric indefinite factorization[20]: 84A=LDLT=(100L2110L31L321)(D1000D2000D3)(1L21L3101L32001)=(D1(symmetric)L21D1L212D1+D2L31D1L31L21D1+L32D2L312D1+L322D2+D3.).{\displaystyle {\begin{aligned}\mathbf {A} =\mathbf {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}}\\[8pt]&={\begin{pmatrix}D_{1}&&(\mathrm {symmetric} )\\L_{21}D_{1}&L_{21}^{2}D_{1}+D_{2}&\\L_{31}D_{1}&L_{31}L_{21}D_{1}+L_{32}D_{2}&L_{31}^{2}D_{1}+L_{32}^{2}D_{2}+D_{3}.\end{pmatrix}}.\end{aligned}}}

The following recursive relations apply for the entries ofD andL:Dj=Ajjk=1j1Ljk2Dk,{\displaystyle D_{j}=A_{jj}-\sum _{k=1}^{j-1}L_{jk}^{2}D_{k},}Lij=1Dj(Aijk=1j1LikLjkDk)for i>j.{\displaystyle L_{ij}={\frac {1}{D_{j}}}\left(A_{ij}-\sum _{k=1}^{j-1}L_{ik}L_{jk}D_{k}\right)\quad {\text{for }}i>j.}

This works as long as the generated diagonal elements inD stay non-zero. The decomposition is then unique.D andL are real ifA is real.

For complex Hermitian matrixA, the following formula applies:

Dj=Ajjk=1j1LjkLjkDk,{\displaystyle D_{j}=A_{jj}-\sum _{k=1}^{j-1}L_{jk}L_{jk}^{*}D_{k},}Lij=1Dj(Aijk=1j1LikLjkDk)for i>j.{\displaystyle L_{ij}={\frac {1}{D_{j}}}\left(A_{ij}-\sum _{k=1}^{j-1}L_{ik}L_{jk}^{*}D_{k}\right)\quad {\text{for }}i>j.}

Again, the pattern of access allows the entire computation to be performed in-place if desired.

Block variant

[edit]

When used on indefinite matrices, theLDL* factorization is known to be unstable without careful pivoting;[22] specifically, the elements of the factorization can grow arbitrarily. A possible improvement is to perform the factorization on block sub-matrices, commonly 2 × 2:[23]

A=LDLT=(I00L21I0L31L32I)(D1000D2000D3)(IL21TL31T0IL32T00I)=(D1(symmetric)L21D1L21D1L21T+D2L31D1L31D1L21T+L32D2L31D1L31T+L32D2L32T+D3),{\displaystyle {\begin{aligned}\mathbf {A} =\mathbf {LDL} ^{\mathrm {T} }&={\begin{pmatrix}\mathbf {I} &0&0\\\mathbf {L} _{21}&\mathbf {I} &0\\\mathbf {L} _{31}&\mathbf {L} _{32}&\mathbf {I} \\\end{pmatrix}}{\begin{pmatrix}\mathbf {D} _{1}&0&0\\0&\mathbf {D} _{2}&0\\0&0&\mathbf {D} _{3}\\\end{pmatrix}}{\begin{pmatrix}\mathbf {I} &\mathbf {L} _{21}^{\mathrm {T} }&\mathbf {L} _{31}^{\mathrm {T} }\\0&\mathbf {I} &\mathbf {L} _{32}^{\mathrm {T} }\\0&0&\mathbf {I} \\\end{pmatrix}}\\[8pt]&={\begin{pmatrix}\mathbf {D} _{1}&&(\mathrm {symmetric} )\\\mathbf {L} _{21}\mathbf {D} _{1}&\mathbf {L} _{21}\mathbf {D} _{1}\mathbf {L} _{21}^{\mathrm {T} }+\mathbf {D} _{2}&\\\mathbf {L} _{31}\mathbf {D} _{1}&\mathbf {L} _{31}\mathbf {D} _{1}\mathbf {L} _{21}^{\mathrm {T} }+\mathbf {L} _{32}\mathbf {D} _{2}&\mathbf {L} _{31}\mathbf {D} _{1}\mathbf {L} _{31}^{\mathrm {T} }+\mathbf {L} _{32}\mathbf {D} _{2}\mathbf {L} _{32}^{\mathrm {T} }+\mathbf {D} _{3}\end{pmatrix}},\end{aligned}}}

where every element in the matrices above is a square submatrix. From this, these analogous recursive relations follow:

Dj=Ajjk=1j1LjkDkLjkT,{\displaystyle \mathbf {D} _{j}=\mathbf {A} _{jj}-\sum _{k=1}^{j-1}\mathbf {L} _{jk}\mathbf {D} _{k}\mathbf {L} _{jk}^{\mathrm {T} },}Lij=(Aijk=1j1LikDkLjkT)Dj1.{\displaystyle \mathbf {L} _{ij}=\left(\mathbf {A} _{ij}-\sum _{k=1}^{j-1}\mathbf {L} _{ik}\mathbf {D} _{k}\mathbf {L} _{jk}^{\mathrm {T} }\right)\mathbf {D} _{j}^{-1}.}

This involves matrix products and explicit inversion, thus limiting the practical block size.

Updating the decomposition

[edit]

A task that often arises in practice is that one needs to update a Cholesky decomposition. In more details, one has already computed the Cholesky decompositionA=LL{\textstyle \mathbf {A} =\mathbf {L} \mathbf {L} ^{*}} of some matrixA{\textstyle \mathbf {A} }, then one changes the matrixA{\textstyle \mathbf {A} } in some way into another matrix, sayA~{\textstyle {\tilde {\mathbf {A} }}}, and one wants to compute the Cholesky decomposition of the updated matrix:A~=L~L~{\textstyle {\tilde {\mathbf {A} }}={\tilde {\mathbf {L} }}{\tilde {\mathbf {L} }}^{*}}. The question is now whether one can use the Cholesky decomposition ofA{\textstyle \mathbf {A} } that was computed before to compute the Cholesky decomposition ofA~{\textstyle {\tilde {\mathbf {A} }}}.

Rank-one update

[edit]

The specific case, where the updated matrixA~{\textstyle {\tilde {\mathbf {A} }}} is related to the matrixA{\textstyle \mathbf {A} } byA~=A+cxx{\textstyle {\tilde {\mathbf {A} }}=\mathbf {A} +c\,\mathbf {x} \mathbf {x} ^{*}}, is known as arank-one update. Here the constantc{\displaystyle c} is allowed to be negative, but must always be such that the new matrixA~{\textstyle {\tilde {\mathbf {A} }}} is still positive definite.

Here is a function[24] written inMatlab syntax that realizes a rank-one update:

functionL=updateChol(L,x,c)% given the L*L' Cholesky decomposition of a matrix, compute the updated% factor L so that we have the Cholesky decomposition of L*L'+c*x*x';n=length(x);fork=1:n-1l=L(:,k);% old value of k-th columnlk=l(k);xk=x(k);dk=sqrt(lk^2+c*xk^2);% new diagonal valueL(:,k)=(lk/dk)*l+(c*xk/dk)*x;% new column valuex=x-l*(xk/lk);c=c*(lk/dk)^2;endL(n,n)=sqrt(L(n,n)^2+c*x(n)^2);end

Arank-n update is one where for a matrixM{\textstyle \mathbf {M} } one updates the decomposition such thatA~=A+MM{\textstyle {\tilde {\mathbf {A} }}=\mathbf {A} +\mathbf {M} \mathbf {M} ^{*}}. This can be achieved by successively performing rank-one updates for each of the columns ofM{\textstyle \mathbf {M} }.

Adding and removing rows and columns

[edit]

If a symmetric and positive definite matrixA{\textstyle \mathbf {A} } is represented in block form as

A=(A11A13A13TA33){\displaystyle \mathbf {A} ={\begin{pmatrix}\mathbf {A} _{11}&\mathbf {A} _{13}\\\mathbf {A} _{13}^{\mathrm {T} }&\mathbf {A} _{33}\\\end{pmatrix}}}

and its upper Cholesky factorL=(L11L130L33),{\displaystyle \mathbf {L} ={\begin{pmatrix}\mathbf {L} _{11}&\mathbf {L} _{13}\\0&\mathbf {L} _{33}\\\end{pmatrix}},}

then for a new matrixA~{\textstyle {\tilde {\mathbf {A} }}}, which is the same asA{\textstyle \mathbf {A} } but with the insertion of new rows and columns,A~=(A11A12A13A12TA22A23A13TA23TA33){\displaystyle {\begin{aligned}{\tilde {\mathbf {A} }}&={\begin{pmatrix}\mathbf {A} _{11}&\mathbf {A} _{12}&\mathbf {A} _{13}\\\mathbf {A} _{12}^{\mathrm {T} }&\mathbf {A} _{22}&\mathbf {A} _{23}\\\mathbf {A} _{13}^{\mathrm {T} }&\mathbf {A} _{23}^{\mathrm {T} }&\mathbf {A} _{33}\\\end{pmatrix}}\end{aligned}}}

Now there is an interest in finding the Cholesky factorization ofA~{\textstyle {\tilde {\mathbf {A} }}}, which can be calledS~{\textstyle {\tilde {\mathbf {S} }}}, without directly computing the entire decomposition.S~=(S11S12S130S22S2300S33).{\displaystyle {\begin{aligned}{\tilde {\mathbf {S} }}&={\begin{pmatrix}\mathbf {S} _{11}&\mathbf {S} _{12}&\mathbf {S} _{13}\\0&\mathbf {S} _{22}&\mathbf {S} _{23}\\0&0&\mathbf {S} _{33}\\\end{pmatrix}}.\end{aligned}}}

WritingAb{\textstyle \mathbf {A} \setminus \mathbf {b} } for the solution ofAx=b{\textstyle \mathbf {A} \mathbf {x} =\mathbf {b} }, which can be found easily for triangular matrices, andchol(M){\textstyle {\text{chol}}(\mathbf {M} )} for the Cholesky decomposition ofM{\textstyle \mathbf {M} }, the following relations can be found:S11=L11,S12=L11TA12,S13=L13,S22=chol(A22S12TS12),S23=S22T(A23S12TS13),S33=chol(L33TL33S23TS23).{\displaystyle {\begin{aligned}\mathbf {S} _{11}&=\mathbf {L} _{11},\\\mathbf {S} _{12}&=\mathbf {L} _{11}^{\mathrm {T} }\setminus \mathbf {A} _{12},\\\mathbf {S} _{13}&=\mathbf {L} _{13},\\\mathbf {S} _{22}&=\mathrm {chol} \left(\mathbf {A} _{22}-\mathbf {S} _{12}^{\mathrm {T} }\mathbf {S} _{12}\right),\\\mathbf {S} _{23}&=\mathbf {S} _{22}^{\mathrm {T} }\setminus \left(\mathbf {A} _{23}-\mathbf {S} _{12}^{\mathrm {T} }\mathbf {S} _{13}\right),\\\mathbf {S} _{33}&=\mathrm {chol} \left(\mathbf {L} _{33}^{\mathrm {T} }\mathbf {L} _{33}-\mathbf {S} _{23}^{\mathrm {T} }\mathbf {S} _{23}\right).\end{aligned}}}

These formulas may be used to determine the Cholesky factor after the insertion of rows or columns in any position, if the row and column dimensions are appropriately set (including to zero). The inverse problem,

A~=(A11A12A13A12TA22A23A13TA23TA33){\displaystyle {\begin{aligned}{\tilde {\mathbf {A} }}&={\begin{pmatrix}\mathbf {A} _{11}&\mathbf {A} _{12}&\mathbf {A} _{13}\\\mathbf {A} _{12}^{\mathrm {T} }&\mathbf {A} _{22}&\mathbf {A} _{23}\\\mathbf {A} _{13}^{\mathrm {T} }&\mathbf {A} _{23}^{\mathrm {T} }&\mathbf {A} _{33}\\\end{pmatrix}}\end{aligned}}}with known Cholesky decompositionS~=(S11S12S130S22S2300S33){\displaystyle {\begin{aligned}{\tilde {\mathbf {S} }}&={\begin{pmatrix}\mathbf {S} _{11}&\mathbf {S} _{12}&\mathbf {S} _{13}\\0&\mathbf {S} _{22}&\mathbf {S} _{23}\\0&0&\mathbf {S} _{33}\\\end{pmatrix}}\end{aligned}}}

and the desire to determine the Cholesky factorL=(L11L130L33){\displaystyle {\begin{aligned}\mathbf {L} &={\begin{pmatrix}\mathbf {L} _{11}&\mathbf {L} _{13}\\0&\mathbf {L} _{33}\\\end{pmatrix}}\end{aligned}}}

of the matrixA{\textstyle \mathbf {A} } with rows and columns removed,A=(A11A13A13TA33),{\displaystyle {\begin{aligned}\mathbf {A} &={\begin{pmatrix}\mathbf {A} _{11}&\mathbf {A} _{13}\\\mathbf {A} _{13}^{\mathrm {T} }&\mathbf {A} _{33}\\\end{pmatrix}},\end{aligned}}}

yields the following rules:L11=S11,L13=S13,L33=chol(S33TS33+S23TS23).{\displaystyle {\begin{aligned}\mathbf {L} _{11}&=\mathbf {S} _{11},\\\mathbf {L} _{13}&=\mathbf {S} _{13},\\\mathbf {L} _{33}&=\mathrm {chol} \left(\mathbf {S} _{33}^{\mathrm {T} }\mathbf {S} _{33}+\mathbf {S} _{23}^{\mathrm {T} }\mathbf {S} _{23}\right).\end{aligned}}}

Notice that the equations above that involve finding the Cholesky decomposition of a new matrix are all of the formA~=A+cxx{\textstyle {\tilde {\mathbf {A} }}=\mathbf {A} +c\,\mathbf {x} \mathbf {x} ^{*}} for some constantc=±1{\displaystyle c=\pm 1}, which allows them to be efficiently calculated using procedure detailed in the previous section.[24]

Proof for positive semi-definite matrices

[edit]

Proof by limiting argument

[edit]

The above algorithms show that every positive definite matrixA{\textstyle \mathbf {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.

IfA{\textstyle \mathbf {A} } is ann×n{\textstyle n\times n}positive semi-definite matrix, then the sequence(Ak)k:=(A+1kIn)k{\textstyle \left(\mathbf {A} _{k}\right)_{k}:=\left(\mathbf {A} +{\frac {1}{k}}\mathbf {I} _{n}\right)_{k}} consists ofpositive definite matrices. (This is an immediate consequence of, for example, the spectral mapping theorem for the polynomial functional calculus.) Also,AkAfork{\displaystyle \mathbf {A} _{k}\rightarrow \mathbf {A} \quad {\text{for}}\quad k\rightarrow \infty } inoperator norm. From the positive definite case, eachAk{\textstyle \mathbf {A} _{k}} has Cholesky decompositionAk=LkLk{\textstyle \mathbf {A} _{k}=\mathbf {L} _{k}\mathbf {L} _{k}^{*}}. By property of the operator norm,

Lk2LkLk=Ak.{\displaystyle \|\mathbf {L} _{k}\|^{2}\leq \|\mathbf {L} _{k}\mathbf {L} _{k}^{*}\|=\|\mathbf {A} _{k}\|\,.}

The{\textstyle \leq } holds becauseMn(C){\textstyle M_{n}(\mathbb {C} )} equipped with the operator norm is a C* algebra. So(Lk)k{\textstyle \left(\mathbf {L} _{k}\right)_{k}} is a bounded set in theBanach space of operators, thereforerelatively compact (because the underlyingvector space is finite-dimensional). Consequently, it has a convergent subsequence, also denoted by(Lk)k{\textstyle \left(\mathbf {L} _{k}\right)_{k}}, with limitL{\textstyle \mathbf {L} }. It can be easily checked that thisL{\textstyle \mathbf {L} } has the desired properties, i.e.A=LL{\textstyle \mathbf {A} =\mathbf {L} \mathbf {L} ^{*}}, andL{\textstyle \mathbf {L} } is lower triangular with non-negative diagonal entries: for allx{\textstyle x} andy{\textstyle y},

Ax,y=limAkx,y=limLkLkx,y=LLx,y.{\displaystyle \langle \mathbf {A} x,y\rangle =\left\langle \lim \mathbf {A} _{k}x,y\right\rangle =\langle \lim \mathbf {L} _{k}\mathbf {L} _{k}^{*}x,y\rangle =\langle \mathbf {L} \mathbf {L} ^{*}x,y\rangle \,.}

Therefore,A=LL{\textstyle \mathbf {A} =\mathbf {L} \mathbf {L} ^{*}}. Because the underlying vector space is finite-dimensional, all topologies on the space of operators are equivalent. So(Lk)k{\textstyle \left(\mathbf {L} _{k}\right)_{k}} tends toL{\textstyle \mathbf {L} } in norm means(Lk)k{\textstyle \left(\mathbf {L} _{k}\right)_{k}} tends toL{\textstyle \mathbf {L} } entrywise. This in turn implies that, since eachLk{\textstyle \mathbf {L} _{k}} is lower triangular with non-negative diagonal entries,L{\textstyle \mathbf {L} } is also.

Proof by QR decomposition

[edit]

LetA{\textstyle \mathbf {A} } be apositive semi-definite Hermitian matrix. Then it can be written as a product of itssquare root matrix,A=BB{\textstyle \mathbf {A} =\mathbf {B} \mathbf {B} ^{*}}. NowQR decomposition can be applied toB{\textstyle \mathbf {B} ^{*}}, resulting inB=QR{\textstyle \mathbf {B} ^{*}=\mathbf {Q} \mathbf {R} }, whereQ{\textstyle \mathbf {Q} } is unitary andR{\textstyle \mathbf {R} } is upper triangular. Inserting the decomposition into the original equality yieldsA=BB=(QR)QR=RQQR=RR{\textstyle A=\mathbf {B} \mathbf {B} ^{*}=(\mathbf {QR} )^{*}\mathbf {QR} =\mathbf {R} ^{*}\mathbf {Q} ^{*}\mathbf {QR} =\mathbf {R} ^{*}\mathbf {R} }. SettingL=R{\textstyle \mathbf {L} =\mathbf {R} ^{*}} completes the proof.

Generalization

[edit]

The Cholesky factorization can be generalized[citation needed] to (not necessarily finite) matrices with operator entries. Let{Hn}{\textstyle \{{\mathcal {H}}_{n}\}} be a sequence ofHilbert spaces. Consider the operator matrix

A=[A11A12A13A12A22A23A13A23A33]{\displaystyle \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

H=nHn,{\displaystyle {\mathcal {H}}=\bigoplus _{n}{\mathcal {H}}_{n},}

where each

Aij:HjHi{\displaystyle \mathbf {A} _{ij}:{\mathcal {H}}_{j}\rightarrow {\mathcal {H}}_{i}}

is abounded operator. IfA is positive (semidefinite) in the sense that for all finitek and for any

hn=1kHk,{\displaystyle h\in \bigoplus _{n=1}^{k}{\mathcal {H}}_{k},}

there ish,Ah0{\textstyle \langle h,\mathbf {A} h\rangle \geq 0}, then there exists a lower triangular operator matrixL such thatA =LL*. One can also take the diagonal entries ofL to be positive.

Implementations in programming libraries

[edit]
  • C programming language: theGNU Scientific Library provides several implementations of Cholesky decomposition.
  • Maximacomputer algebra system: functioncholesky computes Cholesky decomposition.
  • GNU Octave numerical computations system provides several functions to calculate, update, and apply a Cholesky decomposition.
  • TheLAPACK library provides a high performance implementation of the Cholesky decomposition that can be accessed fromFortran,C and most languages. The Cholesky decomposition is available through the*POTRF family of subroutines, and the LDL decomposition through the*HETRF family of subroutines.
  • InPython, the functioncholesky from thenumpy.linalg module performs Cholesky decomposition. Thescipy.linalg module contains theldl function for the LDL decomposition.
  • InMatlab, thechol function gives the Cholesky decomposition. Note thatchol uses the upper triangular factor of the input matrix by default, i.e. it computesA=RR{\textstyle A=R^{*}R} whereR{\textstyle R} is upper triangular. A flag can be passed to use the lower triangular factor instead.
  • InR, thechol function gives the Cholesky decomposition.
  • InJulia, thecholesky function from theLinearAlgebra standard library gives the Cholesky decomposition.
  • InMathematica, the function "CholeskyDecomposition" can be applied to a matrix.
  • InC++, multiple linear algebra libraries support this decomposition:
    • TheArmadillo (C++ library) supplies the commandchol to perform Cholesky decomposition.
    • TheEigen library supplies Cholesky factorizations for both sparse and dense matrices.
    • In theROOT package, theTDecompChol class is available.

See also

[edit]

Notes

[edit]
  1. ^Benoit (1924). "Note sur une méthode de résolution des équations normales provenant de l'application de la méthode des moindres carrés à un système d'équations linéaires en nombre inférieur à celui des inconnues (Procédé du Commandant Cholesky)".Bulletin Géodésique (in French).2:66–67.doi:10.1007/BF03031308.
  2. ^abPress, William H.; Saul A. Teukolsky; William T. Vetterling; Brian P. Flannery (1992).Numerical Recipes in C: The Art of Scientific Computing (second ed.). Cambridge University England EPress. pp. 96-97.ISBN 0-521-43108-5. Retrieved2025-07-29.
  3. ^Golub & Van Loan (1996, p. 143),Horn & Johnson (1985, p. 407),Trefethen & Bau (1997, p. 174).
  4. ^Horn & Johnson (1985, p. 407).
  5. ^"matrices - Diagonalizing a Complex Symmetric Matrix".MathOverflow. Retrieved2020-01-25.
  6. ^Schabauer, Hannes; Pacher, Christoph; Sunderland, Andrew G.; Gansterer, Wilfried N. (2010-05-01)."Toward a parallel solver for generalized complex symmetric eigenvalue problems".Procedia Computer Science. ICCS 2010.1 (1):437–445.doi:10.1016/j.procs.2010.04.047.ISSN 1877-0509.
  7. ^Golub & Van Loan (1996, p. 147).
  8. ^Gentle, James E. (1998).Numerical Linear Algebra for Applications in Statistics. Springer. p. 94.ISBN 978-1-4612-0623-1.
  9. ^Higham, Nicholas J. (1990)."Analysis of the Cholesky Decomposition of a Semi-definite Matrix". In Cox, M. G.; Hammarling, S. J. (eds.).Reliable Numerical Computation. Oxford, UK: Oxford University Press. pp. 161–185.ISBN 978-0-19-853564-5.
  10. ^abKrishnamoorthy, Aravindh; Menon, Deepak. "Matrix Inversion Using Cholesky Decomposition".2013 Signal Processing: Algorithms, Architectures, Arrangements, and Applications (SPA). IEEE. pp. 70–72.arXiv:1111.4144.
  11. ^So, Anthony Man-Cho (2007).A Semidefinite Programming Approach to the Graph Realization Problem: Theory, Applications and Extensions(PDF) (PhD). Theorem 2.2.6.
  12. ^Golub & Van Loan (1996, Theorem 4.1.3)
  13. ^Pope, Stephen B. "Algorithms for ellipsoids." Cornell University Report No. FDA (2008): 08-01.
  14. ^Schwarzenberg-Czerny, A. (1995). "On matrix factorization and efficient least squares solution".Astronomy and Astrophysics Supplement.110:405–410.Bibcode:1995A&AS..110..405S.
  15. ^Arora, Jasbir Singh (2004-06-02).Introduction to Optimum Design. Elsevier.ISBN 978-0-08-047025-2.
  16. ^Matlab randn documentation. mathworks.com.
  17. ^William Morokoff, "The Brownian bridge E-M algorithm for covariance estimation with missing data," Journal of Computational Finance.
  18. ^?potrf Intel® Math Kernel Library[1]
  19. ^Turing, A. M. (1948). "Rounding-off errors in matrix processes".Quart. J. Mech. Appl. Math.1:287–308.doi:10.1093/qjmam/1.1.287.
  20. ^abWatkins, D. (1991).Fundamentals of Matrix Computations. New York: Wiley.ISBN 0-471-61414-9.
  21. ^Fang, Haw-ren;O'Leary, Dianne P. (2008)."Modified Cholesky algorithms: a catalog with new approaches"(PDF).Mathematical Programming.115 (2):319–349.doi:10.1007/s10107-007-0177-6.hdl:1903/3674.MR 2411401.
  22. ^Nocedal, Jorge (2000).Numerical Optimization. Springer.
  23. ^Fang, Haw-Ren (2011). "Stability analysis of blockLDLT{\displaystyle LDL^{T}} factorization for symmetric indefinite matrices".IMA Journal of Numerical Analysis.31 (2):528–555.doi:10.1093/imanum/drp053.MR 2813183.
  24. ^abBotev, Zdravko I.; Kroese, Dirk P.; Taimre, Thomas (2025).Data Science and Machine Learning: Mathematical and Statistical Methods (2nd ed.). Boca Raton ; London: CRC Press. pp. 545–546.ISBN 978-1-032-48868-4.

References

[edit]

External links

[edit]

History of science

[edit]
  • Sur la résolution numérique des systèmes d'équations linéaires, Cholesky's 1910 manuscript, online and analyzed onBibNum(in French and English)[for English, click 'A télécharger']

Information

[edit]

Computer code

[edit]

Use of the matrix in simulation

[edit]

Online calculators

[edit]
Key concepts
Problems
Hardware
Software
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cholesky_decomposition&oldid=1329164143"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp