Evaluates the eigenvalues for the periodic Mathieu functions.
Q — Parameter. (Input)
ISYM — Symmetry indicator. (Input)
ISYM |
Meaning |
0 |
Even |
1 |
Odd |
IPER — Periodicity indicator. (Input)
ISYM |
Meaning |
0 |
pi |
1 |
2 * pi |
EVAL — Vector of length N containing the eigenvalues. (Output)
N — Number of
eigenvalues to be computed. (Input)
Default: N = size (EVAL,1)
Generic: CALL MATEE (Q, ISYM, IPER, EVAL [,…])
Specific: The specific interface names are S_MATEE and D_MATEE.
Single: CALL MATEE (Q, N, ISYM, IPER, EVAL)
Double: The double precision function name is DMATEE.
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 MATH/LIBRARY Chapter 2.
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
4 1 The iteration for the eigenvalues did not converge.
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
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
PHONE: 713.784.3131 FAX:713.781.9260 |