Routines (alphabetical) > Routines: S > SVSOL

# SVSOL

The SVSOL function uses “back-substitution” to solve a set of simultaneous linear equations Ax = b, given the U, W, and V arrays returned by the SVDC procedure. None of the input arguments are modified, making it possible to call SVSOL multiple times with different right hand vectors, B.

## Examples

To solve the linear system Ax = b using Singular-value decomposition and back substitution, begin with an array A which serves as the coefficient array:

; Define the array A:
A = [[1.0, 2.0, -1.0, 2.5], $
[1.5, 3.3, -0.5, 2.0], $
[3.1, 0.7, 2.2, 0.0], $
[0.0, 0.3, -2.0, 5.3], $
[2.1, 1.0, 4.3, 2.2], $
[0.0, 5.5, 3.8, 0.2]]
; Define the right-hand side vector B:
B = [0.0, 1.0, 5.3, -2.0, 6.3, 3.8]
; Decompose A:
SVDC, A, W, U, V
; Compute the solution and print the result:
PRINT, SVSOL(U, W, V, B)

IDL prints:

1.00095 0.00881170 0.984176 -0.0100954

This is the correct solution.

## Syntax

Result = SVSOL( U, W, V, B [, /COLUMN] [, /DOUBLE] )

## Return Value

Returns the solution to the linear system using decomposition and back substitution.

## Arguments

### U

An n-column, m-row orthogonal array used in the decomposition of A. Normally, U is returned from the SVDC procedure.

### W

An n-element vector containing “singular values.” Normally, W is returned from the SVDC procedure. Small values (close to machine floating-point precision) should be set to zero prior to calling SVSOL.

### V

An n-column, n-row orthogonal array used in the decomposition of A. Normally, V is returned from the SVDC procedure.

### B

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

## Keywords

### COLUMN

Set this keyword if the input arrays U and V are 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.

## Version History

4.0 | Introduced

## Resources and References

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

## See Also

CRAMER, GS_ITER, LU_COMPLEX, CHOLSOL, LUSOL, SVDC, TRISOL