JacobiAmplitude[u,m]
gives the amplitude
for Jacobi elliptic functions.
JacobiAmplitude
JacobiAmplitude[u,m]
gives the amplitude
for Jacobi elliptic functions.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- JacobiAmplitude[u,m] converts from the argument u for an elliptic function to the amplitude ϕ.
- JacobiAmplitude is the inverse of the elliptic integral of the first kind. If
, then
. - JacobiAmplitude[u,m] has a branch cut discontinuity in the complex u plane running from
to
for every pair of integers
and
. - For certain special arguments, JacobiAmplitude automatically evaluates to exact values.
- JacobiAmplitude can be evaluated to arbitrary numerical precision.
- JacobiAmplitude automatically threads over lists.
Examples
open all close allBasic Examples (4)
JacobiAmplitude[4., 2 / 3]Plot over a subset of the reals:
Plot[JacobiAmplitude[x, 2 / 3], {x, -4, 4}]Plot over a subset of the complexes:
ComplexPlot3D[JacobiAmplitude[z, 1 / 3], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansions about the origin:
Series[JacobiAmplitude[z, m], {z, 0, 6}]Series[JacobiAmplitude[z, m], {m, 0, 1}]Scope (26)
Numerical Evaluation (5)
N[JacobiAmplitude[Pi / 3, 1 / 5], 50]The precision of the output tracks the precision of the input:
JacobiAmplitude[Pi / 3, 0.200000000000000000000000000]Evaluate for complex arguments:
JacobiAmplitude[0.2 + 0.1 I, 0.2 I]Evaluate JacobiAmplitude efficiently at high precision:
JacobiAmplitude[Pi / 3, 0.2`500]//TimingJacobiAmplitude[Pi / 3, 0.2`10000];//TimingCompute average-case statistical intervals using Around:
JacobiAmplitude[ Around[2 / 3, 0.001], 1 / 3]Compute the elementwise values of an array:
JacobiAmplitude[{{1 / 2, -1}, {-5 / 3, 1 / 2}}, 1]Or compute the matrix JacobiAmplitude function using MatrixFunction:
MatrixFunction[JacobiAmplitude[#, 1]&, {{1 / 2, -1}, {-5 / 3, 1 / 2}}]//FullSimplifySpecific Values (4)
Simple exact values are generated automatically:
{JacobiAmplitude[x, 0], JacobiAmplitude[x, 1]}{JacobiAmplitude[0, m], JacobiAmplitude[EllipticK[m], m]}JacobiAmplitude[EllipticK[m] / 2 + I EllipticK[1 - m] / 2, m]Values at infinity for some special cases:
{JacobiAmplitude[Infinity, 0], JacobiAmplitude[Infinity, 1]}xzero = x /. FindRoot[JacobiAmplitude[x, -3] == 1, {x, 2}]Plot[JacobiAmplitude[x, -3], {x, -3, 6}, WorkingPrecision -> 10, Epilog -> Style[Point[{xzero, JacobiAmplitude[xzero, -3]}], PointSize[Large], Red]]Parity transformation is automatically applied:
JacobiAmplitude[-u, m]Visualization (3)
Plot the JacobiAmplitude functions for various values of parameter
:
Plot[{JacobiAmplitude[x, -1], JacobiAmplitude[x, 1 / 2], JacobiAmplitude[x, 1], JacobiAmplitude[x, 2]}, {x, -4, 4}, PlotLegends -> "Expressions"]Plot JacobiAmplitude as a function of its parameter
:
Plot[{JacobiAmplitude[1, m], JacobiAmplitude[2, m], JacobiAmplitude[3, m]}, {m, -10, 10}, PlotLegends -> "Expressions"]ComplexContourPlot[Re[JacobiAmplitude[z, 2]], {z, -6 - 6I, 6 + 6I}, Contours -> 20]ComplexContourPlot[Im[JacobiAmplitude[z, 2]], {z, -6 - 6I, 6 + 6I}, IconizedObject[«PlotOptions»]]Function Properties (5)
FunctionAnalytic[JacobiAmplitude[x, 2 / 3], x]It has no singularities or discontinuities:
FunctionSingularities[JacobiAmplitude[x, 2 / 3], x]FunctionDiscontinuities[JacobiAmplitude[x, 2 / 3], x]FunctionInjective[JacobiAmplitude[x, 2 / 3], x]Plot[{JacobiAmplitude[x, 2 / 3], 3}, {x, -5, 5}]FunctionSurjective[JacobiAmplitude[x, 2 / 3], x]Plot[{JacobiAmplitude[x, 2 / 3], -5}, {x, -10, 10}]JacobiAmplitude is neither non-negative nor non-positive:
FunctionSign[JacobiAmplitude[x, 2 / 3], x]JacobiAmplitude is neither convex nor concave:
FunctionConvexity[JacobiAmplitude[x, 1 / 3], x]Differentiation (3)
D[JacobiAmplitude[x, m], x]derivs = Table[D[JacobiAmplitude[x, m], {x, n}], {n, 1, 4}]//FullSimplifyPlot[Evaluate[derivs /. m -> 2 / 3], {x, -5, 5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[JacobiAmplitude[x, m], m]Series Expansions (3)
Series[JacobiAmplitude[x, 2 / 3], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiAmplitude[x, 2 / 3], {x, 0, n}], {n, 1, 5, 2}];
Plot[{JacobiAmplitude[x, 2 / 3], terms}, {x, -2, 2}]Series[JacobiAmplitude[1, m], {m, 0, 3}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[JacobiAmplitude[1, m], {m, 0, n}], {n, 1, 3}];
Plot[{JacobiAmplitude[1, m], terms}, {m, -9, 9}]JacobiAmplitude can be applied to a power series:
JacobiAmplitude[u, Log[1 + m] + O[m] ^ 3]JacobiAmplitude[u Cos[u] + O[u] ^ 10, m]//SimplifyFunction Representations (3)
JacobiAmplitude is the inverse of EllipticF:
Solve[u == EllipticF[ϕ, m], ϕ]//QuietIntegrate[JacobiDN[t, m], {t, 0, u}]TraditionalForm formatting:
JacobiAmplitude[u, m]//TraditionalFormApplications (4)
Solution of the pendulum equation in the overswing mode:
ϕ[t_] = With[{k = 1 + 10^-3}, 2JacobiAmplitude[k t, k^-2]];Check with the pendulum equation:
ϕ''[t] + Sin[ϕ[t]]//FullSimplifyPlot[ϕ[t], {t, 0, 36}]Relativistic solution of the sine‐Gordon equation:
u[t_, x_, {v_, k_}] = Piecewise[{{π - 2JacobiAmplitude[(x - v t/kSqrt[1 - v^2]), k^2], k ≤ 1},
{2 (π - JacobiAmplitude[((1 + k) (x - v t)/2 k Sqrt[1 - v^2]), (4 k/(1 + k)^2)] + JacobiAmplitude[((1 + k) (x - v t)/2 k Sqrt[1 - v^2]) - (1 + (1/k)) EllipticK[(1/k^2)], (4 k/(1 + k)^2)]), k > 1}}];Verify the solution by substituting into the sine‐Gordon equation:
Assuming[k < 1,
Subscript[∂, {t, 2}]u[t, x, {v, k}] - Subscript[∂, {x, 2}]u[t, x, {v, k}] + Sin[u[t, x, {v, k}]]
//FullSimplify]Plot the solution for different values of
and
:
Plot3D[u[t, x, {0.95, 0.99}], {x, -4, 4}, {t, 0, 2}]Plot3D[u[t, x, {0.8, 1.2}], {x, -4, 4}, {t, 0, 2}]Form and plot generalized Fourier series:
Function[m, Plot[Evaluate[Table[Sum[-(-1) ^ k Sin[k JacobiAmplitude[2 EllipticK[m] / Pi v, m]] / k, {k, o}], {o, 8}]], {v, -2Pi, 2Pi}, ImageSize -> Small]] /@ {0, 0.33, 0.66, 0.99}Spherical triangle from an elliptic parameter
and triple
such that
:
SphericalTriangleAnglesAndSides[m_, {u1_, u2_, u3_}] /; inputQ[m, {u1, u2, u3}] := {JacobiAmplitude[2EllipticK[m]{u1, u2, u3}, m], ArcSin[Sqrt[m]JacobiSN[2EllipticK[m]{u1, u2, u3}, m]]}inputQ[m_, us_List] := 0 < m < 1 && Min[us] > 0 && Total[us] == 1Angles at vertices
,
and
and sides opposite to each corresponding vertex:
{{∠A, ∠B, ∠C}, {a, b, c}} = SphericalTriangleAnglesAndSides[0.7, {0.2, 0.3, 0.5}]Verify Cagnoli's equation, which relates the measurements of all the angles and sides of a spherical triangle:
Sin[b]Sin[c] + Cos[b]Cos[c]Cos[∠A] == Sin[∠B]Sin[∠C] - Cos[∠B]Cos[∠C]Cos[a]Compute the area of the triangle, also known as the spherical excess:
Total[{∠A, ∠B, ∠C}] - PiCompute the excess using L'Huilier's theorem [MathWorld]:
With[{𝓈 = Total[{a, b, c}] / 2}, 4ArcTan[Sqrt[Tan[(𝓈/2)]Tan[(𝓈 - a/2)]Tan[(𝓈 - b/2)]Tan[(𝓈 - c/2)]]]]Compute corresponding points on 3D unit sphere:
pC = {1, 0, 0};
normalBC = {0, 0, 1};
pB = RotationTransform[a, normalBC][pC];
normalAB = RotationTransform[-∠B, pB][normalBC];
pA = RotationTransform[-c, normalAB][pB];Check consistency between points found and spherical sides:
{{(pC.pB/Norm[pC] Norm[pB]), Cos[a]}, {(pA.pC/Norm[pA] Norm[pC]), Cos[b]}, {(pA.pB/Norm[pA] Norm[pB]), Cos[c]}}Show[
Graphics3D[{{Opacity[1 / 10, Gray], Sphere[{0, 0, 0}, 1]}, {Green, Sphere[{0, 0, 0}, 1 / 50],
Arrowheads[Medium], Arrow[{{0, 0, 0}, pA}], Arrow[{{0, 0, 0}, pB}], Arrow[{{0, 0, 0}, pC}]
}}],
{ParametricPlot3D[RotationTransform[a t, {pB, pC}][pB]//Evaluate, {t, 0, 1}],
ParametricPlot3D[RotationTransform[b t, {pA, pC}][pA]//Evaluate, {t, 0, 1}],
ParametricPlot3D[RotationTransform[c t, {pA, pB}][pA]//Evaluate, {t, 0, 1}]}]Properties & Relations (5)
Compose with inverse functions:
{EllipticF[JacobiAmplitude[z, m], m], JacobiAmplitude[EllipticF[z, m], m]}Use PowerExpand to disregard the multivaluedness of the inverse function:
PowerExpand[%]Apply trigonometric functions to JacobiAmplitude:
{Cos[JacobiAmplitude[z, m]], Sin[JacobiAmplitude[z, m]]}Solve a transcendental equation:
Solve[JacobiAmplitude[x, m]^2 + 3JacobiAmplitude[x, m] == a, x]//QuietObtain from a differential equation:
DSolve[Subscript[∂, z]w[z] - JacobiDN[z, m] == 0, w[z], z]JacobiAmplitude has branch cuts from
to
for any integers
and
:
Table[JacobiAmplitude[2s EllipticK[m] + I (4t + 1)EllipticK[1 - m], m], {s, -2, 2}, {t, -2, 2}]//Flatten//UnionTable[JacobiAmplitude[2s EllipticK[m] + I (4t + 3)EllipticK[1 - m], m], {s, -2, 2}, {t, -2, 2}]//Flatten//UnionVisualize branch cuts for different moduli:
ShowJacobiAmplitudeBranchCuts[m_ ? NumericQ] := Module[{K, Kp, rK, iK, rKp, iKp},
K = EllipticK[m];Kp = EllipticK[1 - m];
{rK, iK} = ReIm[K];{rKp, iKp} = ReIm[Kp];
Graphics[{Brown, Line[Flatten[Table[{{2s rK - (4t + 1)iKp, 2s iK + (4t + 1)rKp}, {2s rK - (4t + 3)iKp, 2s iK + (4t + 3)rKp}}, {s, -3, 3}, {t, -2, 2}], 1]]}, Frame -> True, AspectRatio -> 1, ImageSize -> Small, GridLines -> Automatic, GridLinesStyle -> LightGray]
]{ShowJacobiAmplitudeBranchCuts[-3], ShowJacobiAmplitudeBranchCuts[1 / 3], ShowJacobiAmplitudeBranchCuts[3], ShowJacobiAmplitudeBranchCuts[3 + I]}Possible Issues (1)
The branch cuts of
for
cross the real axis at
for integer
:
With[{m = 3},
branchPoints = {PointSize[Medium], Point[Table[{2(2s + 1)EllipticK[1 / m] / Sqrt[m], 0}, {s, -2, 2}]]};
Plot[JacobiAmplitude[u, m], {u, -6, 6}, Epilog -> branchPoints]]For physical applications where a continuous version of the amplitude is desired for
, use the following definition:
am[u_, m_] := -(π/2) + JacobiAmplitude[(1/2) (1 + Sqrt[m]) u, (4 Sqrt[m]/(1 + Sqrt[m])^2)] - JacobiAmplitude[(1/2) (1 + Sqrt[m]) u - (1 + (1/Sqrt[m])) EllipticK[(1/m)], (4 Sqrt[m]/(1 + Sqrt[m])^2)];The preceding function coincides with
for real
and
:
With[{m = 3},
Plot[{ArcSin[JacobiSN[u, m]], am[u, m]}, {u, -6, 6}, IconizedObject[«Plot options»]]]Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0) | Updated in 2020 (12.1)
Text
Wolfram Research (1988), JacobiAmplitude, Wolfram Language function, https://reference.wolfram.com/language/ref/JacobiAmplitude.html (updated 2020).
CMS
Wolfram Language. 1988. "JacobiAmplitude." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/JacobiAmplitude.html.
APA
Wolfram Language. (1988). JacobiAmplitude. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JacobiAmplitude.html
BibTeX
@misc{reference.wolfram_2026_jacobiamplitude, author="Wolfram Research", title="{JacobiAmplitude}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/JacobiAmplitude.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jacobiamplitude, organization={Wolfram Research}, title={JacobiAmplitude}, year={2020}, url={https://reference.wolfram.com/language/ref/JacobiAmplitude.html}, note=[Accessed: 13-June-2026]}