Documentation

Mathlib.Analysis.MellinTransform

The Mellin transform #

We define the Mellin transform of a locally integrable function on Ioi 0, and show it is differentiable in a suitable vertical strip.

Main statements #

def MellinConvergent {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) :

Predicate on f and s asserting that the Mellin integral is well-defined.

Equations
    Instances For
      theorem MellinConvergent.const_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f : โ„ โ†’ E} {s : โ„‚} (hf : MellinConvergent f s) {๐•œ : Type u_2} [NormedAddCommGroup ๐•œ] [SMulZeroClass ๐•œ E] [IsBoundedSMul ๐•œ E] [SMulCommClass โ„‚ ๐•œ E] (c : ๐•œ) :
      MellinConvergent (fun (t : โ„) => c โ€ข f t) s
      theorem MellinConvergent.div_const {f : โ„ โ†’ โ„‚} {s : โ„‚} (hf : MellinConvergent f s) (a : โ„‚) :
      MellinConvergent (fun (t : โ„) => f t / a) s
      theorem MellinConvergent.comp_mul_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f : โ„ โ†’ E} {s : โ„‚} {a : โ„} (ha : 0 < a) :
      MellinConvergent (fun (t : โ„) => f (a * t)) s โ†” MellinConvergent f s
      theorem MellinConvergent.comp_rpow {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f : โ„ โ†’ E} {s : โ„‚} {a : โ„} (ha : a โ‰  0) :
      MellinConvergent (fun (t : โ„) => f (t ^ a)) s โ†” MellinConvergent f (s / โ†‘a)
      def Complex.VerticalIntegrable {E : Type u_1} [NormedAddCommGroup E] (f : โ„‚ โ†’ E) (ฯƒ : โ„) (ฮผ : MeasureTheory.Measure โ„ := by volume_tac) :

      A function f is VerticalIntegrable at ฯƒ if y โ†ฆ f(ฯƒ + yi) is integrable.

      Equations
        Instances For
          def mellin {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) :
          E

          The Mellin transform of a function f (for a complex exponent s), defined as the integral of t ^ (s - 1) โ€ข f over Ioi 0.

          Equations
            Instances For
              def mellinInv {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (ฯƒ : โ„) (f : โ„‚ โ†’ E) (x : โ„) :
              E

              The Mellin inverse transform of a function f, defined as 1 / (2ฯ€) times the integral of y โ†ฆ x ^ -(ฯƒ + yi) โ€ข f (ฯƒ + yi).

              Equations
                Instances For
                  theorem mellin_cpow_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s a : โ„‚) :
                  mellin (fun (t : โ„) => โ†‘t ^ a โ€ข f t) s = mellin f (s + a)
                  theorem mellin_const_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) {๐•œ : Type u_2} [NormedField ๐•œ] [NormedSpace ๐•œ E] [SMulCommClass โ„‚ ๐•œ E] (c : ๐•œ) :
                  mellin (fun (t : โ„) => c โ€ข f t) s = c โ€ข mellin f s

                  Compatibility with scalar multiplication by a normed field. For scalar multiplication by more general rings assuming a priori that the Mellin transform is defined, see hasMellin_const_smul.

                  theorem mellin_div_const (f : โ„ โ†’ โ„‚) (s a : โ„‚) :
                  mellin (fun (t : โ„) => f t / a) s = mellin f s / a
                  theorem mellin_comp_rpow {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) (a : โ„) :
                  mellin (fun (t : โ„) => f (t ^ a)) s = |a|โปยน โ€ข mellin f (s / โ†‘a)
                  theorem mellin_comp_mul_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) {a : โ„} (ha : 0 < a) :
                  mellin (fun (t : โ„) => f (a * t)) s = โ†‘a ^ (-s) โ€ข mellin f s
                  theorem mellin_comp_mul_right {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) {a : โ„} (ha : 0 < a) :
                  mellin (fun (t : โ„) => f (t * a)) s = โ†‘a ^ (-s) โ€ข mellin f s
                  theorem mellin_comp_inv {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) :
                  mellin (fun (t : โ„) => f tโปยน) s = mellin f (-s)
                  def HasMellin {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] (f : โ„ โ†’ E) (s : โ„‚) (m : E) :

                  Predicate standing for "the Mellin transform of f is defined at s and equal to m". This shortens some arguments.

                  Equations
                    Instances For
                      theorem hasMellin_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f g : โ„ โ†’ E} {s : โ„‚} (hf : MellinConvergent f s) (hg : MellinConvergent g s) :
                      HasMellin (fun (t : โ„) => f t + g t) s (mellin f s + mellin g s)
                      theorem hasMellin_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f g : โ„ โ†’ E} {s : โ„‚} (hf : MellinConvergent f s) (hg : MellinConvergent g s) :
                      HasMellin (fun (t : โ„) => f t - g t) s (mellin f s - mellin g s)
                      theorem hasMellin_const_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {f : โ„ โ†’ E} {s : โ„‚} (hf : MellinConvergent f s) {R : Type u_2} [NormedRing R] [Module R E] [IsBoundedSMul R E] [SMulCommClass โ„‚ R E] (c : R) :
                      HasMellin (fun (t : โ„) => c โ€ข f t) s (c โ€ข mellin f s)

                      Convergence of Mellin transform integrals #

                      Auxiliary lemma to reduce convergence statements from vector-valued functions to real scalar-valued functions.

                      theorem mellin_convergent_top_of_isBigO {f : โ„ โ†’ โ„} (hfc : MeasureTheory.AEStronglyMeasurable f (MeasureTheory.volume.restrict (Set.Ioi 0))) {a s : โ„} (hf : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) (hs : s < a) :
                      โˆƒ (c : โ„), 0 < c โˆง MeasureTheory.IntegrableOn (fun (t : โ„) => t ^ (s - 1) * f t) (Set.Ioi c) MeasureTheory.volume

                      If f is a locally integrable real-valued function which is O(x ^ (-a)) at โˆž, then for any s < a, its Mellin transform converges on some neighbourhood of +โˆž.

                      theorem mellin_convergent_zero_of_isBigO {b : โ„} {f : โ„ โ†’ โ„} (hfc : MeasureTheory.AEStronglyMeasurable f (MeasureTheory.volume.restrict (Set.Ioi 0))) (hf : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) {s : โ„} (hs : b < s) :
                      โˆƒ (c : โ„), 0 < c โˆง MeasureTheory.IntegrableOn (fun (t : โ„) => t ^ (s - 1) * f t) (Set.Ioc 0 c) MeasureTheory.volume

                      If f is a locally integrable real-valued function which is O(x ^ (-b)) at 0, then for any b < s, its Mellin transform converges on some right neighbourhood of 0.

                      theorem mellin_convergent_of_isBigO_scalar {a b : โ„} {f : โ„ โ†’ โ„} {s : โ„} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) (hs_top : s < a) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s) :

                      If f is a locally integrable real-valued function on Ioi 0 which is O(x ^ (-a)) at โˆž and O(x ^ (-b)) at 0, then its Mellin transform integral converges for b < s < a.

                      theorem mellinConvergent_of_isBigO_rpow {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {a b : โ„} {f : โ„ โ†’ E} {s : โ„‚} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) (hs_top : s.re < a) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s.re) :
                      theorem isBigO_rpow_top_log_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {a b : โ„} {f : โ„ โ†’ E} (hab : b < a) (hf : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) :
                      (fun (t : โ„) => Real.log t โ€ข f t) =O[Filter.atTop] fun (x : โ„) => x ^ (-b)

                      If f is O(x ^ (-a)) as x โ†’ +โˆž, then log โ€ข f is O(x ^ (-b)) for every b < a.

                      theorem isBigO_rpow_zero_log_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {a b : โ„} {f : โ„ โ†’ E} (hab : a < b) (hf : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-a)) :
                      (fun (t : โ„) => Real.log t โ€ข f t) =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)

                      If f is O(x ^ (-a)) as x โ†’ 0, then log โ€ข f is O(x ^ (-b)) for every a < b.

                      theorem mellin_hasDerivAt_of_isBigO_rpow {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {a b : โ„} {f : โ„ โ†’ E} {s : โ„‚} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) (hs_top : s.re < a) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s.re) :
                      MellinConvergent (fun (t : โ„) => Real.log t โ€ข f t) s โˆง HasDerivAt (mellin f) (mellin (fun (t : โ„) => Real.log t โ€ข f t) s) s

                      Suppose f is locally integrable on (0, โˆž), is O(x ^ (-a)) as x โ†’ โˆž, and is O(x ^ (-b)) as x โ†’ 0. Then its Mellin transform is differentiable on the domain b < re s < a, with derivative equal to the Mellin transform of log โ€ข f.

                      theorem mellin_differentiableAt_of_isBigO_rpow {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {a b : โ„} {f : โ„ โ†’ E} {s : โ„‚} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (x : โ„) => x ^ (-a)) (hs_top : s.re < a) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s.re) :

                      Suppose f is locally integrable on (0, โˆž), is O(x ^ (-a)) as x โ†’ โˆž, and is O(x ^ (-b)) as x โ†’ 0. Then its Mellin transform is differentiable on the domain b < re s < a.

                      theorem mellinConvergent_of_isBigO_rpow_exp {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {a b : โ„} (ha : 0 < a) {f : โ„ โ†’ E} {s : โ„‚} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (t : โ„) => Real.exp (-a * t)) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s.re) :

                      If f is locally integrable, decays exponentially at infinity, and is O(x ^ (-b)) at 0, then its Mellin transform converges for b < s.re.

                      theorem mellin_differentiableAt_of_isBigO_rpow_exp {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„‚ E] {a b : โ„} (ha : 0 < a) {f : โ„ โ†’ E} {s : โ„‚} (hfc : MeasureTheory.LocallyIntegrableOn f (Set.Ioi 0) MeasureTheory.volume) (hf_top : f =O[Filter.atTop] fun (t : โ„) => Real.exp (-a * t)) (hf_bot : f =O[nhdsWithin 0 (Set.Ioi 0)] fun (x : โ„) => x ^ (-b)) (hs_bot : b < s.re) :

                      If f is locally integrable, decays exponentially at infinity, and is O(x ^ (-b)) at 0, then its Mellin transform is holomorphic on b < s.re.

                      Mellin transforms of functions on Ioc 0 1 #

                      theorem hasMellin_one_Ioc {s : โ„‚} (hs : 0 < s.re) :
                      HasMellin ((Set.Ioc 0 1).indicator fun (x : โ„) => 1) s (1 / s)

                      The Mellin transform of the indicator function of Ioc 0 1.

                      theorem hasMellin_cpow_Ioc (a : โ„‚) {s : โ„‚} (hs : 0 < s.re + a.re) :
                      HasMellin ((Set.Ioc 0 1).indicator fun (t : โ„) => โ†‘t ^ a) s (1 / (s + a))

                      The Mellin transform of a power function restricted to Ioc 0 1.