Skip to content

JacobiDC ​

The Jacobi elliptic function dc⁡(u,m)=dn⁡(u,m)/cn⁡(u,m)\operatorname{dc}(u,m) = \operatorname{dn}(u,m)/\operatorname{cn}(u,m) (Glaisher's notation), in Wolfram/mpmath's m=k2m=k^2 convention.

✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram LanguageJacobiDC!
JacobiDC(u, m)the Jacobi elliptic function dc, argument u, parameter m.
SageMathjacobi_dc(u, m)mpmathellipfun('dc', u, m=m)Juliaenumeratio_jacobi(:dc, u, m)
Typed signatures
TypePackageApplies
(number, number) -> numberanalyticalways

Domain: Special functions

Details
  • m=k2m = k^2, the same convention EllipticK / EllipticF use.
  • dc⁡(u,m)=dn⁡(u,m)/cn⁡(u,m)\operatorname{dc}(u,m) = \operatorname{dn}(u,m)/\operatorname{cn}(u,m) — JacobiDN and JacobiCN share this head's numeric kernel and exact-value coverage (m outside [0,1] via the reciprocal- and imaginary-modulus transformations, complex u, a genuinely complex m declined).
  • dc(0,m) = 1, for any m.
  • Numeric only — a symbolic argument stays unevaluated; a floating-point argument (or N()) evaluates directly.
  • N(x, d) past a double's digits runs the same AGM in BigDecimal for real uu and 0<m<10 < m < 1; complex uu and other mm stay unevaluated there rather than print a double's digits as more.
  • Derivatives of every order in uu and in mm are closed forms in sn, cn, dn and the Jacobi epsilon E(u,m)=Z(u,m)+u E(m)/K(m)\mathcal{E}(u,m)=Z(u,m)+u\,E(m)/K(m) (DLMF 22.13): D, Series in uu at 00 or at a symbolic point, and Series in mm at m=0m=0 all give concrete coefficients. The mm-derivatives evaluate numerically for real uu and mm between 0 and 1.

Plot

Examples

1 more kept as data, checked against the oracles
Basic #

A floating-point argument evaluates directly to a decimal

live ↗
InN(JacobiDC(0.6,0.4))N(\mathrm{JacobiDC}(0.6, 0.4))Out1.124 780 426 911 5551.124\,780\,426\,911\,555

Known value · mpmath 1.3.0 ellipfun

Scope #

m less than 0, via the imaginary-modulus transformation

live ↗
InN(JacobiDC(0.3,−0.7))N(\mathrm{JacobiDC}(0.3, -0.7))Out1.079 939 770 083 225 21.079\,939\,770\,083\,225\,2

The derivative in the parameter m, in closed form through the Jacobi zeta

live ↗
IndJacobiDC(u,m)dm\frac{\mathrm{d}\mathrm{JacobiDC}(u, m)}{\mathrm{d}m}Out(uEllipticE(m)EllipticK(m)+JacobiZN(u,m))JacobiSN(u,m)2(1−m)−(uEllipticE(m)EllipticK(m)+JacobiZN(u,m))JacobiSN(u,m)JacobiDN(u,m)22m×(1−m)JacobiCN(u,m)2+uJacobiSN(u,m)JacobiDN(u,m)22mJacobiCN(u,m)2−uJacobiSN(u,m)2\frac{(\frac{u\mathrm{EllipticE}(m)}{\mathrm{EllipticK}(m)}+\mathrm{JacobiZN}(u, m))\mathrm{JacobiSN}(u, m)}{2(1-m)}-\frac{(\frac{u\mathrm{EllipticE}(m)}{\mathrm{EllipticK}(m)}+\mathrm{JacobiZN}(u, m))\mathrm{JacobiSN}(u, m)\mathrm{JacobiDN}(u, m)^2}{2m×(1-m)\mathrm{JacobiCN}(u, m)^2}+\frac{u\mathrm{JacobiSN}(u, m)\mathrm{JacobiDN}(u, m)^2}{2m\mathrm{JacobiCN}(u, m)^2}-\frac{u\mathrm{JacobiSN}(u, m)}{2}

The Taylor series at u = 0, its coefficients polynomials in m

live ↗
InSeries⁡(JacobiDC(u,m),u,0,5)\operatorname{Series}(\mathrm{JacobiDC}(u, m), u, 0, 5)Out1+12(1−m)u2+124(m2−6m+5)u4+O(u6)1+\frac{1}{2}(1-m)u^2+\frac{1}{24}(m^2-6m+5)u^4+O\left(u^6\right)

The series in the parameter m at m = 0, its coefficients trigonometric in z

live ↗
InSeries⁡(JacobiDC(z,m),m,0,2)\operatorname{Series}(\mathrm{JacobiDC}(z, m), m, 0, 2)Out1cos⁡(z)+m×(−4zsin⁡(z)−cos⁡(z)+cos⁡(3z))16cos⁡(z)2+(24z2−8cos⁡(2z)z2+4zsin⁡(2z)+4zsin⁡(4z)+5cos⁡(4z)−5)m2512cos⁡(z)3+O(m3)\frac{1}{\cos(z)}+\frac{m×(-4z\sin(z)-\cos(z)+\cos(3z))}{16\cos(z)^2}+\frac{(24z^2-8\cos(2z)z^2+4z\sin(2z)+4z\sin(4z)+5\cos(4z)-5)m^2}{512\cos(z)^3}+O\left(m^3\right)

The series about a symbolic point u0, its coefficients the Jacobi functions at u0

live ↗
InSeries⁡(JacobiDC(u,m),u,u0,2)\operatorname{Series}(\mathrm{JacobiDC}(u, m), u, \mathrm{u0}, 2)OutJacobiDC(u0,m)+(u−u0)(JacobiSN(u0,m)JacobiDN(u0,m)2JacobiCN(u0,m)2−mJacobiSN(u0,m))+12(−(mJacobiDN(u0,m)JacobiCN(u0,m))−2mJacobiDN(u0,m)JacobiSN(u0,m)2JacobiCN(u0,m)+JacobiDN(u0,m)3JacobiCN(u0,m)+2JacobiSN(u0,m)2JacobiDN(u0,m)3JacobiCN(u0,m)3)(u−u0)2+O((u−u0)3)\mathrm{JacobiDC}(\mathrm{u0}, m)+(u-\mathrm{u0})(\frac{\mathrm{JacobiSN}(\mathrm{u0}, m)\mathrm{JacobiDN}(\mathrm{u0}, m)^2}{\mathrm{JacobiCN}(\mathrm{u0}, m)^2}-m\mathrm{JacobiSN}(\mathrm{u0}, m))+\frac{1}{2}(-(m\mathrm{JacobiDN}(\mathrm{u0}, m)\mathrm{JacobiCN}(\mathrm{u0}, m))-\frac{2m\mathrm{JacobiDN}(\mathrm{u0}, m)\mathrm{JacobiSN}(\mathrm{u0}, m)^2}{\mathrm{JacobiCN}(\mathrm{u0}, m)}+\frac{\mathrm{JacobiDN}(\mathrm{u0}, m)^3}{\mathrm{JacobiCN}(\mathrm{u0}, m)}+\frac{2\mathrm{JacobiSN}(\mathrm{u0}, m)^2\mathrm{JacobiDN}(\mathrm{u0}, m)^3}{\mathrm{JacobiCN}(\mathrm{u0}, m)^3})(u-\mathrm{u0})^2+O\left((u-\mathrm{u0})^3\right)
Properties #

u = 0 is 1, for any m

live ↗
InJacobiDC(0,m)\mathrm{JacobiDC}(0, m)Out11
live ↗
InN(JacobiDC(21/24i,2))N(\mathrm{JacobiDC}(\frac{2^{1/2}}{4}i, 2))Out1.060 476 396 407 456 81.060\,476\,396\,407\,456\,8

Known value · Wolfram MathematicalFunctionData, JacobiDC, Landen's transformation

live ↗
InN(JacobiDC(12(1+21/22),(1−21/2/2)2(1+21/2/2)2))N(\mathrm{JacobiDC}(\frac{1}{2}(1+\frac{2^{1/2}}{2}), \frac{(1-2^{1/2}/2)^2}{(1+2^{1/2}/2)^2}))Out1.504 102 949 237 757 61.504\,102\,949\,237\,757\,6

Known value · Wolfram MathematicalFunctionData, JacobiDC, Gauss' transformation

live ↗
InN(JacobiDC(2i,2))N(\mathrm{JacobiDC}(\sqrt{2}i, 2))Out1.406 744 683 953 6691.406\,744\,683\,953\,669

Known value · Wolfram MathematicalFunctionData, JacobiDC, Landen's transformation

live ↗
InN(JacobiDC(2(1+22),(1−21/2/2)2(1+21/2/2)2))N(\mathrm{JacobiDC}(2(1+\frac{\sqrt{2}}{2}), \frac{(1-2^{1/2}/2)^2}{(1+2^{1/2}/2)^2}))Out−1.030 908 324 501 612 8-1.030\,908\,324\,501\,612\,8

Known value · Wolfram MathematicalFunctionData, JacobiDC, Gauss' transformation

Possible issues #

Symbolic arguments are left unevaluated rather than guessed at

live ↗
InJacobiDC(u,m)\mathrm{JacobiDC}(u, m)OutJacobiDC(u,m)\mathrm{JacobiDC}(u, m)

Same gap as JacobiCD (the true value is tracked there, not repeated per head): u this far out has no argument reduction against its real period, so the guard in exceedsDoublePrecision's sibling (periodsExceedDouble, ce-patches/support/precise.ts) declines rather than return a wrong value.

live ↗
InN(JacobiDC(1016,57))N(\mathrm{JacobiDC}(10^{16}, \frac{5}{7}))OutJacobiDC(10 000 000 000 000 000.0,0.714 285 714 285 714 285 714)\mathrm{JacobiDC}(10\,000\,000\,000\,000\,000.0, 0.714\,285\,714\,285\,714\,285\,714)
About
Examples14
Checked againstWolfram Language 12 agree1 differSageMath 10 agree1 differ1 unevaluated1 errormpmath 7 agree1 unevaluatedJulia 6 agree1 unevaluated1 error
CrosswalkWolfram LanguageSageMathmpmathJulia

Implementation

mappedmpmathpackages/oracle/src/mappings.ts
mappedsagepackages/oracle/src/mappings.ts
mappedjuliapackages/oracle/src/mappings.ts

See also: JacobiDN, JacobiCN, JacobiCD