JacobiSN[u,m]
gives the Jacobi elliptic function
.
JacobiSN
JacobiSN[u,m]
gives the Jacobi elliptic function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
, where
and
is the amplitude.
is a doubly periodic function in
with periods
and
, where
is the elliptic integral EllipticK.- JacobiSN is a meromorphic function in both arguments.
- For certain special arguments, JacobiSN automatically evaluates to exact values.
- JacobiSN can be evaluated to arbitrary numerical precision.
- JacobiSN automatically threads over lists.
Examples
open all close allBasic Examples (3)
Scope (34)
Numerical Evaluation (5)
N[JacobiSN[2, 1 / 3], 50]The precision of the output tracks the precision of the input:
JacobiSN[2, 0.333333333333333333333333333333333333333333]Evaluate for complex arguments:
JacobiSN[2.5 + I, 1 - I]Evaluate JacobiSN efficiently at high precision:
JacobiSN[2, 0.3`500]//TimingJacobiSN[2, 0.3`10000];//TimingCompute average-case statistical intervals using Around:
JacobiSN[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
JacobiSN[-(I π/3), {{1, 0}, {0, 1}}]Or compute the matrix JacobiSN function using MatrixFunction:
MatrixFunction[JacobiSN[-(I π/3), #]&, {{1, 0}, {0, 1}}]Specific Values (3)
Simple exact values are generated automatically:
{JacobiSN[z, 0], JacobiSN[z, 1]}{JacobiSN[0, m], JacobiSN[EllipticK[m] / 2, m], JacobiSN[EllipticK[m], m]}Some poles of JacobiSN:
{JacobiSN[-3I EllipticK[1 - m], m], JacobiSN[-I EllipticK[1 - m], m], JacobiSN[I EllipticK[1 - m], m], JacobiSN[3I EllipticK[1 - m], m]}xzero = N@Solve[JacobiSN[x, 1 / 3] == 0 && 2 < x < 5, x][[1, 1, 2]]//QuietPlot[JacobiSN[x, 1 / 3], {x, -π, 2π}, Epilog -> Style[Point[{xzero, JacobiSN[xzero, 1 / 3]}], PointSize[Large], Red]]Visualization (3)
Plot the JacobiSN functions for various values of parameter:
Plot[{JacobiSN[x, 0], JacobiSN[x, 0.8], JacobiSN[x, 1], JacobiSN[x, 4]}, {x, -2π, 2π}]Plot JacobiSN as a function of its parameter
:
Plot[{JacobiSN[1, m], JacobiSN[2, m], JacobiSN[3, m]}, {m, -7, 10}]ComplexContourPlot[Re[JacobiSN[z, 1 / 2]], {z, -4 - 4I, 4 + 4I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[JacobiSN[z, 1 / 2]], {z, -4 - 4I, 4 + 4I}, IconizedObject[«PlotOptions»]]Function Properties (8)
JacobiSN is
-periodic along the real axis:
JacobiSN[x, m] == JacobiSN[x + 4EllipticK[m], m]JacobiSN is
-periodic along the imaginary axis:
JacobiSN[x, m] == JacobiSN[x + 2I EllipticK[1 - m], m]JacobiSN is an odd function in its first argument:
JacobiSN[-x, m] == -JacobiSN[x, m]JacobiSN is an analytic function:
FunctionAnalytic[JacobiSN[x, m], {x, m}]It has no singularities or discontinuities:
FunctionSingularities[JacobiSN[x, m], {x, m}]FunctionDiscontinuities[JacobiSN[x, 3], {x, m}]
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[JacobiSN[x, 1 / 3], x]
is not injective for any fixed
:
FunctionInjective[JacobiSN[x, m], x, Assumptions -> m > 1]FunctionInjective[JacobiSN[x, m], x, Assumptions -> m < 1]Plot[{JacobiSN[x, 1 / 3], .5}, {x, -10, 10}]FunctionInjective[JacobiSN[x, 1], x]Plot[{JacobiSN[x, 1], .5}, {x, -10, 10}]
is not surjective for any fixed
:
FunctionSurjective[JacobiSN[x, m], x, Assumptions -> m∈Reals]Plot[{JacobiSN[x, 3], 1.5}, {x, -5, 5}]JacobiSN is neither non-negative nor non-positive:
FunctionSign[JacobiSN[x, m], {x, m}]JacobiSN is neither convex nor concave:
FunctionConvexity[JacobiSN[x, m], {x, m}]Differentiation (3)
D[JacobiSN[x, m], x]derivs = Table[D[JacobiSN[x, m], {x, n}], {n, 1, 4}]//FullSimplifyPlot[Evaluate[derivs /. m -> 1 / 3], {x, -6, 6}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[JacobiSN[x, m], m]Integration (3)
Indefinite integral of JacobiSN:
Integrate[JacobiSN[z, m], z]Definite integral of an odd integrand over the interval centered at the origin is
:
Integrate[JacobiSN[z, 1 / 3], {z, -1, 1}]Integrate[JacobiSN[z, m]JacobiDN[z, m], z]Integrate[(JacobiSN[t, m]/JacobiDN[t, m]), t]Integrate[JacobiSN[z, m] ^ 3, z]Series Expansions (3)
Series[JacobiSN[x, 1 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiSN[x, 1 / 3], {x, 0, n}], {n, 2, 7, 2}];
Plot[{JacobiSN[x, 1 / 3], terms}, {x, -2, 2}]Series[JacobiSN[2, m], {m, 0, 2}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiSN[2, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiSN[2, m], terms}, {m, -2, 2}]JacobiSN can be applied to power series:
JacobiSN[ArcSin[x] + O[x]^7, m]Function Identities and Simplifications (3)
Parity transformation and periodicity relations are automatically applied:
JacobiSN[-u, m]JacobiSN[u + 4EllipticK[m] + 2 I EllipticK[1 - m], m]Automatic argument simplifications:
JacobiSN[z + EllipticK[m], m]JacobiSN[z + I EllipticK[1 - m], m]Identity involving JacobiCN:
JacobiCN[z, m] ^ 2 + JacobiSN[z, m] ^ 2//FullSimplifyFunction Representations (3)
Representation in terms of Sin of JacobiAmplitude:
Sin[JacobiAmplitude[z, m]]Relation to other Jacobi elliptic functions:
(JacobiCD[z, m]^2 - 1/m JacobiCD[z, m]^2 - 1)//FullSimplifyJacobiSN[z, m]^2 == (1/1 + JacobiCS[z, m]^2)//FullSimplifyTraditionalForm formatting:
JacobiSN[z, m]//TraditionalFormApplications (11)
Map a rectangle conformally onto the upper half-plane:
Module[{n = 24, m = 0.3`20, p}, p = Flatten[Table[(2j / n - 1)EllipticK[m] + k / n I EllipticK[1 - m], {j, 0, n}, {k, 0, n}]];Row[{Graphics[Point[ReIm /@ p], Frame -> True, ImageSize -> Small], Graphics[Point[ReIm /@ Select[JacobiSN[p, m], NumberQ]], Frame -> True, ImageSize -> Small]}, Spacer[20]]]Conformally map a square image onto a disk:
img = ExampleData[{"TestImage", "Mandrill"}];
With[{ω = N[3Beta[5 / 4, 5 / 4] / 2]}, ImageForwardTransformation[img, With[{z = ω(#[[1]] + I #[[2]])}, ReIm[JacobiSN[z, 1 / 2]JacobiDC[z, 1 / 2]]]&, Background -> 1., DataRange -> {{-1, 1}, {-1, 1}}]]Solution of the pendulum equation:
α[t_, ϕ_] = 2ArcSin[Sin[ϕ / 2]JacobiSN[t, Sin[ϕ / 2] ^ 2]]D[α[t, 2], t, t] + Sin[α[t, 2]] /. t -> N[2, 100]Plot[{α[t, Pi / 3], α[t, Pi / 2], α[t, 99 / 100Pi]}, {t, 0, 10}]Cnoidal solution of the Korteweg–De Vries equation:
f[x_, t_] = (1/m EllipticK[m])Sqrt[(a/m)](12a t EllipticE[m] + (4a (-2 + m) t + m (x - 6t β)) EllipticK[m]);
u[x_, t_] = -2a + (2a/m) + β - (2a EllipticE[m]/m EllipticK[m]) + 2a(1 - JacobiSN[f[x, t], m]^2);A numerical check of the solution:
D[u[x, t], t] + 6u[x, t]D[u[x, t], x] + D[u[x, t], {x, 3}] /. {x -> Pi, t -> E, β -> 3, a -> 2, m -> 3 / 4}//N[#, {22, 50}]&Plot3D[Evaluate[u[x, t] /. {β -> 1, a -> 2, m -> 3 / 4}], {x, -2, 2}, {t, 0, 3}]Closed form of iterates of the Katsura–Fukuda map:
xn[n_, x0_, λ_] := JacobiSN[2^nInverseJacobiSN[-Sqrt[x0], λ], λ]^2Compare the closed form with explicit iterations:
Table[xn[n, 2 / 3, 3 / 7], {n, 0, 6}]//NWith[{x0 = 2 / 3, λ = 3 / 7}, NestList[(4#(1 - #)(1 - λ#)/(1 - λ #^2)^2)&, x0, 6]]//NListPlot[Table[xn[n, 0.2`100, 2 / 3], {n, 0, 250}]]Implicitly defined periodic maximal surface in Minkowski space:
F = JacobiSN[(u[x, y]/Sqrt[1 - m]), m] - (Sin[x]/Cosh[y]);Calculate partial derivatives:
partials = Solve[{D[F, x] == 0, D[F, y] == 0, D[F, x, x] == 0, D[F, x, y] == 0, D[F, y, y] == 0}, {D[u[x, y], x], D[u[x, y], y], D[u[x, y], x, x], D[u[x, y], x, y], D[u[x, y], y, y]}]//Simplify;Check numerically the equation for a maximal surface:
(1 - (Subscript[∂, y]u[x, y])^2)Subscript[∂, x, x]u[x, y] + 2Subscript[∂, x]u[x, y]Subscript[∂, y]u[x, y]Subscript[∂, x, y]u[x, y] + (1 - (Subscript[∂, x]u[x, y])^2)Subscript[∂, y, y]u[x, y] /. partials /. u[x, y] -> Sqrt[1 - m]InverseJacobiSN[Sech[y]Sin[x], m] /. {x -> 1, y -> 2, m -> 3``100}Plot the maximal surface in Euclidean space:
Plot3D[Evaluate[Sqrt[1 - m]InverseJacobiSN[(Sin[x]/Cosh[y]), m] /. m -> 1 / 3], {x, -5, 5}, {y, -5, 5}, PlotRange -> All]Solution of the Euler top equations for
:
M1[t_] := Sqrt[A(M^2 - C ℰ/A - C)]JacobiCN[Sqrt[((B - C)(A ℰ - M^2)/A B C)]t, ((A - B)(M^2 - C ℰ)/(B - C)(A ℰ - M^2))]
M2[t_] := Sqrt[B(M^2 - C ℰ/B - C)]JacobiSN[Sqrt[((B - C)(A ℰ - M^2)/A B C)]t, ((A - B)(M^2 - C ℰ)/(B - C)(A ℰ - M^2))]
M3[t_] := Sqrt[C(A ℰ - M^2/A - C)]JacobiDN[Sqrt[((B - C)(A ℰ - M^2)/A B C)]t, ((A - B)(M^2 - C ℰ)/(B - C)(A ℰ - M^2))]Check the solutions numerically:
{M1'[t] == ((1/B) - (1/C))M2[t]M3[t],
M2'[t] == ((1/C) - (1/A))M3[t]M1[t],
M3'[t] == ((1/A) - (1/B))M1[t]M2[t]} /.
{M -> 1, ℰ -> 1, B -> 2, C -> 1 / 2, A -> 4, t -> 2.}Block[{A = 4, B = 2, C = 1 / 2, M = 1, ℰ = 1},
Plot[Evaluate[{M1[t], M2[t], M3[t]}], {t, 0, 12}]]Define a compacton solution of the nonlinear differential equation
:
u[ξ_] = JacobiSN[(ξ/2), -1]^2Boole[0 ≤ ξ ≤ 4EllipticK[-1]];u'[ξ]^2 == -u[ξ]^3 + u[ξ]//FullSimplify[#, 0 < ξ < 4EllipticK[-1]]&Plot[u[ξ], {ξ, -1, 6}]The JacobiSN function appears in one of the canonical forms of the Lamé differential equation:
eqn = y''[x] + (LameEigenvalueA[ν, j, m] - ν(ν + 1)m JacobiSN[x, m]^2)y[x];One of the fundamental solutions of this equation is the LameC function:
y[x_] := LameC[ν, j, x, m];
eqn == 0//SimplifySolve the Painlevé-VIII differential equation:
DSolve[w''[z] == w[z] + 2w[z] ^ 3, w[z], z]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 (4)
Compose with inverse functions:
{JacobiSN[InverseJacobiSN[z, m], m], InverseJacobiSN[JacobiSN[z, m], m]}Use PowerExpand to disregard multivaluedness of the inverse function:
PowerExpand[%]Evaluate as a result of applying Sin to JacobiAmplitude:
Sin[JacobiAmplitude[z, m]]Solve a transcendental equation:
Solve[JacobiSN[x, m]^2 + 2JacobiSN[x, m] == a, x]Numerically find a root of a transcendental equation:
FindRoot[JacobiSN[2, m]^2 - 4JacobiSN[4, m]^2 == -2, {m, -2}]Possible Issues (2)
Machine-precision input may be insufficient to give the correct answer:
JacobiSN[10. ^ 16, 1 / 3]N[JacobiSN[10 ^ 16, 1 / 3], 20]Currently only simple simplification rules are built in for Jacobi functions:
JacobiSN[z, m] ^ 2 + JacobiCN[z, m] ^ 2 - 1//FullSimplifyJacobiSN[u, m]JacobiND[u, m]JacobiDS[u, m]//FullSimplifyNeat Examples (1)
Visualize JacobiSN as a function of the parameter in the complex plane:
ComplexPlot[JacobiSN[12, z], {z, -9 - 9I, 9 + 9I}, ColorFunction -> {Automatic, None}]Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), JacobiSN, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiSN.html.
CMS
Wolfram Language. 1988. "JacobiSN." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JacobiSN.html.
APA
Wolfram Language. (1988). JacobiSN. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiSN.html
BibTeX
@misc{reference.wolfram_2026_jacobisn, author="Wolfram Research", title="{JacobiSN}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiSN.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobisn, organization={Wolfram Research}, title={JacobiSN}, year={1988}, url={https://reference.wolfram.com/language/ref/JacobiSN.html}, note=[Accessed: 13-June-2026]}