EVBSB

Computes the eigenvalues in a given interval of a real symmetric matrix stored in band symmetric storage mode.

Required Arguments

MXEVAL — Maximum number of eigenvalues to be computed.   (Input)

A — Band symmetric matrix of order N.   (Input)

NCODA — Number of codiagonals in A.   (Input)

ELOW — Lower limit of the interval in which the eigenvalues are sought.   (Input)

EHIGH — Upper limit of the interval in which the eigenvalues are sought.   (Input)

NEVAL — Number of eigenvalues found.   (Output)

EVAL — Real vector of length MXEVAL containing the eigenvalues of A in the interval (ELOW, EHIGH) in decreasing order of magnitude.   (Output)
Only the first NEVAL elements of EVAL are set.

Optional Arguments

N — Order of the matrix A.   (Input)
Default: N = size (A,2).

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

FORTRAN 90 Interface

Generic:          CALL EVBSB (MXEVAL, A, NCODA, ELOW, EHIGH, NEVAL, EVAL [,…])

Specific:         The specific interface names are S_EVBSB and D_EVBSB.

FORTRAN 77 Interface

Single:            CALL EVBSB (N, MXEVAL, A, LDA, NCODA, ELOW, EHIGH, NEVAL, EVAL)

Double:          The double precision name is DEVBSB.

Description

Routine EVBSB computes the eigenvalues in a given range of a real band symmetric matrix. Orthogonal similarity transformations are used to reduce the matrix to an equivalent symmetric tridiagonal matrix. A bisection algorithm is used to compute the eigenvalues of the tridiagonal matrix in a given range.

The reduction routine is based on the EISPACK routine BANDR; see Garbow et al. (1977). The bisection routine is based on the EISPACK routine BISECT; see Smith et al. (1976).

Comments

1.         Workspace may be explicitly provided, if desired, by use of E3BSB/DE3BSB. The reference is:

CALL E3BSB (N, MXEVAL, A, LDA, NCODA, ELOW, EHIGH, NEVAL, EVAL, ACOPY, WK)

The additional arguments are as follows:

ACOPY — Work matrix of size NCODA + 1 by N. A and ACOPY may be the same, in which case the first N(NCODA + 1) elements of A will be destroyed.

WK — Work array of length 5N.

2.         Informational error

Type   Code

3           1                  The number of eigenvalues in the specified interval exceeds MXEVAL. NEVAL contains the number of eigenvalues in the interval. No eigenvalues will be returned.

Example

In this example, a DATA statement is used to set A to a matrix given by Gregory and Karney (1969, page 77). The eigenvalues in the range (-2.5, 1.5) are computed and printed. As a test, this example uses MXEVAL = 5. The routine EVBSB computes NEVAL, the number of eigenvalues in the given range, has the value 3.

 

      USE EVBSB_INT

      USE UMACH_INT

      USE WRRRN_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    LDA, MXEVAL, N, NCODA

      PARAMETER  (MXEVAL=5, N=5, NCODA=2, LDA=NCODA+1)

!

      INTEGER    NEVAL, NOUT

      REAL       A(LDA,N), EHIGH, ELOW, EVAL(MXEVAL)

!

!                                 Define values of A:

!                                 A = ( -1   2   1          )

!                                     (  2   0   2   1      )

!                                     (  1   2   0   2   1  )

!                                     (      1   2   0   2  )

!                                     (          1   2  -1  )

!                                 Representedin band symmetric

!                                 form this is:

!                                 A = (  0   0   1   1   1 )

!                                     (  0   2   2   2   2 )

!                                     ( -1   0   0   0  -1 )

      DATA A/0.0, 0.0, -1.0, 0.0, 2.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, &

          0.0, 1.0, 2.0, -1.0/

!

      ELOW  = -2.5

      EHIGH = 1.5

      CALL EVBSB (MXEVAL, A, NCODA, ELOW, EHIGH, NEVAL, EVAL)

!                                 Print results

      CALL UMACH (2, NOUT)

      WRITE (NOUT,'(/,A,I1)') ' NEVAL = ', NEVAL

      CALL WRRRN ('EVAL', EVAL, 1, NEVAl, 1)

      END

Output

 

NEVAL = 3

          EVAL

      1       2       3

 -2.464  -2.000   1.000


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