MATEE

Evaluates the eigenvalues for the periodic Mathieu functions.

Required Arguments

Q — Parameter. (Input)

ISYM — Symmetry indicator. (Input)

 

ISYM

Meaning

0

Even

1

Odd

IPER — Periodicity indicator. (Input)

 

ISYM

Meaning

0

pi

1

* pi

EVAL — Vector of length N containing the eigenvalues. (Output)

Optional Arguments

N — Number of eigenvalues to be computed. (Input)
Default: N = size (EVAL,1)

FORTRAN 90 Interface

Generic: CALL MATEE (Q, ISYM, IPER, EVAL [])

Specific: The specific interface names are S_MATEE and D_MATEE.

FORTRAN 77 Interface

Single: CALL MATEE (Q, N, ISYM, IPER, EVAL)

Double: The double precision function name is DMATEE.

Description

The eigenvalues of Mathieu’s equation are computed by a method due to Hodge (1972). The desired eigenvalues are the same as the eigenvalues of the following symmetric, tridiagonal matrix:

 

Here,

 

where

 

Since the above matrix is semi‑infinite, it must be truncated before its eigenvalues can be computed. Routine MATEE computes an estimate of the number of terms needed to get accurate results. This estimate can be overridden by calling M2TEE with NORDER equal to the desired order of the truncated matrix.

The eigenvalues of this matrix are computed using the routine EVLSB found in the IMSL Fortran Math Library, Chapter 2, “Eigensystem Analysis”.

Comments

1. Workspace may be explicitly provided, if desired, by use of M2TEE/DM2TEE. The reference is

CALL M2TEE (Q, N, ISYM, IPER, EVAL, NORDER, WORKD, WORKE)

The additional arguments are as follows:

NORDER — Order of the matrix whose eigenvalues are computed. (Input)

WORKD — Work vector of size NORDER. (Input/Output)
If EVAL is large enough then EVAL and WORKD can be the same vector.

WORKE — Work vector of size NORDER. (Input/Output)

2. Informational error

 

Type

Code

Description

4

1

The iteration for the eigenvalues did not converge.

Example

In this example, the eigenvalues for Q = 5, even symmetry, and π periodicity are computed and printed.

 

USE UMACH_INT

USE MATEE_INT

 

IMPLICIT NONE

! Declare variables

INTEGER N

PARAMETER (N=10)

!

INTEGER ISYM, IPER, K, NOUT

REAL Q, EVAL(N)

! Compute

Q = 5.0

ISYM = 0

IPER = 0

CALL MATEE (Q, ISYM, IPER, EVAL)

! Print the results

CALL UMACH (2, NOUT)

DO 10 K=1, N

WRITE (NOUT,99999) 2*K-2, EVAL(K)

10 CONTINUE

99999 FORMAT (' Eigenvalue', I2, ' = ', F9.4)

END

Output

 

Eigenvalue 0 = -5.8000

Eigenvalue 2 = 7.4491

Eigenvalue 4 = 17.0966

Eigenvalue 6 = 36.3609

Eigenvalue 8 = 64.1989

Eigenvalue10 = 100.1264

Eigenvalue12 = 144.0874

Eigenvalue14 = 196.0641

Eigenvalue16 = 256.0491

Eigenvalue18 = 324.0386