JacobiCS[u,m]
gives the Jacobi elliptic function
.
JacobiCS
JacobiCS[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.- JacobiCS is a meromorphic function in both arguments.
- For certain special arguments, JacobiCS automatically evaluates to exact values.
- JacobiCS can be evaluated to arbitrary numerical precision.
- JacobiCS automatically threads over lists.
Examples
open all close allBasic Examples (5)
JacobiCS[0.2, 0.5]Plot the function over a subset of the reals:
Plot[JacobiCS[u, 1 / 3], {u, -6, 6}]Plot over a subset of the complexes:
ComplexPlot3D[JacobiCS[z, 1 / 3], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansions at the origin:
Series[JacobiCS[u, m], {u, 0, 5}]Series[JacobiCS[u, m], {m, 0, 1}]Series expansion at a singular point:
Series[JacobiCS[x, 1], {x, I π, 3}]Scope (34)
Numerical Evaluation (5)
Evaluate numerically to high precision:
N[JacobiCS[Pi / 3, 1 / 3], 50]The precision of the output tracks the precision of the input:
JacobiCS[Pi / 3, 0.3333333333333333333333333333333333]Evaluate for complex arguments:
JacobiCS[5.2 - 2.5I, 0.3 + I]Evaluate JacobiCS efficiently at high precision:
JacobiCS[Pi / 3, 0.3`500]//TimingJacobiCS[Pi / 3, 0.3`10000];//TimingCompute average-case statistical intervals using Around:
JacobiCS[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
JacobiCS[-(I π/3), {{1, 0}, {0, 1}}]Or compute the matrix JacobiCS function using MatrixFunction:
MatrixFunction[JacobiCS[-(I π/3), #]&, {{1, 0}, {0, 1}}]Specific Values (3)
Simple exact values are generated automatically:
{JacobiCS[z, 0], JacobiCS[z, 1]}{JacobiCS[EllipticK[m] / 2, m], JacobiCS[EllipticK[m], m], JacobiCS[3 I EllipticK[1 - m], m]}Some poles of JacobiCS:
{JacobiCS[0, m], JacobiCS[2EllipticK[m], m], JacobiCS[2I EllipticK[1 - m], m]}xzero = N@Solve[JacobiCS[x, 1 / 3] == 0 && 1.0 < x < 3.0, x][[1, 1, 2]]//QuietPlot[JacobiCS[x, 1 / 3], {x, -3, 5}, Epilog -> Style[Point[{xzero, JacobiCS[xzero, 1 / 3]}], PointSize[Large], Red]]Visualization (3)
Plot the JacobiCS functions for various parameter values:
Plot[{JacobiCS[x, 0], JacobiCS[x, 3], JacobiCS[x, -3]}, {x, -3.5, 3.5}]Plot JacobiCS as a function of its parameter
:
Plot[{JacobiCS[1, m], JacobiCS[3 / 2, m], JacobiCS[2, m]}, {m, -10, 10}]ComplexContourPlot[Re[JacobiCS[z, 1 / 2]], {z, -4 - 4 I, 4 + 4 I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[JacobiCS[z, 1 / 2]], {z, -4 - 4 I, 4 + 4 I}, IconizedObject[«PlotOptions»]]Function Properties (8)
JacobiCS is
-periodic along the real axis:
JacobiCS[x, m] == JacobiCS[x + 2EllipticK[m], m]JacobiCS is
-periodic along the imaginary axis:
JacobiCS[x, m] == JacobiCS[x + 4I EllipticK[1 - m], m]JacobiCS is an odd function in its first argument:
JacobiCS[-x, m] == -JacobiCS[x, m]JacobiCS is not an analytic function:
FunctionAnalytic[JacobiCS[x, m], {x, m}]It has both singularities and discontinuities:
FunctionSingularities[JacobiCS[x, m], {x, m}]FunctionDiscontinuities[JacobiCS[x, m], {x, m}]
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[JacobiCS[x, 3], x]
is not injective for any fixed
:
FunctionInjective[JacobiCS[x, m], x, Assumptions -> m < 1]FunctionInjective[JacobiCS[x, m], x, Assumptions -> m > 1]Plot[{JacobiCS[x, 1 / 3], 2}, {x, -5, 5}]FunctionInjective[JacobiCS[x, 1], x]Plot[{JacobiCS[x, 1], 2}, {x, -5, 5}]FunctionSurjective[JacobiCS[x, m], x, Assumptions -> m >= 1]Plot[{JacobiCS[x, 3], .5}, {x, -5, 5}]FunctionSurjective[JacobiCS[x, m], x, Assumptions -> m < 1]JacobiCS is neither non-negative nor non-positive:
FunctionSign[JacobiCS[x, m], {x, m}]JacobiCS is neither convex nor concave:
FunctionConvexity[JacobiCS[x, m], {x, m}]Differentiation (3)
D[JacobiCS[x, m], x]derivs = Table[D[JacobiCS[x, m], {x, n}], {n, 1, 4}]Plot[Evaluate[derivs /. m -> 1 / 3], {x, -3, 3}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[JacobiCS[x, m], m]Integration (3)
Indefinite integral of JacobiCS:
Integrate[JacobiCS[z, m], z]Definite integral of an odd function over the interval centered at the origin is 0:
Integrate[JacobiCS[z, 1 / 3], {z, -1, 1}, PrincipalValue -> True]Integrate[JacobiCS[z, m] JacobiDS[z, m], z]Integrate[1 / JacobiCS[z, m], z]Series Expansions (3)
Series[JacobiCS[x, 1 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@{Series[JacobiCS[x, 1 / 3], {x, 0, 0}], Series[JacobiCS[x, 1 / 3], {x, 0, 1}], Series[JacobiCS[x, 1 / 3], {x, 0, 3}]};
Plot[{JacobiCS[x, 1 / 3], terms}, {x, 0, 3}]Series[JacobiCS[1, m], {m, 0, 3}]//SimplifyPlot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiCS[1, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiCS[1, m], terms}, {m, -4, 4}, PlotLegends -> {"cs(1❘m)", "cot(1)-FractionBox[1, 8]SuperscriptBox[cot, 2](1)(sin(2)-2)m", "Second approximation", "Third approximation"}]JacobiCS can be applied to a power series:
JacobiCS[EllipticK[m] + ArcSin[x] + O[x] ^ 8, m]Function Identities and Simplifications (3)
JacobiCS[z, m] == (JacobiCN[z, m]/JacobiSN[z, m])//FullSimplifyParity transformation and periodicity relations are automatically applied:
JacobiCS[-u, m]JacobiCS[u + 2 EllipticK[m] + 4I EllipticK[1 - m], m]Automatic argument simplifications:
JacobiCS[z + EllipticK[m], m]JacobiCS[z + I EllipticK[1 - m], m]Function Representations (3)
Representation in terms of Cot of JacobiAmplitude:
Cot[JacobiAmplitude[z, m]]//FullSimplifyRelation to other Jacobi elliptic functions:
JacobiCS[z, m] == (1/JacobiSC[z, m])//FullSimplifyJacobiCS[z, m]^2 == m - 1 + JacobiDS[z, m]^2//FullSimplifyTraditionalForm formatting:
JacobiCS[z, m]//TraditionalFormApplications (5)
Hierarchy of solutions of the nonlinear diffusion equation
:
φ[0, y_] := JacobiDS[y, 1 / 2];
φ[n_, y_] := D[Log[φ[n - 1, y]], y];u[n_, {t_, x_}] := 2 x φ[n, y] /. y -> x^2 + 6 tTable[u[k, {t, x}], {k, 0, 2}]//Simplify(D[u[t, x], t] - D[u[t, x], x, x] + 2u[t, x] ^ 3 /. u -> Function[{t, x}, Evaluate[%]])//FullSimplifyFlow lines in a rectangular region with a current flowing from the lower‐right to the upper‐left corner:
With[{m = 0.4, ε = 1 / 10 ^ 6}, ContourPlot[(JacobiDN[x, m]JacobiDN[y, 1 - m]/JacobiCS[x, m]JacobiCS[y, 1 - m]), {x, ε, EllipticK[m]}, {y, ε, EllipticK[1 - m]}, ContourShading -> False]]Conformal map from a unit triangle to the unit disk:
w[z_] := With[{ζ = (z Gamma[1 / 3] ^ 3/2^1 / 33^1 / 4π), m = Sin[π / 12] ^ 2}, 2^11 / 6Cos[π / 12](1 - JacobiCS[ζ, m]JacobiSN[ζ, m])(1 + Tan[π / 12]JacobiCS[ζ, m]JacobiSN[ζ, m]) /
(2 3^1 / 4JacobiSN[ζ, m]JacobiDN[ζ, m] + (1 - JacobiCN[ζ, m]) ^ 2)]Show points before and after the map:
trianglePoints = With[{t = E ^ (2Pi I / 3)}, Flatten[Table[s / 8. Table[#1 + j / 16(#2 - #1), {j, 0, 16}]&@@@({{1, t}, {t, 1 / t}, {1 / t, 1}} / Sqrt[3]), {s, 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 sinh‐Gordon equation
:
u[x_, t_] := 2ArcSinh[JacobiCS[x - t, m]]FullSimplify[D[u[x, t], x, t] + Sinh[u[x, t]], JacobiNS[t - x, m] ^ 2 - JacobiCS[t - x, m] ^ 2 == 1]Plot3D[Evaluate[u[x, t] /. m -> 4 / 3], {x, -3, 2}, {t, 0, 5 / 2}]Construct 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 (2)
Compose with inverse functions:
{JacobiCS[InverseJacobiCS[z, m], m], InverseJacobiCS[JacobiCS[z, m], m]}Use PowerExpand to disregard multivaluedness of the inverse function:
PowerExpand[%]Solve a transcendental equation:
Solve[JacobiCS[x, m]^2 + 3JacobiCS[x, m] == a, x]//QuietPossible Issues (2)
Machine-precision input is insufficient to give the correct answer:
JacobiCS[10. ^ 15, 3 / 7]N[JacobiCS[10 ^ 15, 3 / 7], 20]Currently only simple simplification rules are built in for Jacobi functions:
JacobiCS[z, m] - (JacobiCN[z, m]/JacobiSN[z, m])FullSimplify[%]JacobiCS[u, m]^2 + JacobiCD[u, m]^2 (-1 + m - JacobiCS[u, m]^2)//FullSimplifySee Also
Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), JacobiCS, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiCS.html.
CMS
Wolfram Language. 1988. "JacobiCS." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JacobiCS.html.
APA
Wolfram Language. (1988). JacobiCS. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiCS.html
BibTeX
@misc{reference.wolfram_2026_jacobics, author="Wolfram Research", title="{JacobiCS}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiCS.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobics, organization={Wolfram Research}, title={JacobiCS}, year={1988}, url={https://reference.wolfram.com/language/ref/JacobiCS.html}, note=[Accessed: 12-June-2026]}