This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

Elliptic Integrals and Elliptic Functions

Even more so than for other special functions, you need to be very careful about the arguments you give to elliptic integrals and elliptic functions. There are several incompatible conventions in common use, and often these conventions are distinguished only by the specific names given to arguments or by the presence of separators other than commas between arguments.
• Amplitude (used by Mathematica, in radians)
• Argument u (used by Mathematica): related to amplitude by =am (u)
• Delta amplitude ():
• Coordinate x: x=sin ()
• Characteristic n (used by Mathematica in elliptic integrals of the third kind)
• Parameter m (used by Mathematica): preceded by , as in I (m)
• Complementary parameter m1: m1=1-m
• Modulus k: preceded by comma, as in I (, k); m=k2
• Modular angle : preceded by \ , as in I (\); m=sin2 ()
• Nome q: preceded by comma in functions; q=exp[- K (1-m)/K{m)]=exp (i /)
• Invariants g2, g3 (used by Mathematica)
• Half-periods , : g2=60w-4, g3=140w-6, where w=2r+2s
• Ratio of periods : =/
• Discriminant :
• Parameters of curve a, b (used by Mathematica)
• Coordinate y (used by Mathematica): related by y2=x3+ax2+b x

Common argument conventions for elliptic integrals and elliptic functions.

JacobiAmplitude[u,m]give the amplitude corresponding to argument u and parameter m
EllipticNomeQ[m]give the nome q corresponding to parameter m
InverseEllipticNomeQ[q]give the parameter m corresponding to nome q
give the invariants {g2, g3} corresponding to the half-periods {, }
give the half-periods {, } corresponding to the invariants {g2, g3}

Converting between different argument conventions.

Elliptic Integrals

EllipticK[m]complete elliptic integral of the first kind K (m)
EllipticF[,m]elliptic integral of the first kind F (m)
EllipticE[m]complete elliptic integral of the second kind E (m)
EllipticE[,m]elliptic integral of the second kind E (m)
EllipticPi[n,m]complete elliptic integral of the third kind (nm)
EllipticPi[n,,m]elliptic integral of the third kind (n;m)
JacobiZeta[,m]Jacobi zeta function Z (m)

Elliptic integrals.

Integrals of the form R (x, y)x, where R is a rational function, and y2 is a cubic or quartic polynomial in x, are known as elliptic integrals. Any elliptic integral can be expressed in terms of the three standard kinds of Legendre-Jacobi elliptic integrals.
The elliptic integral of the first kind EllipticF[, m] is given for -/2<</2 by . This elliptic integral arises in solving the equations of motion for a simple pendulum. It is sometimes known as an incomplete elliptic integral of the first kind.
Note that the arguments of the elliptic integrals are sometimes given in the opposite order from what is used in Mathematica.
The complete elliptic integral of the first kind EllipticK[m] is given by . Note that K is used to denote the complete elliptic integral of the first kind, while F is used for its incomplete form. In many applications, the parameter m is not given explicitly, and K (m) is denoted simply by K. The complementary complete elliptic integral of the first kind K (m) is given by K (1-m). It is often denoted K. K and iK give the "real" and "imaginary" quarter-periods of the corresponding Jacobi elliptic functions discussed later.
The elliptic integral of the second kind EllipticE[, m] is given for -/2<</2 by .
The complete elliptic integral of the second kind EllipticE[m] is given by . It is often denoted E. The complementary form is E (m)=E (1-m).
The Jacobi zeta function JacobiZeta[, m] is given by Z (m)=E (m)-E (m)F (m)/K (m).
The Heuman lambda function is given by .
The elliptic integral of the third kind EllipticPi[n, , m] is given by .
The complete elliptic integral of the third kind EllipticPi[n, m] is given by .
Here is a plot of the complete elliptic integral of the second kind E (m).
Click for copyable input
Here is K () with =30.
Click for copyable input
The elliptic integrals have a complicated structure in the complex plane.
Click for copyable input

Elliptic Functions

JacobiAmplitude[u,m]amplitude function am (um)
JacobiSN[u,m], JacobiCN[u,m], etc.
Jacobi elliptic functions sn (um), etc.
InverseJacobiSN[v,m], InverseJacobiCN[v,m], etc.
inverse Jacobi elliptic functions sn-1 (vm), etc.
EllipticTheta[a,u,q]theta functions a (u, q) (a=1, ..., 4)
EllipticThetaPrime[a,u,q]derivatives of theta functions (a=1, ..., 4)
SiegelTheta[,s]Siegel theta function (, s)
SiegelTheta[v,,s]Siegel theta function [v] (, s)
WeierstrassP[u,{g2,g3}]Weierstrass elliptic function (u;g2, g3)
derivative of Weierstrass elliptic function (u;g2, g3)
inverse Weierstrass elliptic function
WeierstrassSigma[u,{g2,g3}]Weierstrass sigma function (u;g2, g3)
WeierstrassZeta[u,{g2,g3}]Weierstrass zeta function (u;g2, g3)

Elliptic and related functions.

Rational functions involving square roots of quadratic forms can be integrated in terms of inverse trigonometric functions. The trigonometric functions can thus be defined as inverses of the functions obtained from these integrals.
By analogy, elliptic functions are defined as inverses of the functions obtained from elliptic integrals.
The amplitude for Jacobi elliptic functions JacobiAmplitude[u, m] is the inverse of the elliptic integral of the first kind. If u=F (m), then =am (um). In working with Jacobi elliptic functions, the argument m is often dropped, so am (um) is written as am (u).
The Jacobi elliptic functions JacobiSN[u, m] and JacobiCN[u, m] are given respectively by sn (u)=sin () and cn (u)=cos (), where =am (um). In addition, JacobiDN[u, m] is given by .
There are a total of twelve Jacobi elliptic functions JacobiPQ[u, m], with the letters P and Q chosen from the set S, C, D and N. Each Jacobi elliptic function JacobiPQ[u, m] satisfies the relation pq (u)=pn (u)/qn (u), where for these purposes nn (u)=1.
There are many relations between the Jacobi elliptic functions, somewhat analogous to those between trigonometric functions. In limiting cases, in fact, the Jacobi elliptic functions reduce to trigonometric functions. So, for example, sn (u0)=sin (u), sn (u1)=tanh (u), cn (u0)=cos (u), cn (u1)=sech (u), dn (u0)=1 and dn (u1)=sech (u).
The notation Pq (u) is often used for the integrals . These integrals can be expressed in terms of the Jacobi zeta function defined earlier.
One of the most important properties of elliptic functions is that they are doubly periodic in the complex values of their arguments. Ordinary trigonometric functions are singly periodic, in the sense that f (z+s)=f (z) for any integer s. The elliptic functions are doubly periodic, so that f (z+r+s)=f (z) for any pair of integers r and s.
The Jacobi elliptic functions sn (um), etc. are doubly periodic in the complex u plane. Their periods include =4K (m) and =4iK (1-m), where K is the complete elliptic integral of the first kind.
The choice of p and q in the notation pq (um) for Jacobi elliptic functions can be understood in terms of the values of the functions at the quarter periods K and iK.
This shows two complete periods in each direction of the absolute value of the Jacobi elliptic function .
Click for copyable input
Also built into Mathematica are the inverse Jacobi elliptic functions InverseJacobiSN[v, m], InverseJacobiCN[v, m], etc. The inverse function sn-1 (vm), for example, gives the value of u for which v=sn (um). The inverse Jacobi elliptic functions are related to elliptic integrals.
The four theta functions a (u, q) are obtained from EllipticTheta[a, u, q] by taking a to be 1, 2, 3 or 4. The functions are defined by: 1 (u, q)=2q1/4 (-1)nqn (n+1)sin[ (2n+1)u], 2 (u, q)=2q1/4qn (n+1)cos[ (2n+1)u], 3 (u, q)=1+2qn2cos (2nu), 4 (u, q)=1+2 (-1)nqn2cos (2nu). The theta functions are often written as a (u) with the parameter q not explicitly given. The theta functions are sometimes written in the form (um), where m is related to q by q=exp[-K (1-m)/K (m)]. In addition, q is sometimes replaced by , given by q=ei. All the theta functions satisfy a diffusion-like differential equation 2 (u, )/u2=4i (u, )/.
The Siegel theta function SiegelTheta[, s] with Riemann square modular matrix of dimension p and vector s generalizes the elliptic theta functions to complex dimension p. It is defined by , where n runs over all p-dimensional integer vectors. The Siegel theta function with characteristic SiegelTheta[, , s] is defined by , where the characteristic is a pair of p-dimensional vectors {, }.
The Jacobi elliptic functions can be expressed as ratios of the theta functions.
An alternative notation for theta functions is (um)=4 (vm), 1 (um)=3 (vm), H (um)=1 (v), H1 (um)=2 (v), where v=u/2K (m).
The Neville theta functions can be defined in terms of the theta functions as s (u)=2K (m)1 (vm)/ , c (u)=2 (vm)/2 (0m), d (u)=3 (vm)/3 (0m), n (u)=4 (vm)/4 (0m), where v=u/2K (m). The Jacobi elliptic functions can be represented as ratios of the Neville theta functions.
The Weierstrass elliptic function WeierstrassP[u, {g2, g3}] can be considered as the inverse of an elliptic integral. The Weierstrass function (u;g2, g3) gives the value of x for which . The function WeierstrassPPrime[u, {g2, g3}] is given by .
The Weierstrass functions are also sometimes written in terms of their fundamental half-periods and , obtained from the invariants g2 and g3 using WeierstrassHalfPeriods[{u, {g2, g3}].
The function InverseWeierstrassP[p, {g2, g3}] finds one of the two values of u for which p= (u;g2, g3). This value always lies in the parallelogram defined by the complex number half-periods and .
InverseWeierstrassP[{p, q}, {g2, g3}] finds the unique value of u for which p= (u;g2, g3) and q= (u;g2, g3). In order for any such value of u to exist, p and q must be related by q2=4p3-g2p-g3.
The Weierstrass zeta function WeierstrassZeta[u, {g2, g3}] and Weierstrass sigma function WeierstrassSigma[u, {g2, g3}] are related to the Weierstrass elliptic functions by (z;g2, g3)=- (z;g2, g3) and (z;g2, g3)/ (z;g2, g3)= (z;g2, g3).
The Weierstrass zeta and sigma functions are not strictly elliptic functions since they are not periodic.

Elliptic Modular Functions

DedekindEta[]Dedekind eta function ()
KleinInvariantJ[]Klein invariant modular function J ()
ModularLambda[]modular lambda function ()

Elliptic modular functions.

The modular lambda function ModularLambda[] relates the ratio of half-periods =/ to the parameter according to m= ().
The Klein invariant modular function KleinInvariantJ[] and the Dedekind eta function DedekindEta[] satisfy the relations .
Modular elliptic functions are defined to be invariant under certain fractional linear transformations of their arguments. Thus for example () is invariant under any combination of the transformations +2 and / (1-2).

Generalized Elliptic Integrals and Functions

ArithmeticGeometricMean[a,b]the arithmetic-geometric mean of a and b
EllipticExp[u,{a,b}]generalized exponential associated with the elliptic curve y2=x3+ax2+bx
EllipticLog[{x,y},{a,b}]generalized logarithm associated with the elliptic curve y2=x3+ax2+bx

Generalized elliptic integrals and functions.

The definitions for elliptic integrals and functions given above are based on traditional usage. For modern algebraic geometry, it is convenient to use slightly more general definitions.
The function EllipticLog[{x, y}, {a, b}] is defined as the value of the integral , where the sign of the square root is specified by giving the value of y such that . Integrals of the form can be expressed in terms of the ordinary logarithm (and inverse trigonometric functions). You can think of EllipticLog as giving a generalization of this, where the polynomial under the square root is now of degree three.
The function EllipticExp[u, {a, b}] is the inverse of EllipticLog. It returns the list {x, y} that appears in EllipticLog. EllipticExp is an elliptic function, doubly periodic in the complex u plane.
ArithmeticGeometricMean[a, b] gives the arithmetic-geometric mean (AGM) of two numbers a and b. This quantity is central to many numerical algorithms for computing elliptic integrals and other functions. For positive reals a and b the AGM is obtained by starting with a0=a, b0=b, then iterating the transformation , until an=bn to the precision required.