JacobiDS[u,m]
gives the Jacobi elliptic function
.
JacobiDS
JacobiDS[u,m]
gives the Jacobi elliptic function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
, where
.
is a doubly periodic function in
with periods
and
, where
is the elliptic integral EllipticK.- JacobiDS is a meromorphic function in both arguments.
- For certain special arguments, JacobiDS automatically evaluates to exact values.
- JacobiDS can be evaluated to arbitrary numerical precision.
- JacobiDS automatically threads over lists.
Examples
open all close allBasic Examples (4)
JacobiDS[2.5, 0.5]Plot the function over a subset of the reals:
Plot[JacobiDS[u, 1 / 3], {u, -6, 6}]Plot over a subset of the complexes:
ComplexPlot3D[JacobiDS[z, 1 / 5], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansions at the origin:
Series[JacobiDS[z, m], {z, 0, 7}]Series[JacobiDS[z, m], {m, 0, 1}]Scope (34)
Numerical Evaluation (5)
Evaluate numerically to high precision:
N[JacobiDS[2, 1 / 3], 50]The precision of the output tracks the precision of the input:
JacobiDS[2, 0.33333333333333333333333333333333333333]Evaluate for complex arguments:
JacobiDS[1.5 + 0.5I, 1 - I]Evaluate JacobiDS efficiently at high precision:
JacobiDS[3, 0.3`500]//TimingJacobiDS[3, 0.3`10000];//TimingCompute average-case statistical intervals using Around:
JacobiDS[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
JacobiDS[-(I π/3), {{1, 0}, {0, 1}}]Or compute the matrix JacobiDS function using MatrixFunction:
MatrixFunction[JacobiDS[-(I π/3), #]&, {{1, 0}, {0, 1}}]Specific Values (3)
Simple exact values are generated automatically:
{JacobiDS[z, 0], JacobiDS[z, 1]}{JacobiDS[EllipticK[m] / 2, m], JacobiDS[I EllipticK[1 - m], m], JacobiDS[EllipticK[m], m]}Some poles of JacobiDS:
{JacobiDS[0, m], JacobiDS[2EllipticK[m], m], JacobiDS[2I EllipticK[1 - m], m]}Find a local minimum of JacobiDS as a root of
:
xmin = Solve[D[JacobiDS[x, 1 / 3], x] == 0 && 1.0 < x < 3.0, x][[1, 1, 2]]//QuietPlot[JacobiDS[x, 1 / 3], {x, -2, 5}, Epilog -> Style[Point[{xmin, JacobiDS[xmin, 1 / 3]}], PointSize[Large], Red]]Visualization (3)
Plot the JacobiDS functions for various parameter values:
Plot[{JacobiDS[x, 0], JacobiDS[x, 4 / 5], JacobiDS[x, 1], JacobiDS[x, 3]}, {x, -5, 5}]Plot JacobiDS as a function of its parameter
:
Plot[{JacobiDS[1, m], JacobiDS[2, m], JacobiDS[3, m]}, {m, -6, 6}]ComplexContourPlot[Re[JacobiDS[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[JacobiDS[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]Function Properties (8)
JacobiDS is
-periodic along the real axis:
JacobiDS[x, m] == JacobiDS[x + 4EllipticK[m], m]JacobiDS is
-periodic along the imaginary axis:
JacobiDS[x, m] == JacobiDS[x + 4I EllipticK[1 - m], m]JacobiDS is an odd function in its first argument:
JacobiDS[-x, m] == -JacobiDS[x, m]JacobiDS is not an analytic function:
FunctionAnalytic[JacobiDS[x, m], {x, m}]It has both singularities and discontinuities:
FunctionSingularities[JacobiDS[x, m], {x, m}]FunctionDiscontinuities[JacobiDS[x, m], {x, m}]
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[JacobiDS[x, 1 / 3], x]
is not injective for any fixed
:
FunctionInjective[JacobiDS[x, m], x, Assumptions -> m > 1]FunctionInjective[JacobiDS[x, m], x, Assumptions -> m < 1]Plot[{JacobiDS[x, 1 / 3], 2}, {x, -5, 5}]FunctionInjective[JacobiDS[x, 1], x]Plot[{JacobiDS[x, 1], 2}, {x, -5, 5}]FunctionSurjective[JacobiDS[x, m], x, Assumptions -> m <= 1]Plot[{JacobiDS[x, 1 / 3], 0.2}, {x, -5, 5}]FunctionSurjective[JacobiDS[x, m], x, Assumptions -> m > 1]JacobiDS neither non-negative nor non-positive:
FunctionSign[JacobiDS[x, m], {x, m}]JacobiDS is neither convex nor concave:
FunctionConvexity[JacobiDS[x, m], {x, m}]Differentiation (3)
D[JacobiDS[x, m], x]derivs = Table[D[JacobiDS[x, m], {x, n}], {n, 1, 4}]//FullSimplifyPlot[Evaluate[derivs /. m -> 1 / 3], {x, -5, 5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[JacobiDS[x, m], m]Integration (3)
Indefinite integral of JacobiDS:
Integrate[JacobiDS[z, m], z]Definite integral of an odd function over the interval centered at the origin is 0:
Integrate[JacobiDS[z, 1 / 3], {z, -1, 1}, PrincipalValue -> True]Integrate[JacobiDS[z, m]JacobiSN[z, m], z]Integrate[(JacobiDS[t, m]/1 + JacobiCS[t, m]), t]Series Expansions (3)
Series[JacobiDS[x, 1 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@{Series[JacobiDS[x, 1 / 3], {x, 0, 0}], Series[JacobiDS[x, 1 / 3], {x, 0, 1}], Series[JacobiDS[x, 1 / 3], {x, 0, 3}]};
Plot[{JacobiDS[x, 1 / 3], terms}, {x, 0, 2.5}]Series[JacobiDS[1, m], {m, 0, 3}]//FullSimplifyPlot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiDS[1, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiDS[1, m], terms}, {m, -8, 8}]JacobiDS can be applied to a power series:
JacobiDS[ArcSin[z] + O[z] ^ 10, m]Function Identities and Simplifications (3)
Parity transformation and periodicity relations are automatically applied:
JacobiDS[-u, m]JacobiDS[u + 4EllipticK[m] + 4I EllipticK[1 - m], m]Identity involving JacobiCS:
JacobiDS[z, m]^2 - JacobiCS[z, m]^2 + m//FullSimplifyJacobiDS[z + EllipticK[m], m]JacobiDS[z + EllipticK[m] + I EllipticK[1 - m], m]Function Representations (3)
Representation in terms of Csc of JacobiAmplitude:
JacobiDS[z, m]^2 == -m + Csc[JacobiAmplitude[z, m]]^2//FullSimplifyRelation to other Jacobi elliptic functions:
JacobiDN[z, m] == (1/JacobiND[z, m])//FullSimplifyJacobiDS[z, m] == (JacobiDN[z, m]/JacobiSN[z, m])//FullSimplifyTraditionalForm formatting:
JacobiDS[u, m]//TraditionalFormApplications (5)
Conformal map from a rectangle to the unit disk:
w[z_, {a_, b_}] := With[{m = InverseEllipticNomeQ[Exp[-Pi 2 b / a]]}, -(JacobiDN[EllipticK[m](z/a), m] - I JacobiDS[EllipticK[m](z/a), m]/JacobiDN[EllipticK[m](z/a), m] + I JacobiDS[EllipticK[m](z/a), m])]points = With[{pp = 25, a = 1., b = 2.},
Flatten[Table[x + I y, {x, -a, a, 2a / pp}, {y, 0, 2 b, 2b / pp}], 1]];Row[Table[Graphics[Point[{Re[#], Im[#]}]& /@ f[points], PlotRange -> All, AspectRatio -> 1, Frame -> True, ImageSize -> Small], {f, {Identity, w[#, {1, 2}]&}}], Spacer[20]]Generator for the hierarchy of solutions of the nonlinear diffusion equation
:
φ[0, y_] := JacobiDS[y, 1 / 2];
φ[n_, y_] := D[φ[n - 1, y], y] / φ[n - 1, y]
u[n_, {t_, x_}] := 2 x φ[n, y] /. y -> x^2 + 6 tTable[u[k, {t, x}], {k, 0, 2}]//SimplifyNumerical check of the solutions:
D[%, t] - D[%, x, x] + 2% ^ 3 /. {x -> 2, t -> N[3, 100]}Conformal map from an ellipse to the unit disk:
w[z_, {a_, b_}] := Block[{m = InverseEllipticNomeQ[(a - b) ^ 2 / (a + b) ^ 2], u}, u = 2 EllipticK[m] / Pi ArcSin[z / Sqrt[a ^ 2 - b ^ 2]];m^1 / 2JacobiDN[u, m] / JacobiDS[u, m]]points = With[{a = 2}, Flatten[Table[r / 8. (a Cos[φ] + I Sin[φ]), {r, 8}, {φ, 0, 2Pi, 2Pi / 36}], 1]];Row[Table[Graphics[Point[{Re[#], Im[#]}]& /@ f[points], PlotRange -> All, Frame -> True, ImageSize -> Small], {f, {Identity, w[#, {2., 1}]&}}], Spacer[20]]Cartesian coordinates of a pendulum:
With[{ω = Sqrt[(g/ℓ)], m = Sin[φ0 / 2]^2}, x[t_] = 2ℓ Sin[φ0 / 2]JacobiDN[ω t, m] ^ 2 / JacobiDS[ω t, m];y[t_] = -ℓ(2 JacobiDN[ω t, m] ^ 2 - 1)];Plot the time‐dependence of the coordinates:
Plot[Evaluate[{x[t], y[t]} /. {ℓ -> 1, g -> 9.81, φ0 -> Pi / 4}], {t, 0.1, 12}]ParametricPlot[Evaluate[{x[t], y[t]} /. {ℓ -> 1, g -> 9.81, φ0 -> Pi / 2}], {t, 0.1, 12}]Parameterization of Costa's minimal surface [MathWorld]:
x[w_, m_] := With[{c = 2EllipticK[m]}, Re[((π/2) + (c^2/4))w - (c/2)(JacobiEpsilon[c w, m] + JacobiCN[c w, m] JacobiDS[c w, m]) - (π/4c)JacobiSD[c w, m](JacobiNC[c w, m] + JacobiCN[c w, m])]];y[w_, m_] := With[{c = 2EllipticK[m]}, Im[((π/2) - (c^2/4))w + (c/2)(JacobiEpsilon[c w, m] + JacobiCN[c w, m] JacobiDS[c w, m]) - (π/4c)JacobiSD[c w, m](JacobiNC[c w, m] + JacobiCN[c w, m])]];z[w_, m_] := With[{c = 2EllipticK[m]}, Sqrt[(π/8)]Log[Abs[JacobiCN[c w, m]^2]]];ParametricPlot3D[With[{w = u + I v}, {x[w, 1 / 2], y[w, 1 / 2], z[w, 1 / 2]}], {u, 0, 1}, {v, 0, 1}, Mesh -> False]Properties & Relations (2)
Compose with inverse functions:
{JacobiDS[InverseJacobiDS[z, m], m], InverseJacobiDS[JacobiDS[z, m], m]}Use PowerExpand to disregard multivaluedness of the inverse function:
PowerExpand[%]Solve a transcendental equation:
Solve[JacobiDS[x, m]^2 + 3JacobiDS[x, m] == a, x]//QuietPossible Issues (2)
Machine-precision input is insufficient to give the correct answer:
JacobiDS[10. ^ 15, 6 / 7]N[JacobiDS[10 ^ 15, 6 / 7], 20]Currently only simple simplification rules are built in for Jacobi functions:
1 - JacobiDS[u, m]^2(JacobiCD[u, m]^2 + JacobiSD[u, m]^2) JacobiSN[u, m]^2// FullSimplifySee Also
Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), JacobiDS, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiDS.html.
CMS
Wolfram Language. 1988. "JacobiDS." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JacobiDS.html.
APA
Wolfram Language. (1988). JacobiDS. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiDS.html
BibTeX
@misc{reference.wolfram_2026_jacobids, author="Wolfram Research", title="{JacobiDS}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiDS.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobids, organization={Wolfram Research}, title={JacobiDS}, year={1988}, url={https://reference.wolfram.com/language/ref/JacobiDS.html}, note=[Accessed: 12-June-2026]}