JacobiDN[u,m]
gives the Jacobi elliptic function
.
JacobiDN
JacobiDN[u,m]
gives the Jacobi elliptic function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
, where
.
a is doubly periodic function in u with periods
and
, where
is the elliptic integral EllipticK.- JacobiDN is a meromorphic function in both arguments.
- For certain special arguments, JacobiDN automatically evaluates to exact values.
- JacobiDN can be evaluated to arbitrary numerical precision.
- JacobiDN automatically threads over lists.
Examples
open all close allBasic Examples (4)
JacobiDN[4., 2 / 3]Plot the function for several values of the modulus m over a subset of the reals:
Plot[{JacobiDN[x, 1 / 3], JacobiDN[x, 2 / 3], JacobiDN[x, 1]}, {x, -4, 4}]Plot over a subset of the complexes:
ComplexPlot3D[JacobiDN[z, 1 / 3], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansions about the origin:
Series[JacobiDN[z, m], {z, 0, 6}]Series[JacobiDN[z, m], {m, 0, 2}]Scope (34)
Numerical Evaluation (5)
N[JacobiDN[3, 1 / 3], 50]The precision of the output tracks the precision of the input:
JacobiDN[3, 0.33333333333333333333333333333333333333]Evaluate for complex arguments:
JacobiDN[2.5 - I, 1 - I]Evaluate JacobiDN efficiently at high precision:
JacobiDN[3, 0.3`500]//TimingJacobiDN[3, 0.3`10000];//TimingCompute average-case statistical intervals using Around:
JacobiDN[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
JacobiDN[-(I π/3), {{1, 0}, {0, 1}}]Or compute the matrix JacobiDN function using MatrixFunction:
MatrixFunction[JacobiDN[-(I π/3), #]&, {{1, 0}, {0, 1}}]Specific Values (3)
Simple exact values are generated automatically:
{JacobiDN[z, 0], JacobiDN[z, 1]}{JacobiDN[0, m], JacobiDN[EllipticK[m] / 2, m], JacobiDN[EllipticK[m], m]}Some poles of JacobiDN:
{JacobiDN[-I EllipticK[1 - m], m], JacobiDN[I EllipticK[1 - m], m], JacobiDN[ 2EllipticK[m] + I EllipticK[1 - m], m]}Find a local maximum of JacobiDN as a root of
:
xmax = Solve[D[JacobiDN[x, 1 / 3], x] == 0 && 2.5 < x < 4, x][[1, 1, 2]]//QuietPlot[JacobiDN[x, 1 / 3], {x, -2, 6}, PlotRange -> {0, 1.2}, Epilog -> Style[Point[{xmax, JacobiDN[xmax, 1 / 3]}], PointSize[Large], Red]]Visualization (3)
Plot the JacobiDN functions for various parameter values:
Plot[{JacobiDN[x, -1], JacobiDN[x, 0.5], JacobiDN[x, 1], JacobiDN[x, 1.5], JacobiDN[x, 2]}, {x, -2π, 2π}]Plot JacobiDN as a function of its parameter
:
Plot[{JacobiDN[1, m], JacobiDN[2, m], JacobiDN[3, m]}, {m, -8, 8}]ComplexContourPlot[Re[JacobiDN[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[JacobiDN[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]Function Properties (8)
JacobiDN is
-periodic along the real axis:
JacobiDN[x, m] == JacobiDN[x + 2EllipticK[m], m]JacobiDN is
-periodic along the imaginary axis:
JacobiDN[x, m] == JacobiDN[x + 4I EllipticK[1 - m], m]JacobiDN is an even function in its first argument:
JacobiDN[-x, m] == JacobiDN[x, m]JacobiDN is an analytic function:
FunctionAnalytic[JacobiDN[x, m], {x, m}]It has no singularities or discontinuities:
FunctionSingularities[JacobiDN[x, m], {x, m}]FunctionDiscontinuities[JacobiDN[x, m], {x, m}]
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[JacobiDN[x, 3], x]
is not injective for any fixed
:
FunctionInjective[JacobiDN[x, m], x, Assumptions -> m > 1]Plot[{JacobiDN[x, 3], .5}, {x, -5, 5}]
is not surjective for any fixed
:
FunctionSurjective[JacobiDN[x, m], x, Assumptions -> m∈Reals]Plot[{JacobiDN[x, 3], 1.5}, {x, -5, 5}]FunctionSign[JacobiDN[x, m], x, Assumptions -> m <= 1]In general, it is neither non-negative nor non-positive:
FunctionSign[JacobiDN[x, m], {x, m}]JacobiDN is neither convex nor concave:
FunctionConvexity[JacobiDN[x, m], {x, m}]Differentiation (3)
D[JacobiDN[x, m], x]derivs = Table[D[JacobiDN[x, m], {x, n}], {n, 1, 4}]Plot[Evaluate[derivs /. m -> 1 / 3], {x, -5, 5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[JacobiDN[x, m], m]Integration (3)
Indefinite integral of JacobiDN:
Integrate[JacobiDN[z, m], z]Definite integral of JacobiDN over the interval centered at the origin:
Integrate[JacobiDN[z, 1 / 3], {z, -1, 1}]This is twice the integral over half the interval:
2Integrate[JacobiDN[z, 1 / 3], {z, 0, 1}]Integrate[JacobiDN[z, m]JacobiCN[z, m], z]Integrate[(JacobiDN[t, m]/1 + JacobiCN[t, m]), t]Integrate[JacobiDN[z, m] ^ 3, z]Series Expansions (3)
Series[JacobiDN[x, 1 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiDN[x, 1 / 3], {x, 0, n}], {n, 2, 7, 2}];
Plot[{JacobiDN[x, 1 / 3], terms}, {x, -1.5, 1.5}]Series[JacobiDN[1, m], {m, 0, 3}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiDN[1, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiDN[1, m], terms}, {m, -8, 8}]JacobiDN can be applied to a power series:
JacobiDN[ArcSin[x] + O[x] ^ 8, m]//SimplifyFunction Identities and Simplifications (3)
Parity transformations and periodicity relations are automatically applied:
JacobiDN[-u, m]JacobiDN[u + 2 EllipticK[m] + 4I EllipticK[1 - m], m]Identity involving JacobiSN:
JacobiDN[z, m]^2 + m JacobiSN[z, m]^2//FullSimplifyJacobiDN[z + EllipticK[m], m]JacobiDN[z + I EllipticK[1 - m], m]Function Representations (3)
D[JacobiAmplitude[z, m], z]Relation to other Jacobi elliptic functions:
JacobiDN[z, m] == (1/JacobiND[z, m])//FullSimplifyJacobiDS[z, m] JacobiSN[z, m]//FullSimplifyTraditionalForm formatting:
JacobiDN[z, m]//TraditionalFormApplications (9)
Cartesian coordinates of a pendulum:
x[t_] = 2ℓ Sin[(φ0/2)]JacobiSN[tSqrt[(g/ℓ)] , Sin[(φ0/2)]^2]JacobiDN[t Sqrt[(g/ℓ)] , Sin[(φ0/2)]^2];y[t_] = -ℓ(2 JacobiDN[tSqrt[(g/ℓ)], Sin[(φ0/2)]^2] ^ 2 - 1);Plot the time dependence of the coordinates:
Plot[Evaluate[{x[t], y[t]} /. {ℓ -> 1, g -> 9.81, φ0 -> Pi / 4}], {t, 0, 10}]ParametricPlot[Evaluate[{x[t], y[t]} /. {ℓ -> 1, g -> 9.81, φ0 -> Pi / 2}], {t, 0, 10}]Uniformization of a Fermat cubic
:
a[u_] := With[{m = Sin[(Pi/12)] ^ 2}, (2 3^1 / 4JacobiDN[u, m]JacobiSN[u, m] - (1 - JacobiCN[u, m])^2) / (2 3^1 / 4JacobiDN[u, m]JacobiSN[u, m] + (1 - JacobiCN[u, m])^2)];b[u_] := With[{m = Sin[(Pi/12)] ^ 2}, (2^11 / 6Sqrt[1 - m](1 - JacobiCN[u, m])(1 + Sqrt[(m/1 - m)]JacobiCN[u, m])) / (2 3^1 / 4JacobiDN[u, m]JacobiSN[u, m] + (1 - JacobiCN[u, m])^2)]a[u] ^ 3 + b[u] ^ 3 /. u -> RandomComplex[WorkingPrecision -> 20]Conformal map from a unit triangle to the unit disk:
w[z_] := With[{ζ = z(Gamma[1 / 3]^3/2^1 / 3 3^1 / 4 π), m = Sin[(π/12)] ^ 2}, 2^11 / 6Sqrt[1 - m](1 - JacobiCN[ζ, m])(1 + Sqrt[(m/1 - m)]JacobiCN[ζ, m]) /
(2 3^1 / 4JacobiDN[ζ, m]JacobiSN[ζ, m] + (1 - JacobiCN[ζ, m]) ^ 2)]Show points before and after the map:
trianglePoints = With[{t = E ^ (2 Pi I / 3)}, Flatten[Table[α / 8. Table[N[#1 + j / 16(#2 - #1)], {j, 0, 16}]&@@@({{1, t}, {t, 1 / t}, {1 / t, 1}} / Sqrt[3]), {α, 1, 8}]]];Row[{Graphics[Point[{Re[#], Im[#]}]& /@ trianglePoints, Frame -> True, ImageSize -> Small],
Graphics[Point[{Re[#], Im[#]}]& /@ w[trianglePoints], Frame -> True, ImageSize -> Small]}, Spacer[20]]Subscript[T, 1][z_] = -Sqrt[m ]JacobiSN[z, m] {{0, 1, 0}, {1, 0, 1}, {0, 1, 0}} / Sqrt[2];
Subscript[T, 2] [z_] = I Sqrt[m] JacobiCN[z, m] {{0, I, 0}, {-I, 0, I}, {0, -I, 0}} / Sqrt[2];
Subscript[T, 3][z_] = I JacobiDN[z, m] {{1, 0, 0}, {0, 0, 0}, {0, 0, -1}};Check that the solutions fulfill the Nahm equations:
Subsuperscript[T, 1, ′][z] - I (Subscript[T, 2][z]. Subscript[T, 3][z] - Subscript[T, 3][z].Subscript[T, 2][z])Subsuperscript[T, 2, ′][z] - I (Subscript[T, 3][z].Subscript[T, 1][z] - Subscript[T, 1][z]. Subscript[T, 3][z])Subsuperscript[T, 3, ′][z] - I (Subscript[T, 1][z]. Subscript[T, 2][z] - Subscript[T, 2][z].Subscript[T, 1][z])Periodic solution of the nonlinear Schrödinger equation
:
ψ[x_, t_] := r Exp[I(p x - (p ^ 2 - (2 - k ^ 2)r ^ 2)t)]JacobiDN[r x - 2 p r t, k ^ 2]Plot3D[Evaluate[Abs[ψ[x, t]] ^ 2 /. {r -> 2, p -> 1 / 3, k -> 1 / 2}], {x, -4, 4}, {t, 0, 2}]Parametrize a lemniscate by arc length [more info]:
lemniscate[s_] := {JacobiCN[Sqrt[2]s, 1 / 2]JacobiDN[Sqrt[2]s, 1 / 2], JacobiCN[Sqrt[2]s, 1 / 2]JacobiSN[Sqrt[2]s, 1 / 2] / Sqrt[2]}Show arc length parametrization and classical parametrization:
r[θ_] := If[Cos[2θ] > 0, Sqrt[Cos[2θ]], 0];Row[{ParametricPlot[{r[θ]Cos[θ], r[θ]Sin[θ]}, {θ, -Pi, Pi}, ImageSize -> Small],
ParametricPlot[Evaluate[lemniscate[s]], {s, 0, Gamma[1 / 4] ^ 2 / Sqrt[2Pi]}, ImageSize -> Small]}, Spacer[20]]Zero modes of the periodic supersymmetric partner potentials:
Subscript[V, + ][z_] := 2 - m + 2(m - 1) / JacobiDN[z, m]^2
Subscript[ψ, + ][z_] := 1 / JacobiDN[z, m]Subscript[V, - ][z_] := 2 - m - 2JacobiDN[z, m]^2
Subscript[ψ, - ][z_] := JacobiDN[z, m]Row[{Plot[Evaluate[{Subscript[V, + ][z], Subscript[ψ, + ][z]} /. m -> 1 / 2], {z, -4, 4}, ImageSize -> Small],
Plot[Evaluate[{Subscript[V, - ][z], Subscript[ψ, - ][z]} /. m -> 1 / 2], {z, -4, 4}, ImageSize -> Small]}, Spacer[20]]Complex parametrization of a "sphere":
ellipticSphere[{α_, β_}, m_] := { m^1 / 2JacobiSN[α, m]JacobiSN[β, m], I (m^1 / 2/(1 - m)^1 / 2) JacobiCN[α, m]JacobiCN[β, m], (1/(1 - m)^1 / 2) JacobiDN[α, m]JacobiDN[β, m]}Plot real and imaginary parts:
Row[{Plot3D[Evaluate[Re[ellipticSphere[{α, β}, 0.3]]], {α, 0, 1}, {β, 1, 2}, ImageSize -> Small],
Plot3D[Evaluate[Im[ellipticSphere[{α, β}, 0.3]]], {α, 0, 1}, {β, 1, 2}, ImageSize -> Small]}]Parametrization of a Mylar balloon (two flat sheets of plastic sewn together at their circumference and then inflated):
With[{kk = N[π CarlsonRK[2, 4]]},
ParametricPlot3D[{JacobiCN[u, (1/2)]Cos[v], JacobiCN[u, (1/2)]Sin[v],
(1/Sqrt[2])(u - (1/3)JacobiSN[u, (1/2)]^3CarlsonRD[JacobiCN[u, (1/2)]^2, JacobiDN[u, (1/2)]^2, 1])},
{u, -kk, kk}, {v, -π, π}, Exclusions -> None, PlotRange -> All]]Properties & Relations (3)
Compose with inverse functions:
{JacobiDN[InverseJacobiDN[z, m], m], InverseJacobiDN[JacobiDN[z, m], m]}Use PowerExpand to disregard multivaluedness of the inverse function:
PowerExpand[%]Evaluate as a result of applying D to JacobiAmplitude:
D[JacobiAmplitude[z, m], z]Solve a transcendental equation:
Solve[JacobiDN[x, m]^2 + 3JacobiDN[x, m] == a, x]//QuietPossible Issues (2)
Machine-precision input is insufficient to give the correct answer:
JacobiDN[10. ^ 15, 4 / 7]N[JacobiDN[10 ^ 15, 4 / 7], 20]Currently only simple simplification rules are built in for Jacobi functions:
JacobiDN[u, m] ^ 2 + m JacobiSN[u, m] ^ 2 - 1//FullSimplifyJacobiDN[u, m]JacobiNS[u, m]JacobiSD[u, m]//FullSimplifySee Also
Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), JacobiDN, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiDN.html.
CMS
Wolfram Language. 1988. "JacobiDN." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JacobiDN.html.
APA
Wolfram Language. (1988). JacobiDN. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiDN.html
BibTeX
@misc{reference.wolfram_2026_jacobidn, author="Wolfram Research", title="{JacobiDN}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiDN.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobidn, organization={Wolfram Research}, title={JacobiDN}, year={1988}, url={https://reference.wolfram.com/language/ref/JacobiDN.html}, note=[Accessed: 13-June-2026]}