LUSOL

The LUSOL function is used in conjunction with the LUDC procedure to solve a set of n linear equations in n unknowns Ax = b . The parameter A is input not as the original array, but as its LU decomposition, created by the routine LUDC. The result is an n -element vector whose type is identical to A .

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

Calling Sequence

Result = LUSOL( A, Index, B )

Arguments

A

The n by n LU decomposition of an array created by the LUDC procedure.

Index

An input vector, created by the LUDC procedure, containing a record of the row permutations which occurred as a result of partial pivoting.

B

An n -element vector containing the right-hand side of the linear system
Ax = b .

Keywords

COLUMN

Set this keyword if the input array A is in column-major format (composed of column vectors) rather than in row-major format (composed of row vectors).

DOUBLE

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

Example

To solve the linear system Ax = b using LU decomposition and back substitution:

A = [[ 2.0,  1.0,  1.0], $ ; Define array A.

     [ 4.0, -6.0,  0.0], $

     [-2.0,  7.0,  2.0]]

B = [3.0, -8.0, 10.0] ; Define right-hand side vector B.

LUDC, A, INDEX ; Decompose A.

result = LUSOL(A, INDEX, B) ; Compute the solution using back
substitution.

PRINT, result; Print the result.

IDL prints:

  1.00000  2.00000 -1.00000

This is the exact solution vector.

See Also

CHOLSOL , CRAMER , GS_ITER , LU_COMPLEX , LUDC , SVSOL , TRISOL