Documentation

Mathlib.Analysis.SpecialFunctions.RegularizedHypergeometric

Generalized hypergeometric function #

In this file we define the generalized hypergeometric function as well as the Gaussian hypergeometric function.

The hypergeometric function is a function with parameters a : Fin p → ℂ and b : Fin q → ℂ.

Note that in this file, we use the regularized version of the hypergeometric function, that is the coefficients are divides by ∏ i, Gamma (b i), giving in the case of the Gaussian hypergeometric function the series representation $$\sum_j \frac{(a)^n (b)^n}{\Gamma(c + n) n!} z^ n,$$ where (a)^n denotes the rising Pochhammer symbol.

This definition is valid for all values of c, whereas the usual hypergeometric function has a pole for c = -k and k : ℕ. To our knowledge the regularized hypergeometric function only appears in the literature only for the Gaussian case, it is implicit in the definition of the Bessel function (p = 0 and q = 1). To recover the usual hypergeometric function, simply multiply by ∏ i, Gamma (b i).

Definitions #

For the general case we have

For the Gaussian case (p = 2 and q = 1), we define

Results #

Convergence:

noncomputable def Complex.regularizedHGFunCoeff (a b : Multiset ℂ) (n : ℕ) :

The coefficients of the regularized hypergeometric series.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Complex.regularizedHGFunCoeff_eq_zero_iff {a b : Multiset ℂ} {n : ℕ} :
    regularizedHGFunCoeff a b n = 0 ↔ (∃ j ∈ a, ∃ k < n, j = -↑k) ∨ ∃ j ∈ b, ∃ (m : ℕ), j + ↑n = -↑m
    theorem Complex.regularizedHGFunCoeff_eq_zero_right (a b : Multiset ℂ) (n m : ℕ) (hb : -↑n - ↑m ∈ b := by grind) :
    theorem Complex.regularizedHGFunCoeff_eq_zero_left (a b : Multiset ℂ) (n m : ℕ) (ha : -↑m ∈ a := by grind) (hm : m < n := by grind) :
    theorem Complex.regularizedHGFunCoeff_add_one {a b : Multiset ℂ} {n : ℕ} (hb : ∀ k ∈ b, k ≠ -↑n) :
    regularizedHGFunCoeff a b (n + 1) = regularizedHGFunCoeff a b n * ((Multiset.map (fun (x : ℂ) => x + ↑n) a).prod / ((Multiset.map (fun (x : ℂ) => x + ↑n) b).prod * (↑n + 1)))

    Recursion formula for the coefficients of the hypergeometric series.

    This is mainly used to calculate the convergence radius.

    theorem Complex.regularizedHGFunCoeff_add_one_div_self {a b : Multiset ℂ} {n : ℕ} (h : regularizedHGFunCoeff a b n ≠ 0) :
    regularizedHGFunCoeff a b (n + 1) / regularizedHGFunCoeff a b n = (Multiset.map (fun (x : ℂ) => x + ↑n) a).prod / ((Multiset.map (fun (x : ℂ) => x + ↑n) b).prod * (↑n + 1))

    Recursion formula for the coefficients of the hypergeometric series.

    This is mainly used to calculate the convergence radius.

    noncomputable def Complex.regularizedHGFun (a b : Multiset ℂ) (z : ℂ) :

    The regularized hypergeometric function.

    Equations
    Instances For

      If there exists j and k : ℕ, such that a j = -k, then the hypergeometric series is finite and has convergence radius ∞.

      If for all j and k : ℕ, a j ≠ -k, then the coefficients of the hypergeometric series are eventually non-vanishing.

      If a.card ≤ b.card, then the hypergeometric series has infinite convergence radius.

      theorem Complex.radius_regularizedHGFunSeries_eq_one {a b : Multiset ℂ} (h : a.card = b.card + 1) (h' : ∀ j ∈ a, ∀ (k : ℕ), j ≠ -↑k) :

      If a.card = b.card + 1, then the hypergeometric series has convergence radius 1, unless it is a polynomial.

      If a.card = b.card + 1, then the hypergeometric series has convergence radius greater or equal to 1.

      @[simp]

      The regularized hypergeometric series with a = b = 0 is exponential series.

      @[simp]

      The regularized hypergeometric function ₀F₀ is the complex exponential.

      The regularized Gaussian hypergeometric function.

      Equations
      Instances For
        noncomputable def Complex.regularizedGaussHGFun (a b c z : ℂ) :

        The regularized Gaussian hypergeometric function.

        Equations
        Instances For
          theorem Complex.ordinaryHypergeometric_div_Gamma_eq {a b c z : ℂ} (hc : ∀ (k : ℕ), c ≠ -↑k) :
          theorem Complex.radius_regularizedGaussHGFunSeries_eq_one {a b : ℂ} (c : ℂ) (h : ∀ (k : ℕ), a ≠ -↑k ∧ b ≠ -↑k) :