Documentation

Mathlib.Analysis.Fourier.FourierTransformDeriv

Derivative 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 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 x * f x.

Main definitions and results #

We introduce one convenience definition:

With this definition, 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 in Real.deriv_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.

    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.

    theorem Real.fderiv_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.

    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.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) (x : ) :
    deriv (Real.fourierIntegral f) x = Real.fourierIntegral (fun (x : ) => (-2 * Real.pi * Complex.I * x) f x) x