- publishing free software manuals
GNU Scientific Library Reference Manual - Revised Second Edition (v1.8)
by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, M. Booth, F. Rossi
Paperback (6"x9"), 636 pages, 60 figures
ISBN 0954161734
RRP £24.99 ($39.99)

Get a printed copy>>>

13.5 Cholesky Decomposition

A symmetric, positive definite square matrix A has a Cholesky decomposition into a product of a lower triangular matrix L and its transpose L^T,

A = L L^T

This is sometimes referred to as taking the square-root of a matrix. The Cholesky decomposition can only be carried out when all the eigenvalues of the matrix are positive. This decomposition can be used to convert the linear system A x = b into a pair of triangular systems (L y = b, L^T x = y), which can be solved by forward and back-substitution.

Function: int gsl_linalg_cholesky_decomp (gsl_matrix * A)
This function factorizes the positive-definite symmetric square matrix A into the Cholesky decomposition A = L L^T. On input only the diagonal and lower-triangular part of the matrix A are needed. On output the diagonal and lower triangular part of the input matrix A contain the matrix L. The upper triangular part of the input matrix contains L^T, the diagonal terms being identical for both L and L^T. If the matrix is not positive-definite then the decomposition will fail, returning the error code GSL_EDOM.
Function: int gsl_linalg_cholesky_solve (const gsl_matrix * cholesky, const gsl_vector * b, gsl_vector * x)
This function solves the system A x = b using the Cholesky decomposition of A into the matrix cholesky given by gsl_linalg_cholesky_decomp.
Function: int gsl_linalg_cholesky_svx (const gsl_matrix * cholesky, gsl_vector * x)
This function solves the system A x = b in-place using the Cholesky decomposition of A into the matrix cholesky given by gsl_linalg_cholesky_decomp. On input x should contain the right-hand side b, which is replaced by the solution on output.
ISBN 0954161734GNU Scientific Library Reference Manual - Revised Second Edition (v1.8)See the print edition