PhysLean Documentation

PhysLean.ClassicalMechanics.WaveEquation.Basic

Wave equation #

The general wave equation.

def ClassicalMechanics.WaveEquation {d : } (f : TimeSpace dEuclideanSpace (Fin d)) (t : Time) (x : Space d) (c : ) :

The general form of the wave equation where c is the propagation speed.

Equations
Instances For
    noncomputable def ClassicalMechanics.planeWave {d : } (f₀ : EuclideanSpace (Fin d)) (c : ) (s : Space.Direction d) :

    A vector-valued plane wave travelling in the direction of s with propagation speed c.

    Equations
    Instances For
      theorem ClassicalMechanics.wave_dt {d : } {f₀ : EuclideanSpace (Fin d)} {x : EuclideanSpace (Fin d)} {c : } {s : Space.Direction d} {f₀' : →L[] EuclideanSpace (Fin d)} (h' : ∀ (x : ), HasFDerivAt f₀ (f₀' x) x) :
      (Time.deriv fun (t : Time) => f₀ (inner x s.unit - c * t)) = fun (t : ) => -c (f₀' (inner x s.unit - c * t)) 1
      theorem ClassicalMechanics.wave_dt2 {d : } {c : } {x : EuclideanSpace (Fin d)} {t : Time} {s : Space.Direction d} {f₀' f₀'' : →L[] EuclideanSpace (Fin d)} (h'' : ∀ (x : ), HasFDerivAt (fun (x' : ) => (f₀' x') 1) (f₀'' x) x) :
      Time.deriv (fun (t : Time) => -c (f₀' (inner x s.unit - c * t)) 1) t = c ^ 2 (f₀'' (inner x s.unit - c * t)) 1
      theorem ClassicalMechanics.wave_dx {d : } {f₀ : EuclideanSpace (Fin d)} {c t : } {u v : Fin d} {s : Space.Direction d} {f₀' : →L[] EuclideanSpace (Fin d)} (h' : ∀ (x : ), HasFDerivAt f₀ (f₀' x) x) :
      (fun (x' : EuclideanSpace (Fin d)) => (fderiv (fun (x : EuclideanSpace (Fin d)) => inner (f₀ (inner x s.unit - c * t)) (EuclideanSpace.single u 1)) x') (EuclideanSpace.single v 1)) = fun (x' : EuclideanSpace (Fin d)) => inner ((f₀' (inner x' s.unit - c * t)) (s.unit v)) (EuclideanSpace.single u 1)
      theorem ClassicalMechanics.wave_dx2 {d : } {c t : } {x : EuclideanSpace (Fin d)} {u v : Fin d} {s : Space.Direction d} {f₀' f₀'' : →L[] EuclideanSpace (Fin d)} (h'' : ∀ (x : ), HasFDerivAt (fun (x' : ) => (f₀' x') 1) (f₀'' x) x) :
      (fderiv (fun (x' : EuclideanSpace (Fin d)) => inner ((f₀' (inner x' s.unit - c * t)) (s.unit u)) (EuclideanSpace.single v 1)) x) (EuclideanSpace.single u 1) = inner (s.unit u ^ 2 (f₀'' (inner x s.unit - c * t)) 1) (EuclideanSpace.single v 1)
      theorem ClassicalMechanics.planeWave_isWave {d : } (c : ) (s : Space.Direction d) (f₀ : EuclideanSpace (Fin d)) (f₀' f₀'' : →L[] EuclideanSpace (Fin d)) (h' : ∀ (x : ), HasFDerivAt f₀ (f₀' x) x) (h'' : ∀ (x : ), HasFDerivAt (fun (x' : ) => (f₀' x') 1) (f₀'' x) x) (t : Time) (x : Space d) :
      WaveEquation (planeWave f₀ c s) t x c

      The plane wave satisfies the wave equation.

      Helper lemmas for further derivation #

      theorem ClassicalMechanics.space_fderiv_of_inner_product_wave_eq_space_fderiv {d : } {c t : } {x : EuclideanSpace (Fin d)} {f₀ : EuclideanSpace (Fin d)} {s : Space.Direction d} {u v : Fin d} (h' : Differentiable f₀) :
      c * (fun (x' : EuclideanSpace (Fin d)) => (fderiv (fun (x : EuclideanSpace (Fin d)) => inner (f₀ (inner x s.unit - c * t)) (EuclideanSpace.single v 1)) x') (EuclideanSpace.single u 1)) x = -s.unit u * Time.deriv (fun (t : Time) => f₀ (inner x s.unit - c * t)) t v

      If f₀ is a function of (inner ℝ x s - c * t), the fderiv of its components with respect to spatial coordinates is equal to the corresponding component of the propagation direction s times time derivative.

      theorem ClassicalMechanics.time_differentiable_of_eq_planewave {d : } {c : } {x : Space d} {s : Space.Direction d} {f₀ : EuclideanSpace (Fin d)} {f : TimeSpace dEuclideanSpace (Fin d)} (h' : Differentiable f₀) (hf : f = planeWave f₀ c s) :
      Differentiable fun (t : Time) => f t x
      theorem ClassicalMechanics.crossProduct_time_differentiable_of_right_eq_planewave {c : } {x : Space} {t : Time} {s : Space.Direction} {f₀ : EuclideanSpace (Fin 3)} {f : TimeSpaceEuclideanSpace (Fin 3)} (h' : Differentiable f₀) (hf : f = planeWave f₀ c s) :
      DifferentiableAt (fun (t : Time) => (fun (a b : WithLp 2 (Fin 3)) => (WithLp.equiv 2 (Fin 3)).symm ((crossProduct ((WithLp.equiv 2 (Fin 3)) a)) ((WithLp.equiv 2 (Fin 3)) b))) (s.unit 3) (f t x)) t
      theorem ClassicalMechanics.crossProduct_differentiable_of_right_eq_planewave {u : } {s : Space.Direction} {f₀ : EuclideanSpace (Fin 3)} (h' : Differentiable f₀) :
      DifferentiableAt (fun (u : ) => (fun (a b : WithLp 2 (Fin 3)) => (WithLp.equiv 2 (Fin 3)).symm ((crossProduct ((WithLp.equiv 2 (Fin 3)) a)) ((WithLp.equiv 2 (Fin 3)) b))) (s.unit 3) (f₀ u)) u
      theorem ClassicalMechanics.wave_fderiv_inner_eq_inner_fderiv_proj {d : } {c t : } {f₀ : EuclideanSpace (Fin d)} {s : Space.Direction d} {i : Fin d} (h' : Differentiable f₀) (x y : EuclideanSpace (Fin d)) :
      s.unit i * (fderiv (fun (x : EuclideanSpace (Fin d)) => f₀ (inner x s.unit - c * t)) x) y i = inner y s.unit * (fderiv (fun (x : EuclideanSpace (Fin d)) => f₀ (inner x s.unit - c * t) i) x) (EuclideanSpace.single i 1)