Documentation

TauCeti.Analysis.SpecialFunctions.JacobiElliptic.Basic

The Jacobi elliptic functions of a real variable #

For a modulus k with k ^ 2 < 1, the integral of the first kind φ ↦ F(φ, k) is an order isomorphism of ℝ (TauCeti.Real.legendreFOrderIso). This file defines its inverse, the Jacobi amplitude jacobiAm k, and the three basic Jacobi elliptic functions (DLMF §22.16(i))

as functions ℝ → ℝ with the modulus as first argument. For k ^ 2 ≥ 1 the amplitude is the junk value id; theorems that need k ^ 2 < 1 say so.

We prove the basic theory:

Here K = legendreK k is the complete integral of the first kind.

References #

Definitions #

noncomputable def TauCeti.Real.jacobiAm (k : ℝ) :
ℝ → ℝ

The Jacobi amplitude am(u, k) (DLMF §22.16(i)): for k ^ 2 < 1, the inverse of the integral of the first kind φ ↦ F(φ, k), so that F(am(u, k), k) = u. For k ^ 2 ≥ 1 it is the junk value id.

Instances For
    noncomputable def TauCeti.Real.jacobiSn (k u : ℝ) :

    The Jacobi elliptic function sn(u, k) = sin (am(u, k)).

    Instances For
      noncomputable def TauCeti.Real.jacobiCn (k u : ℝ) :

      The Jacobi elliptic function cn(u, k) = cos (am(u, k)).

      Instances For
        noncomputable def TauCeti.Real.jacobiDn (k u : ℝ) :

        The Jacobi elliptic function dn(u, k) = √(1 - k² sn²(u, k)).

        Instances For
          theorem TauCeti.Real.jacobiDn_def (k u : ℝ) :
          jacobiDn k u = √(1 - k ^ 2 * jacobiSn k u ^ 2)

          The amplitude #

          @[simp]

          For k ^ 2 < 1, the inverse of the order isomorphism φ ↦ F(φ, k) is the amplitude.

          theorem TauCeti.Real.jacobiAm_of_one_le_sq {k : ℝ} (hk : 1 ≤ k ^ 2) :

          For k ^ 2 ≥ 1 the amplitude is the junk value id.

          @[simp]
          theorem TauCeti.Real.legendreF_jacobiAm {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :
          legendreF (jacobiAm k u) k = u
          @[simp]
          theorem TauCeti.Real.jacobiAm_legendreF {k : ℝ} (hk : k ^ 2 < 1) (φ : ℝ) :
          jacobiAm k (legendreF φ k) = φ
          theorem TauCeti.Real.jacobiAm_eq_iff {k : ℝ} (hk : k ^ 2 < 1) {u φ : ℝ} :
          jacobiAm k u = φ ↔ legendreF φ k = u

          For k ^ 2 < 1, am(u, k) = φ exactly when F(φ, k) = u.

          The amplitude is strictly increasing, for every modulus.

          The amplitude is continuous, for every modulus.

          @[simp]
          @[simp]

          The amplitude is odd: am(-u, k) = -am(u, k).

          @[simp]

          The amplitude is even in the modulus.

          @[simp]

          At modulus 0 the amplitude is the identity.

          theorem TauCeti.Real.jacobiAm_add_two_mul_int_mul_legendreK {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) (n : ℤ) :
          jacobiAm k (u + 2 * ↑n * legendreK k) = jacobiAm k u + ↑n * Real.pi

          Quasi-periodicity of the amplitude: am(u + 2 n K, k) = am(u, k) + n π for every integer n.

          @[simp]
          theorem TauCeti.Real.jacobiAm_legendreK {k : ℝ} (hk : k ^ 2 < 1) :

          The amplitude at a quarter period is π / 2: am(K, k) = π / 2.

          Algebraic identities #

          @[simp]
          theorem TauCeti.Real.one_sub_sq_mul_jacobiSn_sq_nonneg {k : ℝ} (hk : k ^ 2 ≤ 1) (u : ℝ) :
          0 ≤ 1 - k ^ 2 * jacobiSn k u ^ 2

          For k ^ 2 ≤ 1, the radicand defining dn is nonnegative.

          theorem TauCeti.Real.one_sub_sq_mul_jacobiSn_sq_pos {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :
          0 < 1 - k ^ 2 * jacobiSn k u ^ 2

          For k ^ 2 < 1, the radicand defining dn is positive.

          theorem TauCeti.Real.jacobiDn_sq {k : ℝ} (hk : k ^ 2 ≤ 1) (u : ℝ) :
          jacobiDn k u ^ 2 = 1 - k ^ 2 * jacobiSn k u ^ 2
          theorem TauCeti.Real.jacobiDn_sq_add_sq_mul_jacobiSn_sq {k : ℝ} (hk : k ^ 2 ≤ 1) (u : ℝ) :
          jacobiDn k u ^ 2 + k ^ 2 * jacobiSn k u ^ 2 = 1
          theorem TauCeti.Real.jacobiDn_pos {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :
          0 < jacobiDn k u

          Values at zero and parity #

          @[simp]
          @[simp]
          @[simp]
          @[simp]

          sn is odd.

          @[simp]
          theorem TauCeti.Real.jacobiCn_neg (k u : ℝ) :
          jacobiCn k (-u) = jacobiCn k u

          cn is even.

          @[simp]
          theorem TauCeti.Real.jacobiDn_neg (k u : ℝ) :
          jacobiDn k (-u) = jacobiDn k u

          dn is even.

          The degenerate modulus k = 0 #

          Continuity and derivatives #

          theorem TauCeti.Real.hasDerivAt_jacobiAm {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :

          The derivative of the amplitude is dn: am′(u, k) = dn(u, k) (DLMF §22.16(i)).

          The Jacobi amplitude is nonexpansive in its real argument.

          theorem TauCeti.Real.hasDerivAt_jacobiSn {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :

          sn′ = cn · dn (DLMF §22.13(i)).

          theorem TauCeti.Real.hasDerivAt_jacobiCn {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :

          cn′ = -sn · dn (DLMF §22.13(i)).

          theorem TauCeti.Real.hasDerivAt_jacobiDn {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :
          HasDerivAt (jacobiDn k) (-k ^ 2 * jacobiSn k u * jacobiCn k u) u

          dn′ = -k² · sn · cn (DLMF §22.13(i)).

          theorem TauCeti.Real.deriv_jacobiSn_sq {k : ℝ} (hk : k ^ 2 < 1) (u : ℝ) :
          deriv (jacobiSn k) u ^ 2 = (1 - jacobiSn k u ^ 2) * (1 - k ^ 2 * jacobiSn k u ^ 2)

          The first-order differential equation of sn (DLMF §22.13(ii)): (sn′)² = (1 - sn²)(1 - k² sn²).

          Periods and values at the quarter period #

          sn changes sign under a shift by 2K: sn(u + 2K) = -sn(u) (DLMF §22.4(iii)).

          cn changes sign under a shift by 2K: cn(u + 2K) = -cn(u) (DLMF §22.4(iii)).

          sn has period 4K.

          cn has period 4K.

          dn has period 2K.

          @[simp]
          theorem TauCeti.Real.jacobiSn_legendreK {k : ℝ} (hk : k ^ 2 < 1) :
          @[simp]
          theorem TauCeti.Real.jacobiCn_legendreK {k : ℝ} (hk : k ^ 2 < 1) :
          @[simp]
          theorem TauCeti.Real.jacobiDn_legendreK {k : ℝ} (hk : k ^ 2 < 1) :
          jacobiDn k (legendreK k) = √(1 - k ^ 2)

          dn(K, k) = √(1 - k²), the complementary modulus.

          theorem TauCeti.Real.jacobiSn_eq_one_iff {k : ℝ} (hk : k ^ 2 < 1) {u : ℝ} :
          jacobiSn k u = 1 ↔ ∃ (n : ℤ), legendreK k + ↑n * (4 * legendreK k) = u

          sn attains the value 1 exactly at the points K + 4 n K, n ∈ ℤ.

          4K is the least positive period of sn (DLMF §22.4(i)). For k = 0 it is the least positive period 2π of sin.