JacobiCD[u,m]
gives the Jacobi elliptic function
.
JacobiCD
JacobiCD[u,m]
gives the Jacobi elliptic function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
, where
.
is a doubly periodic function in u with periods
and
, where
is the elliptic integral EllipticK.- JacobiCD is a meromorphic function in both arguments.
- For certain special arguments, JacobiCD automatically evaluates to exact values.
- JacobiCD can be evaluated to arbitrary numerical precision.
- JacobiCD automatically threads over lists.
Examples
open all close allBasic Examples (4)
JacobiCD[3.14, 0.3]Plot the function over a subset of the reals:
Plot[JacobiCD[x, 1 / 3], {x, -6, 6}]Plot over a subset of the complexes:
ComplexPlot3D[JacobiCD[z, 1 / 3], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansions at the origin:
Series[JacobiCD[z, m], {z, 0, 6}]Series[JacobiCD[z, m], {m, 0, 1}]Scope (34)
Numerical Evaluation (5)
N[JacobiCD[3, 1 / 2], 50]The precision of the output tracks the precision of the input:
JacobiCD[3, 0.500000000000000000000000000000000000000]Evaluate for complex arguments:
JacobiCD[2.5 + I, 0.2 - 0.3 I]Evaluate JacobiCD efficiently at high precision:
JacobiCD[2, 0.3`500]//TimingJacobiCD[2, 0.3`10000];//TimingCompute average-case statistical intervals using Around:
JacobiCD[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
JacobiCD[-(π/3), {{1, 0}, {0, 1}}]Or compute the matrix JacobiCD function using MatrixFunction:
MatrixFunction[JacobiCD[-(π/3), #]&, {{1, 0}, {0, 1}}]Specific Values (3)
Simple exact answers are generated automatically:
{JacobiCD[z, 0], JacobiCD[z, 1]}{JacobiCD[0, m], JacobiCD[EllipticK[m] / 2, m], JacobiCD[EllipticK[m], m]}Some poles of JacobiCD:
{JacobiCD[EllipticK[m] + I EllipticK[1 - m], m], JacobiCD[3EllipticK[m] + I EllipticK[1 - m], m], JacobiCD[3EllipticK[m] + 3 I EllipticK[1 - m], m]}xzero = N@Solve[JacobiCD[x, 1 / 3] == 0 && 1 < x < 2, x][[1, 1, 2]]//QuietPlot[JacobiCD[x, 1 / 3], {x, -π, 2π}, Epilog -> Style[Point[{xzero, JacobiCD[xzero, 1 / 3]}], PointSize[Large], Red]]Visualization (3)
Plot the JacobiCD functions for various values of parameter:
Plot[{JacobiCD[x, 0], JacobiCD[x, 0.8], JacobiCD[x, 3], JacobiCD[x, -3]}, {x, -2π, 2π}]Plot JacobiCD as a function of its parameter
:
Plot[{JacobiCD[1, m], JacobiCD[2, m], JacobiCD[3, m]}, {m, -10, 10}]ComplexContourPlot[Re[JacobiCD[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[JacobiCD[z, 1 / 2]], {z, -8 - 8 I, 8 + 8 I}, IconizedObject[«PlotOptions»]]Function Properties (8)
JacobiCD is
-periodic along the real axis:
JacobiCD[x, m] == JacobiCD[x + 4EllipticK[m], m]JacobiCD is
-periodic along the imaginary axis:
JacobiCD[x, m] == JacobiCD[x + 2I EllipticK[1 - m], m]JacobiCD is an even function in its first argument:
JacobiCD[-x, m] == JacobiCD[x, m]
is an analytic function of
for
:
FunctionAnalytic[JacobiCD[x, m], x, Assumptions -> m <= 1]It is not, in general, an analytic function:
FunctionAnalytic[JacobiCD[x, m], {x, m}]//QuietIt has both singularities and discontinuities for
:
FunctionSingularities[JacobiCD[x, m], {x, m}]FunctionDiscontinuities[JacobiCD[x, m], {x, m}]
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[JacobiCD[x, 1 / 3], x]
is not injective for any fixed
:
FunctionInjective[JacobiCD[x, m], x, Assumptions -> m < 1]FunctionInjective[JacobiCD[x, m], x, Assumptions -> m > 1]FunctionInjective[JacobiCD[x, 1], x]Plot[{JacobiCD[x, 3], .5}, {x, -10, 10}]
is not surjective for any fixed
:
FunctionSurjective[JacobiCD[x, m], x, Assumptions -> m∈Reals]Plot[{JacobiCD[x, 1 / 3], -1.5}, {x, -10, 10}]JacobiCD is neither non-negative nor non-positive:
FunctionSign[JacobiCD[x, m], {x, m}]JacobiCD is neither convex nor concave:
FunctionConvexity[JacobiCD[x, m], {x, m}]Differentiation (3)
D[JacobiCD[x, m], x]derivs = Table[D[JacobiCD[x, m], {x, n}], {n, 1, 3}]Plot[Evaluate[derivs /. m -> 1 / 3], {x, -6, 6}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative"}]D[JacobiCD[x, m], m]Integration (3)
Indefinite integral of JacobiCD:
Integrate[JacobiCD[z, m], z]Definite integral of an even integrand over the interval centered at the origin:
Integrate[JacobiCD[z, 1 / 3], {z, -1, 1}]This is twice the integral over half the interval:
2 Integrate[JacobiCD[z, 1 / 3], {z, 0, 1}] == Integrate[JacobiCD[z, 1 / 3], {z, -1, 1}]//FullSimplifyIntegrate[JacobiCD[z, m] JacobiSN[z, m], z]Integrate[JacobiCD[z, m] ^ 3, z]//FullSimplifySeries Expansions (3)
Series[JacobiCD[x, 1 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiCD[x, 1 / 3], {x, 0, n}], {n, 2, 7, 2}];
Plot[{JacobiCD[x, 1 / 3], terms}, {x, -2.5, 2.5}]Series[JacobiCD[1, m], {m, 0, 3}]//SimplifyPlot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiCD[1, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiCD[1, m], terms}, {m, -2, 2}]JacobiCD can be applied to a power series:
JacobiCD[u, m + m ^ 2 + O[m] ^ 3]//SimplifyFunction Identities and Simplifications (3)
JacobiCD[z, m] == (JacobiCN[z, m]/JacobiDN[z, m])//FullSimplifyParity transformations and periodicity relations are automatically applied:
JacobiCD[-u, m]JacobiCD[u + 4 EllipticK[m] + 2I EllipticK[1 - m], m]Automatic argument simplifications:
JacobiCD[z + I EllipticK[1 - m], m]JacobiCD[z + EllipticK[m], m]Function Representations (3)
Representation in terms of trigonometry functions and JacobiAmplitude:
JacobiCD[z, m]^2 == (Cos[JacobiAmplitude[z, m]]^2/1 - m Sin[JacobiAmplitude[z, m]]^2)//FullSimplifyRelation to other Jacobi elliptic functions:
JacobiCD[z, m] == (1/JacobiDC[z, m])//FullSimplifyJacobiCD[z, m]^2 == (1 - (1 - m) JacobiND[z, m]^2/m)//FullSimplifyTraditionalForm formatting:
JacobiCD[u, m]//TraditionalFormApplications (4)
Derivatives of Jacobi elliptic functions with respect to parameter
:
D[JacobiSN[u, m], m]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 / 6 Sqrt[1 - m] (1 - JacobiCD[ζ, m] JacobiDN[ζ, m]) (1 + Sqrt[(m/1 - m)] JacobiCD[ζ, m] JacobiDN[ζ, m])) / ((-1 + JacobiCD[ζ, m] JacobiDN[ζ, m])^2 + 2 3^1 / 4 JacobiDN[ζ, m] JacobiSN[ζ, m])]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]), {α, 8}]]];Row[{Graphics[Point[{Re[#], Im[#]}]& /@ trianglePoints, Frame -> True, ImageSize -> Small],
Graphics[Point[{Re[#], Im[#]}]& /@ w[trianglePoints], Frame -> True, ImageSize -> Small]}, Spacer[20]]Solution of the Poisson–Boltzmann equation
:
ψ[x_, y_] = 4 ArcTanh[Sqrt[1 + (2/-1 + α^2 + β^2)] JacobiCD[x α, ((1 + α^2)^2 - β^4/4 α^2)] JacobiCD[y β, (-α^4 + (1 + β^2)^2/4 β^2)]JacobiDN[x α, ((1 + α^2)^2 - β^4/4 α^2)] JacobiDN[y β, (-α^4 + (1 + β^2)^2/4 β^2)]];Check solution using series expansion:
Series[Subscript[∂, x, x]ψ[x, y] + Subscript[∂, y, y]ψ[x, y] - Sinh[ψ[x, y]], {x, 0, 3}, {y, 0, 3}]//NormalConstruct lowpass elliptic filter for analog signal:
𝒩 = 5;ωPass = 4.8;ℊPass = 0.92;ℊStop = 0.08;Compute filter ripple parameters and associate elliptic function parameter:
ϵp = Sqrt[ℊPass^-2 - 1];ϵs = Sqrt[ℊStop^-2 - 1];
m1 = (ϵp / ϵs)^2;
K1 = EllipticK[m1];
K1p = EllipticK[1 - m1];Use elliptic degree equation to find the ratio of the pass and the stop frequencies:
us = Range[1, 2⌊(𝒩/2)⌋ - 1, 2] / 𝒩;
m = 1 - (1 - m1) ^ 𝒩 Apply[Times, JacobiSN[us K1p, 1 - m1] ^ 8]Compute corresponding stop frequency and elliptic parameters:
K = EllipticK[m];Kp = EllipticK[1 - m];
ωStop = ωPass / Sqrt[m]Compute ripple locations and poles and zeros of the transfer function:
ζs = JacobiCD[us K, m];
zeros = I ωStop / ζs;Compute poles of the transfer function:
Subscript[ν, 0] = (1/𝒩 K1)InverseJacobiSC[(1/ϵp), 1 - m1];
poles = ωPass I JacobiCD[(us - I Subscript[ν, 0])K, m];Assemble the transfer function:
H[ω_] = Piecewise[{{ℊPass, Mod[𝒩, 2] == 0}, {(1/1 + I ω / ωPass JacobiCS[Subscript[ν, 0] K, 1 - m]), Mod[𝒩, 2] == 1}}] Apply[Times, ((1 - I ω / zeros)(1 - I ω / Conjugate[zeros])/(1 - I ω / poles)(1 - I ω / Conjugate[poles]))];Plot[Abs[H[ω]], {ω, 0, 8}, PlotRange -> All, Epilog -> {Pink, Dashed, Line[{{0, ℊPass}, {ωPass, ℊPass}, {ωPass, ℊStop}}], Line[{{ωStop, ℊPass}, {ωStop, ℊStop}, {10, ℊStop}}]}]Compare with the result of EllipticFilterModel:
tf = EllipticFilterModel[{"Lowpass", {ωPass, ωStop}, -20Log10[{ℊPass, ℊStop}]}];Plot[Abs[tf[I ω]], {ω, 0, 8}]Properties & Relations (3)
Compose with inverse functions:
{JacobiCD[InverseJacobiCD[z, m], m], InverseJacobiCD[JacobiCD[z, m], m]}Use PowerExpand to disregard multivaluedness of the inverse function:
PowerExpand[%]Solve a transcendental equation:
Solve[JacobiCD[x, m]^2 + 3JacobiCD[x, m] == a, x]Integrate[JacobiCD[z, m], z]Possible Issues (2)
Machine-precision input is insufficient to give the correct answer:
JacobiCD[10. ^ 16, 2 / 7]N[JacobiCD[10 ^ 16, 2 / 7], 20]Currently only simple simplification rules are built in for Jacobi functions:
JacobiCD[z, m] - (JacobiCN[z, m]/JacobiDN[z, m])FullSimplify[%]1 - JacobiSN[u, m]^2 + JacobiCD[u, m]^2 (-1 + m JacobiSN[u, m]^2)//FullSimplifyTech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), JacobiCD, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiCD.html.
CMS
Wolfram Language. 1988. "JacobiCD." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JacobiCD.html.
APA
Wolfram Language. (1988). JacobiCD. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiCD.html
BibTeX
@misc{reference.wolfram_2026_jacobicd, author="Wolfram Research", title="{JacobiCD}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiCD.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobicd, organization={Wolfram Research}, title={JacobiCD}, year={1988}, url={https://reference.wolfram.com/language/ref/JacobiCD.html}, note=[Accessed: 12-June-2026]}