The CHOLSOL function returns an n-element vector containing the solution to the set of linear equations Ax = b, where A is the positive-definite symmetric array returned by the CHOLDC procedure.

CHOLSOL is based on the routine cholsl described in section 2.9 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

Note: If you are working with complex inputs, use the LA_CHOLSOL procedure instead.

Examples


To solve a positive-definite symmetric system Ax = b:

;Define the coefficient array:
A = [[ 6.0, 15.0, 55.0], $
   [15.0, 55.0, 225.0], $
   [55.0, 225.0, 979.0]]
;Define the right-hand side vector B:
B = [9.5, 50.0, 237.0]
;Compute Cholesky decomposition of A:
CHOLDC, A, P
;Compute and print the solution:
PRINT, CHOLSOL(A, P, B)

IDL prints:

  -0.499998  -1.00000  0.500000

The exact solution vector is [-0.5, -1.0, 0.5].

Syntax


Result = CHOLSOL( A, P, B [, /DOUBLE] )

Return Value


Returns an n-element vector containing the solution to the set of linear equations Ax = b, where A is the positive-definite symmetric array returned by the CHOLDC.

Arguments


A

An n by n positive-definite symmetric array, as output by CHOLDC. Only the lower triangle of A is accessed.

Note: If CHOLSOL is complex then only the real part is used for the computation.

P

The diagonal elements of the Cholesky factor L, as computed by CHOLDC.

B

An n-element vector containing the right-hand side of the equation.

Keywords


DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

Version History


4.0

Introduced

See Also


CHOLDC, CRAMER, GS_ITER, LA_CHOLSOL, LU_COMPLEX, LUSOL, SVSOL, TRISOL