LFSQH

Solves a complex Hermitian positive definite system of linear equations given the factorization of the coefficient matrix in band Hermitian storage mode.

Required Arguments

FACT — Complex NCODA + 1 by N array containing the RH R factorization of the Hermitian positive definite band matrix A.   (Input)
FACT is obtained as output from routine LFCQH/DLFCQH or LFTQH/DLFTQH .

NCODA — Number of upper or lower codiagonals of A.   (Input)

B — Complex vector of length N containing the right-hand-side of the linear system.   (Input)

X — Complex vector of length N containing the solution to the linear system.   (Output)
If B is not needed, B and X can share the same storage locations.

Optional Arguments

N — Number of equations.   (Input)
Default: N = size (FACT,2).

LDFACT — Leading dimension of FACT exactly as specified in the dimension statement of the calling program.   (Input)
Default: LDFACT = size (FACT,1).

FORTRAN 90 Interface

Generic:                              CALL LFSQH (FACT, NCODA, B, X [,…])

Specific:                             The specific interface names are S_LFSQH and D_LFSQH.

FORTRAN 77 Interface

Single:            CALL LFSQH (N, FACT, LDFACT, NCODA, B, X)

Double:                              The double precision name is DLFSQH.

Description

Routine LFSQH computes the solution for a system of linear algebraic equations having a complex Hermitian positive definite band coefficient matrix. To compute the solution, the coefficient matrix must first undergo an RH R factorization. This may be done by calling either IMSL routine LFCQH or LFTQH. R is an upper triangular band matrix.

The solution to Ax = b is found by solving the triangular systems RH y = b and Rx = y.

LFSQH and LFIQH both solve a linear system given its RH R factorization. LFIQH generally takes more time and produces a more accurate answer than LFSQH. Each iteration of the iterative refinement algorithm used by LFIQH calls LFSQH.

LFSQH is based on the LINPACK routine CPBSL; see Dongarra et al. (1979).

Comments

Informational error

Type   Code

4           1                  The factored matrix has a diagonal element close to zero.

Example

A set of linear systems is solved successively. LFTQH is called to factor the coefficient matrix. LFSQH is called to compute the three solutions for the three right-hand sides. In this case the coefficient matrix is assumed to be well-conditioned and correctly scaled. Otherwise, it would be better to call LFCQH to perform the factorization, and LFIQH to compute the solutions.

 

      USE LFSQH_INT
      USE LFTQH_INT
      USE WRCRN_INT

!                                 Declare variables

      INTEGER    LDA, LDFACT, N, NCODA

      PARAMETER  (LDA=2, LDFACT=2, N=5, NCODA=1)

      COMPLEX    A(LDA,N), B(N,3), FACT(LDFACT,N), X(N,3)

!

!            Set values for A in band Hermitian form, and B

!

!            A = ( 0.0+0.0i -1.0+1.0i  1.0+2.0i  0.0+4.0i  1.0+1.0i )

!                ( 2.0+0.0i  4.0+0.0i 10.0+0.0i  6.0+0.0i  9.0+0.0i )

!

!            B = (  3.0+3.0i   4.0+0.0i   29.0-9.0i  )

!                (  5.0-5.0i  15.0-10.0i -36.0-17.0i )

!                (  5.0+4.0i -12.0-56.0i -15.0-24.0i )

!                (  9.0+7.0i -12.0+10.0i -23.0-15.0i )

!                (-22.0+1.0i   3.0-1.0i  -23.0-28.0i )

!

      DATA A/(0.0,0.0), (2.0,0.0), (-1.0,1.0), (4.0, 0.0), (1.0,2.0),&

            (10.0,0.0), (0.0,4.0), (6.0,0.0), (1.0,1.0), (9.0,0.0)/

      DATA B/(3.0,3.0), (5.0,-5.0), (5.0,4.0), (9.0,7.0), (-22.0,1.0),&

            (4.0,0.0), (15.0,-10.0), (-12.0,-56.0), (-12.0,10.0),&

            (3.0,-1.0), (29.0,-9.0), (-36.0,-17.0), (-15.0,-24.0),&

            (-23.0,-15.0), (-23.0,-28.0)/

!                                 Factor the matrix A

      CALL LFTQH (A, NCODA, FACT)

!                                 Compute the solutions

      DO 10  I=1, 3

         CALL LFSQH (FACT, NCODA, B(:,I), X(:,I))

   10 CONTINUE

!                                 Print solutions

      CALL WRCRN ('X', X)

      END

Output

 

                           X
                 1                2                3
1  (  1.00,  0.00)  (  3.00, -1.00)  ( 11.00, -1.00)
2  (  1.00, -2.00)  (  2.00,  0.00)  ( -7.00,  0.00)
3  (  2.00,  0.00)  ( -1.00, -6.00)  ( -2.00, -3.00)
4  (  2.00,  3.00)  (  2.00,  1.00)  ( -2.00, -3.00)
5  ( -3.00,  0.00)  (  0.00,  0.00)  ( -2.00, -3.00)


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260