PhysLean Documentation

PhysLean.Mathematics.SpecialFunctions.PhyscisistsHermite

Physicists Hermite Polynomial #

This file may eventually be upstreamed to Mathlib.

noncomputable def PhysLean.physHermite :

The Physicists Hermite polynomial are defined as polynomials over in X recursively with physHermite 0 = 1 and

physHermite (n + 1) = 2 • X * physHermite n - derivative (physHermite n).

This polynomial will often be cast as a function ℝ → ℝ by evaluating the polynomial at X.

Equations
Instances For
    theorem PhysLean.coeff_physHermite_succ_succ (n k : ) :
    (physHermite (n + 1)).coeff (k + 1) = 2 * (physHermite n).coeff k - (k + 2) * (physHermite n).coeff (k + 2)
    theorem PhysLean.coeff_physHermite_of_lt {n k : } (hnk : n < k) :
    @[simp]
    theorem PhysLean.physHermite_pow (n m : ) (x : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x ^ m = (Polynomial.aeval x) (physHermite n ^ m)
    theorem PhysLean.physHermite_succ_fun (n : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite (n + 1))) = ((2 fun (x : ) => x) * fun (x : ) => (Polynomial.aeval x) (physHermite n)) - (2 * n) fun (x : ) => (Polynomial.aeval x) (physHermite (n - 1))
    theorem PhysLean.physHermite_succ_fun' (n : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite (n + 1))) = fun (x : ) => 2 x * (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x - (2 * n) (fun (x : ) => (Polynomial.aeval x) (physHermite (n - 1))) x
    theorem PhysLean.deriv_physHermite (n : ) :
    (deriv fun (x : ) => (Polynomial.aeval x) (physHermite n)) = 2 * n * fun (x : ) => (Polynomial.aeval x) (physHermite (n - 1))
    theorem PhysLean.fderiv_physHermite {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] (x : E) (f : E) (hf : DifferentiableAt f x) (n : ) :
    fderiv (fun (x : E) => (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (f x)) x = (2 * n * (fun (x : ) => (Polynomial.aeval x) (physHermite (n - 1))) (f x)) fderiv f x
    @[simp]
    theorem PhysLean.deriv_physHermite' (x : ) (f : ) (hf : DifferentiableAt f x) (n : ) :
    deriv (fun (x : ) => (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (f x)) x = 2 * n * (fun (x : ) => (Polynomial.aeval x) (physHermite (n - 1))) (f x) * deriv f x
    theorem PhysLean.physHermite_parity (n : ) (x : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (-x) = (-1) ^ n * (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x

    Relationship to Gaussians #

    theorem PhysLean.deriv_gaussian_eq_physHermite_mul_gaussian (n : ) (x : ) :
    deriv^[n] (fun (y : ) => Real.exp (-y ^ 2)) x = (-1) ^ n * (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * Real.exp (-x ^ 2)
    theorem PhysLean.physHermite_eq_deriv_gaussian (n : ) (x : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x = (-1) ^ n * deriv^[n] (fun (y : ) => Real.exp (-y ^ 2)) x / Real.exp (-x ^ 2)
    theorem PhysLean.physHermite_eq_deriv_gaussian' (n : ) (x : ) :
    (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x = (-1) ^ n * deriv^[n] (fun (y : ) => Real.exp (-y ^ 2)) x * Real.exp (x ^ 2)
    theorem PhysLean.integral_physHermite_mul_physHermite_eq_integral_deriv_exp (n m : ) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) x * Real.exp (-x ^ 2) = (-1) ^ m * (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * deriv^[m] (fun (x : ) => Real.exp (-x ^ 2)) x
    theorem PhysLean.integral_physHermite_mul_physHermite_eq_integral_deriv_inductive (n m p : ) (hpm : p m) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) x * Real.exp (-x ^ 2) = (-1) ^ (m - p) * (x : ), deriv^[p] (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * deriv^[m - p] (fun (x : ) => Real.exp (-x ^ 2)) x
    theorem PhysLean.integral_physHermite_mul_physHermite_eq_integral_deriv (n m : ) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) x * Real.exp (-x ^ 2) = (x : ), deriv^[m] (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * Real.exp (-x ^ 2)
    theorem PhysLean.physHermite_orthogonal_lt {n m : } (hnm : n < m) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) x * Real.exp (-x ^ 2) = 0
    theorem PhysLean.physHermite_orthogonal {n m : } (hnm : n m) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) x * Real.exp (-x ^ 2) = 0
    theorem PhysLean.physHermite_orthogonal_cons {n m : } (hnm : n m) (c : ) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (c * x) * (fun (x : ) => (Polynomial.aeval x) (physHermite m)) (c * x) * Real.exp (-c ^ 2 * x ^ 2) = 0
    theorem PhysLean.physHermite_norm (n : ) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * (fun (x : ) => (Polynomial.aeval x) (physHermite n)) x * Real.exp (-x ^ 2) = n.factorial * 2 ^ n * Real.pi
    theorem PhysLean.physHermite_norm_cons (n : ) (c : ) :
    (x : ), (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (c * x) * (fun (x : ) => (Polynomial.aeval x) (physHermite n)) (c * x) * Real.exp (-c ^ 2 * x ^ 2) = |c⁻¹| (n.factorial * 2 ^ n * Real.pi)
    @[irreducible]