Welcome to the Exelis VIS product documentation center! Here you will find reference guides, help documents, and product libraries. Discover the products ENVI, IDL, ENVI LiDAR, and ESE, developed by Exelis VIS.
﻿

### LA_LUSOL

LA_LUSOL

The LA_LUSOL function is used in conjunction with the LA_LUDC procedure to solve a set of n linear equations in n unknowns, AX = B. The parameter A is not the original array, but its LU decomposition, created by the routine LA_LUDC.

The LA_LUSOL function may also be used to solve for multiple systems of linear equations, with each column of B representing a different set of equations. In this case, the result is a k-by-n array where each of the k columns represents the solution vector for that set of equations.

LA_LUSOL is based on the following LAPACK routines:

 Output Type LAPACK Routine Float sgetrs Double dgetrs Complex cgetrs Double complex zgetrs

## Examples

Given the system of equations:

4u + 16000v + 17000w = 100.1
2u +     5v +     8w = 0.1
3u +     6v +    10w = 0.01

the solution can be derived with the following code:

; Define the coefficient array:
a = [[4, 16000, 17000], \$
[2, 5, 8], \$
[3, 6, 10]]
; Compute the LU decomposition:
aludc = a
; make a copy
LA_LUDC, aludc, index
; Define the right-hand side vector B:
b = [100.1, 0.1, 0.01]

; Compute and print the solution to Ax=b:
x = LA_LUSOL(aludc, index, b)
PRINT, 'LA_LUSOL Solution:', x

IDL prints:

LA_LUSOL solution:    -0.397355    -0.334742     0.321033

The exact solution to 6 decimal places is [-0.397432, -0.334865, 0.321149].

Note: UNIX users may see slightly different output results.

## Syntax

Result = LA_LUSOL( A, Index, B [, /DOUBLE] )

## Return Value

The result is an n-element vector or k-by-n array.

## Arguments

### A

The n-by-n LU decomposition of an array, created by the LA_LUDC procedure.

Note: LA_LUSOL cannot accept any non-square output generated by LA_LUDC.

### Index

An n-element input vector, created by the LA_LUDC procedure, containing the row permutations which occurred as a result of partial pivoting.

### B

An n-element input vector containing the right-hand side of the linear system, or a k-by-n array, where each of the k columns represents a different linear system.

## Keywords

### DOUBLE

Set this keyword to use double-precision for computations and to return a double-precision (real or complex) result. Set DOUBLE = 0 to use single-precision for computations and to return a single-precision (real or complex) result. The default is /DOUBLE if A is double precision, otherwise the default is DOUBLE = 0.

## Version History

 5.6 Introduced

## Resources and References

For details see Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM, 1999.

﻿