Elliptic integrals originally appeared in the calculation of arc lengths of ellipses.
Later it was found that a larger class of integrals could be reduced to three
kinds of elliptic integrals in Legendre form.
The Jacobi elliptic functions are the inverses of the elliptic
integrals. There are three Jacobi functions, sn, cn, and
dn. There are also 9 minor Jacobi functions
that are defined in terms of the first three.
The Special class
provides an implementation of complete and incomplete elliptic integrals of the first,
second and third kind.
Some ambiguity exists in the definition of these functions.
For functions that take one parameter, the parameter is the elliptic modulus.
For functions that takes two arguments, the additional parameter is the amplitude.
Method | Description |
---|
EllipticK |
Complete elliptic integral of the first kind K(k).
|
EllipticF |
Incomplete elliptic integral of the first kind F(φ,k).
|
EllipticE |
Complete elliptic integral of the second kind E(k).
|
EllipticE |
Incomplete elliptic integral of the second kind E(φ,k).
|
EllipticPi |
Complete elliptic integral of the third kind Π(n;k) with
characteristic n.
|
EllipticPi |
Incomplete elliptic integral of the third kind Π(n;φ,k) with
characteristic n.
|
Jacobi Elliptic Functions
The Special class
provides an implementation of the three major an nine minor Jacobi elliptic functions.
The second parameter of these functions has multiple definitions.
We use the modulus, k. The squared modulus, usually named m,
is also used, where m = k2.
The relationship between the parameterizations is as follows:
sn(u, k) = sn(u | m) = sn(u | k2),
cn(u, k) = cn(u | m) = cn(u | k2),
dn(u, k) = dn(u | m) = dn(u | k2).
The Jacobi elliptic functions have the form JacobiPQ,
where P and Q are one of the
4 letters, S, C,
D, N.
The main functions are
JacobiSN(Double, Double),
JacobiCN(Double, Double), and
JacobiDN(Double, Double).
The minor functions are
JacobiNS(Double, Double),
JacobiNC(Double, Double),
JacobiND(Double, Double)
(reciprocals of the main functions),
JacobiSC(Double, Double),
JacobiCS(Double, Double),
JacobiSD(Double, Double),
JacobiDS(Double, Double),
JacobiCD(Double, Double), and
JacobiDC(Double, Double).