LFIQH

Uses iterative refinement to improve the solution of a complex Hermitian positive definite system of linear equations in band Hermitian storage mode.

Required Arguments

A — Complex NCODA + 1 by N array containing the N by N positive definite band Hermitian coefficient matrix in band Hermitian storage mode.   (Input)

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

FACT — Complex NCODA + 1 by N array containing the RH R factorization of the matrix A as output from routine LFCQH/DLFCQH or LFTQH/DLFTQH.   (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)

RES — Complex vector of length N containing the residual vector at the improved solution.   (Output)

Optional Arguments

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

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

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 LFIQH (A, NCODA, FACT, B, X, RES [,…])

Specific:                             The specific interface names are S_LFIQH and D_LFIQH.

FORTRAN 77 Interface

Single:            CALL LFIQH (N, A, LDA, NCODA, FACT, LDFACT, B, X, RES)

Double:                              The double precision name is DLFIQH.

Description

Routine LFIQH 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.

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. The right-hand side vector is perturbed after solving the system each of the fisrt two times by adding (1 + i)/2 to the second element.

 

      USE IMSL_LIBRARIES

!                                 Declare variables

      INTEGER    LDA, LDFACT, N, NCODA

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

      REAL       RCOND

      COMPLEX    A(LDA,N), B(N), FACT(LDFACT,N), RES(N,3), 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 5.0-5.0i  5.0+4.0i 9.0+7.0i -22.0+1.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)/

!                                 Factor the matrix A

      CALL LFCQH (A, NCODA, FACT, RCOND=RCOND)

!                                 Print the estimated condition number

      CALL UMACH (2, NOUT)

      WRITE (NOUT, 99999) RCOND, 1.0E0/RCOND

!                                 Compute the solutions

      DO 10  I=1, 3

         CALL LFIQH (A, NCODA, FACT,  B, X(:,I), RES(:,I))

         B(2) = B(2) + (0.5E0, 0.5E0)

   10 CONTINUE

!                                 Print solutions

      CALL WRCRN ('X', X)

      CALL WRCRN ('RES', RES)

99999 FORMAT ('  RCOND = ', F5.3, /, '  L1 Condition number = ', F6.3)

      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