Chapter 10: Elliptic and Related Functions

EJDN

This function evaluates the Jacobi elliptic function dn(x, m).

Function Return Value

EJDN — Real or complex function value.   (Output)

Required Arguments

X — Real or complex argument for which the function value is desired.   (Input)

AM — Parameter of the elliptic function (m = k2).   (Input)

FORTRAN 90 Interface

Generic:                              EJDN (X, AM)

Specific:                             The specific interface names are S_EJDN, D_EJDN, C_EJDN, and Z_EJDN.

FORTRAN 77 Interface

Single:                                EJDN (X, AM)

Double:                              The double precision name is DEJDN.

Complex:                            The complex precision name is CEJDN.

Double Complex:              The double complex precision name is ZEJDN.

Description

The Jacobi elliptic function dn(x, m) = (1 − m sin2 ɸ)½,  where the amplitude ɸ is defined by the following:

The function dn(x, m) is computed by first applying, if necessary, a Jacobi transformation so that the parameter, m, is between zero and one. Then, a descending Landen (Gauss) transform is applied until the parameter is small. The small parameter approximation is then applied.

Comments

Informational errors

Type Code

3         2                  The result is accurate to less than one half precision because |X| is too large.

3         2                  The result is accurate to less than one half precision because |REAL (Z)| is too large.

3         3                  The result is accurate to less than one half precision because |AIMAG (Z)| is too large.

3         5                  Landen transform did not converge. Result may not be accurate. This should never occur.

Example 1

In this example, dn(1.5, 0.5) is computed and printed.

 

      USE EJDN_INT

      USE UMACH_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    NOUT

      REAL       AM, VALUE, X

!                                 Compute

      AM    = 0.5

      X     = 1.5

      VALUE = EJDN(X, AM)

!                                 Print the results

      CALL UMACH (2, NOUT)

      WRITE (NOUT,99999) X, AM, VALUE

99999 FORMAT (' EJDN(', F6.3, ',', F6.3, ') = ', F6.3)

      END

Output

 

EJDN( 1.500, 0.500) =  0.729

Additional Example

Example 2

In this example, dn(1.5 + 0.3i, 0.5) is computed and printed.

 

      USE EJDN_INT

      USE UMACH_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    NOUT

      REAL       AM

      COMPLEX    VALUE, Z

!                                 Compute

      Z     = (1.5, 0.3)

      AM    = 0.5

      VALUE = EJDN(Z, AM)

!                                 Print the results

      CALL UMACH (2, NOUT)

      WRITE (NOUT,99999) Z, AM, VALUE

99999 FORMAT (' EJDN((', F6.3, ',', F6.3, '), ', F6.3, ') = (', &

              F6.3, ',', F6.3, ')')

      END

Output

 

EJDN(( 1.500, 0.300), 0.500) = ( 0.714,-0.037)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260