Welcome to the L3 Harris Geospatial documentation center. Here you will find reference guides and help documents.
﻿

### 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.