Documentation

Mathlib.Analysis.Fourier.FourierTransformDeriv

Derivatives of the Fourier transform #

In this file we compute the Fréchet derivative of the Fourier transform of f, where f is a function such that both f and v ↦ ‖v‖ * ‖f v‖ are integrable. Here the Fourier transform is understood as an operator (V → E) → (W → E), where V and W are normed -vector spaces and the Fourier transform is taken with respect to a continuous -bilinear pairing L : V × W → ℝ and a given reference measure μ.

We also investigate higher derivatives: Assuming that ‖v‖^n * ‖f v‖ is integrable, we show that the Fourier transform of f is C^n.

We give specialized versions of these results on inner product spaces (where L is the scalar product) and on the real line, where we express the one-dimensional derivative in more concrete terms, as the Fourier transform of -2πI x * f x (or (-2πI x)^n * f x for higher derivatives).

Main definitions and results #

We introduce two convenience definitions:

With these definitions, the statements read as follows, first in a general context (arbitrary L and μ):

These statements are then specialized to the case of the usual Fourier transform on finite-dimensional inner product spaces with their canonical Lebesgue measure (covering in particular the case of the real line), replacing the namespace VectorFourier by the namespace Real in the above statements.

We also give specialized versions of the one-dimensional real derivative (and iterated derivative) in Real.deriv_fourierIntegral and Real.iteratedDeriv_fourierIntegral.

theorem Real.hasDerivAt_fourierChar (x : ) :
HasDerivAt (fun (x : ) => (Real.fourierChar x)) (2 * Real.pi * Complex.I * (Real.fourierChar x)) x

Send a function f : V → E to the function f : V → Hom (W, E) given by v ↦ (w ↦ -2 * π * I * L (v, w) • f v). This is designed so that the Fourier transform of fourierSMulRight L f is the derivative of the Fourier transform of f.

Equations
Instances For
    @[simp]
    theorem VectorFourier.fourierSMulRight_apply {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} {W : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [NormedAddCommGroup W] [NormedSpace W] (L : V →L[] W →L[] ) (f : VE) (v : V) (w : W) :
    theorem VectorFourier.hasFDerivAt_fourierChar_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} {W : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [NormedAddCommGroup W] [NormedSpace W] (L : V →L[] W →L[] ) (f : VE) (v : V) (w : W) :
    HasFDerivAt (fun (w' : W) => Real.fourierChar (-(L v) w') f v) (Real.fourierChar (-(L v) w) VectorFourier.fourierSMulRight L f v) w

    The w-derivative of the Fourier transform integrand.

    Main theorem of this section: if both f and x ↦ ‖x‖ * ‖f x‖ are integrable, then the Fourier transform of f has a Fréchet derivative (everywhere in its domain) and its derivative is the Fourier transform of smulRight L f.

    The formal multilinear series whose n-th term is (w₁, ..., wₙ) ↦ (-2πI)^n * L v w₁ * ... * L v wₙ • f v, as a continuous multilinear map in the space W [×n]→L[ℝ] E.

    This is designed so that the Fourier transform of v ↦ fourierPowSMulRight L f v n is the n-th derivative of the Fourier transform of f.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem VectorFourier.fourierPowSMulRight_apply {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} {W : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [NormedAddCommGroup W] [NormedSpace W] (L : V →L[] W →L[] ) {f : VE} {v : V} {n : } {m : Fin nW} :
      (VectorFourier.fourierPowSMulRight L f v n) m = (-(2 * Real.pi * Complex.I)) ^ n (Finset.prod Finset.univ fun (i : Fin n) => (L v) (m i)) f v

      Decomposing fourierPowSMulRight L f v n as a composition of continuous bilinear and multilinear maps, to deduce easily its continuity and differentiability properties.

      theorem ContDiff.fourierPowSMulRight {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} {W : Type u_3} [NormedAddCommGroup V] [NormedSpace V] [NormedAddCommGroup W] [NormedSpace W] (L : V →L[] W →L[] ) {f : VE} {k : ℕ∞} (hf : ContDiff k f) (n : ) :

      If ‖v‖^n * ‖f v‖ is integrable for all n ≤ N, then the Fourier transform of f is C^N.

      If ‖v‖^n * ‖f v‖ is integrable for all n ≤ N, then the n-th derivative of the Fourier transform of f is the Fourier transform of fourierPowSMulRight L f v n, i.e., (L v ⬝) ^ n • f v.

      theorem Real.hasFDerivAt_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [FiniteDimensional V] [MeasurableSpace V] [BorelSpace V] {f : VE} (hf_int : MeasureTheory.Integrable f MeasureTheory.volume) (hvf_int : MeasureTheory.Integrable (fun (v : V) => v * f v) MeasureTheory.volume) (x : V) :

      The Fréchet derivative of the Fourier transform of f is the Fourier transform of fun v ↦ -2 * π * I ⟪v, ⬝⟫ f v.

      The Fréchet derivative of the Fourier transform of f is the Fourier transform of fun v ↦ -2 * π * I ⟪v, ⬝⟫ f v.

      theorem Real.differentiable_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [FiniteDimensional V] [MeasurableSpace V] [BorelSpace V] {f : VE} (hf_int : MeasureTheory.Integrable f MeasureTheory.volume) (hvf_int : MeasureTheory.Integrable (fun (v : V) => v * f v) MeasureTheory.volume) :
      theorem Real.contDiff_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [FiniteDimensional V] [MeasurableSpace V] [BorelSpace V] {f : VE} {N : ℕ∞} (hf : ∀ (n : ), n NMeasureTheory.Integrable (fun (v : V) => v ^ n * f v) MeasureTheory.volume) :

      If ‖v‖^n * ‖f v‖ is integrable, then the Fourier transform of f is C^n.

      theorem Real.iteratedFDeriv_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [FiniteDimensional V] [MeasurableSpace V] [BorelSpace V] {f : VE} {N : ℕ∞} (hf : ∀ (n : ), n NMeasureTheory.Integrable (fun (v : V) => v ^ n * f v) MeasureTheory.volume) (h'f : MeasureTheory.AEStronglyMeasurable f MeasureTheory.volume) {n : } (hn : n N) :

      If ‖v‖^n * ‖f v‖ is integrable, then the n-th derivative of the Fourier transform of f is the Fourier transform of fun v ↦ (-2 * π * I) ^ n ⟪v, ⬝⟫^n f v.

      theorem Real.hasDerivAt_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {f : E} (hf : MeasureTheory.Integrable f MeasureTheory.volume) (hf' : MeasureTheory.Integrable (fun (x : ) => x f x) MeasureTheory.volume) (w : ) :
      HasDerivAt (Real.fourierIntegral f) (Real.fourierIntegral (fun (x : ) => (-2 * Real.pi * Complex.I * x) f x) w) w
      theorem Real.deriv_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {f : E} (hf : MeasureTheory.Integrable f MeasureTheory.volume) (hf' : MeasureTheory.Integrable (fun (x : ) => x f x) MeasureTheory.volume) :
      theorem Real.iteratedDeriv_fourierIntegral {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {f : E} {N : ℕ∞} {n : } (hf : ∀ (n : ), n NMeasureTheory.Integrable (fun (x : ) => x ^ n f x) MeasureTheory.volume) (hn : n N) :