Cholesky decomposition and resolution
The Cholesky decomposition is a method for solving systems of linear equations, particularly when the coefficient matrix is symmetric and positive definite. The method involves decomposing the matrix into a product of a lower triangular matrix and its transpose.
Given a positive definite symmetric matrix a(1:n,1:n), with physical dimensions np, this routine constructs its Cholesky decomposition, A=L L^T. On input, only the upper triangle of a need to be given; it is not modified. The Cholesky factor L is returned in the lower triangle of a, except for its diagonal elements which are returned in p(1:n).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8), | intent(inout), | dimension(np, np) | :: | a |
system matrix |
|
integer(kind=I4), | intent(in) | :: | n |
system size |
||
integer(kind=I4), | intent(in) | :: | np |
matrix size |
||
real(kind=R8), | intent(out), | dimension(np) | :: | p |
diagonal elements |
|
integer(kind=I4), | intent(out) | :: | info |
information ouput |
Solves the set of linear equations A x = b, where A is a positive- definite symmetric matrix with physical dimensions np. A and P are are input as the output from choldc. Only the lower triangle of A is accessed. B(1:n) is inout as the right-hand side vector. The solution vector is returned in X(1:n). A, n, np, and P are not modified and can be left in place for successive calls with different right-hand sides B. B is not modified unless you identify B and X in the calling sequence, which is allowed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8), | intent(in), | dimension(np, np) | :: | a |
system matrix |
|
integer(kind=I4), | intent(in) | :: | n |
system size |
||
integer(kind=I4), | intent(in) | :: | np |
matrix size |
||
real(kind=R8), | intent(in), | dimension(np) | :: | p |
diagonal elements |
|
real(kind=R8), | intent(inout), | dimension(np) | :: | b |
rhs |
|
real(kind=R8), | intent(inout), | dimension(np) | :: | x |
solution vector |
|
integer(kind=I4), | intent(inout) | :: | info |
information ouput |