PhysLean Documentation

PhysLean.Mathematics.VariationalCalculus.HasVarAdjoint

Variational adjoint #

Definition of adjoint of linear function between function spaces. It is inspired by the definition of distributional adjoint of linear maps between test functions as described here: https://en.wikipedia.org/wiki/Distribution_(mathematics) under 'Preliminaries: Transpose of a linear operator' but we require that the adjoint is function between test functions too.

The key results are:

def IsLocalizedFunctionTransform {X : Type u_1} [NormedAddCommGroup X] {Y : Type u_2} [NormedAddCommGroup Y] {U : Type u_3} {V : Type u_4} (F : (XU)YV) :

Function transformation F is localizable if the values of the transformed function F φ on some compact set K can depend only on the values of φ on some another compact set L.

Equations
Instances For
    structure HasVarAdjoint {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {Y : Type u_2} [NormedAddCommGroup Y] [NormedSpace Y] [MeasureTheory.MeasureSpace Y] {U : Type u_3} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_4} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] (F : (XU)YV) (F' : (YV)XU) :

    Map F from (X → U) to (X → V) has a variational adjoint F' if it preserves test functions and satisfies the adjoint relation ⟪F φ, ψ⟫ = ⟪φ, F' ψ⟫for all test functions φ and ψ for ⟪φ, ψ⟫ = ∫ x, ⟪φ x, ψ x⟫_ℝ ∂μ.

    The canonical example is the function F = deriv that has adjoint F' = - deriv.

    This notion of adjoint allows us to do formally variational calculus as often encountered in physics textbooks. In mathematical literature, the adjoint is often defined for unbounded operators, but such formal treatement is unnecessarily complicated for physics applications.

    Instances For
      theorem HasVarAdjoint.id {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] :
      HasVarAdjoint (fun (φ : XU) => φ) fun (φ : XU) => φ
      theorem HasVarAdjoint.zero {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {Y : Type u_2} [NormedAddCommGroup Y] [NormedSpace Y] [MeasureTheory.MeasureSpace Y] {U : Type u_3} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_4} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] :
      HasVarAdjoint (fun (x : XU) (x : Y) => 0) fun (x : YV) (x : X) => 0
      theorem HasVarAdjoint.comp {X : Type u_5} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {Y : Type u_1} [NormedAddCommGroup Y] [NormedSpace Y] [MeasureTheory.MeasureSpace Y] {Z : Type u_2} [NormedAddCommGroup Z] [NormedSpace Z] [MeasureTheory.MeasureSpace Z] {U : Type u_6} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] {W : Type u_4} [NormedAddCommGroup W] [NormedSpace W] [InnerProductSpace' W] {F : (YV)ZW} {G : (XU)YV} {F' : (ZW)YV} {G' : (YV)XU} (hF : HasVarAdjoint F F') (hG : HasVarAdjoint G G') :
      HasVarAdjoint (fun (φ : XU) => F (G φ)) fun (φ : ZW) => G' (F' φ)
      theorem HasVarAdjoint.deriv :
      HasVarAdjoint (fun (φ : ) => deriv φ) fun (φ : ) (x : ) => -deriv φ x
      theorem HasVarAdjoint.congr_fun {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {Y : Type u_2} [NormedAddCommGroup Y] [NormedSpace Y] [MeasureTheory.MeasureSpace Y] {U : Type u_3} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_4} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] {F G : (XU)YV} {F' : (YV)XU} (h : HasVarAdjoint G F') (h' : ∀ (φ : XU), IsTestFunction φF φ = G φ) :

      Variational adjoint is unique only when applied to test functions.

      Variational adjoint is unique only when applied to smooth functions.

      theorem HasVarAdjoint.neg {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] {F : (XU)XV} {F' : (XV)XU} (hF : HasVarAdjoint F F') :
      HasVarAdjoint (fun (φ : XU) (x : X) => -F φ x) fun (φ : XV) (x : X) => -F' φ x
      theorem HasVarAdjoint.add {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] [OpensMeasurableSpace X] [MeasureTheory.IsFiniteMeasureOnCompacts MeasureTheory.volume] {F G : (XU)XV} {F' G' : (XV)XU} (hF : HasVarAdjoint F F') (hG : HasVarAdjoint G G') :
      HasVarAdjoint (fun (φ : XU) (x : X) => F φ x + G φ x) fun (φ : XV) (x : X) => F' φ x + G' φ x
      theorem HasVarAdjoint.sub {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] [OpensMeasurableSpace X] [MeasureTheory.IsFiniteMeasureOnCompacts MeasureTheory.volume] {F G : (XU)XV} {F' G' : (XV)XU} (hF : HasVarAdjoint F F') (hG : HasVarAdjoint G G') :
      HasVarAdjoint (fun (φ : XU) (x : X) => F φ x - G φ x) fun (φ : XV) (x : X) => F' φ x - G' φ x
      theorem HasVarAdjoint.mul_left {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {F : (X)X} {ψ : X} {F' : (X)X} (hF : HasVarAdjoint F F') ( : ContDiff (↑) ψ) :
      HasVarAdjoint (fun (φ : X) (x : X) => ψ x * F φ x) fun (φ : X) (x : X) => F' (fun (x : X) => ψ x * φ x) x
      theorem HasVarAdjoint.mul_right {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {F : (X)X} {ψ : X} {F' : (X)X} (hF : HasVarAdjoint F F') ( : ContDiff (↑) ψ) :
      HasVarAdjoint (fun (φ : X) (x : X) => F φ x * ψ x) fun (φ : X) (x : X) => F' (fun (x : X) => φ x * ψ x) x
      theorem HasVarAdjoint.smul_left {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] {F : (XU)XV} {ψ : X} {F' : (XV)XU} (hF : HasVarAdjoint F F') ( : ContDiff (↑) ψ) :
      HasVarAdjoint (fun (φ : XU) (x : X) => ψ x F φ x) fun (φ : XV) (x : X) => F' (fun (x' : X) => ψ x' φ x') x
      theorem HasVarAdjoint.smul_right {X : Type u_1} [NormedAddCommGroup X] [NormedSpace X] [MeasureTheory.MeasureSpace X] {U : Type u_2} [NormedAddCommGroup U] [NormedSpace U] [InnerProductSpace' U] {V : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [InnerProductSpace' V] {F : (XU)XV} {ψ : X} {F' : (XV)XU} (hF : HasVarAdjoint F F') ( : ContDiff (↑) ψ) :
      HasVarAdjoint (fun (φ : XU) (x : X) => ψ x F φ x) fun (φ : XV) (x : X) => F' (fun (x' : X) => ψ x' φ x') x