IMSL_SP_BDPDSOL
Syntax | Return Value | Arguments | Keywords | Discussion | Example | Version History | See Also
The IMSL_SP_BDPDSOL function solves a symmetric positive definite system of linear equations Ax = b in band symmetric storage mode. Using keywords, any of several related computations can be performed.
Note
This routine requires an IDL Advanced Math and Stats license. For more information, contact your ITT Visual Information Solutions sales or technical support representative.
Syntax
Result = IMSL_SP_BDPDSOL(b, ncoda[, a] [, CONDITION=variable]
[, /DOUBLE] [, FACTOR=array])
Return Value
A one-dimensional array containing the solution of the linear system Ax = b.
Arguments
b
One-dimensional matrix containing the right-hand side.
ncoda
Number of upper codiagonals in a.
a
(Optional) Array of size (ncoda + 1) x n containing the n x n banded coefficient matrix in band symmetric storage mode A(i, j). See Band Storage Format for a description of band symmetric storage mode.
Keywords
CONDITION
Named variable into which an estimate of the L1 condition number is stored. This keyword cannot be used if a previously computed factorization is specified with the keyword FACTOR.
DOUBLE
If present and nonzero, double precision is used.
FACTOR
An array of size (ncoda + 1) x N_ELEMENTS(b) containing the RTR factorization of A in band symmetric storage mode, as returned from IMSL_SP_BDPDFAC.
Discussion
The IMSL_SP_BDPDSOL function solves a system of linear algebraic equations with a symmetric positive definite band coefficient matrix A. It computes the RTR Cholesky factorization of A. R is an upper triangular band matrix.
The L1 condition number of A is computed using Higham's modifications to Hager's method, as given in Higham (1988). If the estimated condition number is greater than 1/ε (where ε is the machine precision), a warning message is issued. This indicates that very small changes in A may produce large changes in the solution x.
The IMSL_SP_BDPDSOL function fails if any submatrix of R is not positive definite or if R has a zero diagonal element. These errors occur only if A is very close to a singular matrix or to a matrix which is not positive definite.
The IMSL_SP_BDPDSOL function is partially based on the LINPACK subroutines CPBFA and SPBSL; see Dongarra et al. (1979).
Example
Solve a system of linear equations Ax = b, where

:

n = 4L ncoda = 2L a = DBLARR((ncoda+1)*n) a(0:n-1) = [0, 0, -1, 1] a(n:2L*n-1) = [0, 0, 2, -1] a(2L*n:*) = [2, 4, 7, 3] ; Define A in band symmetric storage mode. b = [6, -11, -11, 19] x = IMSL_SP_BDPDSOL(b, ncoda, a) ; Compute the solution PM, x 4.0000000 -6.0000000 2.0000000 9.0000000
Version History