MATEE
Evaluates the eigenvalues for the periodic Mathieu functions.
Required Arguments
Q — Parameter. (Input)
ISYM — Symmetry indicator. (Input)
IPER — Periodicity indicator. (Input)
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