Documentation

Mathlib.MeasureTheory.Integral.CircleAverage

Circle Averages #

For a function f on the complex plane, this file introduces the definition Real.circleAverage f c R as a shorthand for the average of f on the circle with center c and radius R, equipped with the rotation-invariant measure of total volume one. Like IntervalAverage, this notion exists as a convenience. It avoids notationally inconvenient compositions of f with circleMap and avoids the need to manually eliminate 2 * ฯ€ every time an average is computed.

Note: Like the interval average defined in Mathlib/MeasureTheory/Integral/IntervalAverage.lean, the circleAverage defined here is a purely measure-theoretic average. It should not be confused with circleIntegral, which is the path integral over the circle path. The relevant integrability property circleAverage is CircleIntegrable, as defined in Mathlib/MeasureTheory/Integral/CircleIntegral.lean.

Implementation Note: Like circleMap, circleAverages are defined for negative radii. The theorem circleAverage_congr_negRadius shows that the average is independent of the radius' sign.

Definition #

noncomputable def Real.circleAverage {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] (f : โ„‚ โ†’ E) (c : โ„‚) (R : โ„) :
E

Define circleAverage f c R as the average value of f on the circle with center c and radius R. This is a real notion, which should not be confused with the complex path integral notion defined in circleIntegral (integrating with respect to dz).

Equations
    Instances For

      If 'f' is not circle integrable, then the circle average is zero by definition.

      theorem Real.circleAverage_eq_intervalAverage {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
      circleAverage f c R = โจ (ฮธ : โ„) in 0..2 * Real.pi, f (circleMap c R ฮธ)

      Expression of circleAverage in terms of interval averages.

      @[simp]
      theorem Real.circleAverage_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} [CompleteSpace E] :
      circleAverage f c 0 = f c

      Interval averages for zero radii equal values at the center point.

      theorem Real.circleAverage_map_add_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
      circleAverage (fun (z : โ„‚) => f (z + c)) 0 R = circleAverage f c R

      Expression of circleAverage with arbitrary center in terms of circleAverage with center zero.

      Congruence Lemmata #

      theorem Real.circleAverage_eq_integral_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (ฮท : โ„) :
      circleAverage f c R = (2 * Real.pi)โปยน โ€ข โˆซ (ฮธ : โ„) in 0..2 * Real.pi, f (circleMap c R (ฮธ + ฮท))

      Circle averages do not change when shifting the angle.

      @[simp]
      theorem Real.circleAverage_neg_radius {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :

      Circle averages do not change when replacing the radius by its negative.

      @[simp]

      Circle averages do not change when replacing the radius by its absolute value.

      theorem Real.circleAverage_congr_codiscreteWithin {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hf : fโ‚ =แถ [Filter.codiscreteWithin (Metric.sphere c |R|)] fโ‚‚) (hR : R โ‰  0) :
      circleAverage fโ‚ c R = circleAverage fโ‚‚ c R

      If two functions agree outside of a discrete set in the circle, then their averages agree.

      theorem Real.circleAverage_congr_sphere {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ E} (hf : Set.EqOn fโ‚ fโ‚‚ (Metric.sphere c |R|)) :
      circleAverage fโ‚ c R = circleAverage fโ‚‚ c R

      If two functions agree on the circle, then their circle averages agree.

      theorem Real.circleAverage_eq_circleAverage_zero_one {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
      circleAverage f c R = circleAverage (fun (z : โ„‚) => f (โ†‘R * z + c)) 0 1

      Express the circle average over an arbitrary circle as a circle average over the unit circle.

      @[simp]

      The circle average of a function f on the unit sphere equals the circle average of the function z โ†ฆ f zโปยน.

      Constant Functions #

      theorem Real.circleAverage_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] [CompleteSpace E] (a : E) (c : โ„‚) (R : โ„) :
      circleAverage (fun (x : โ„‚) => a) c R = a

      The circle average of a constant function equals the constant.

      theorem Real.circleAverage_const_on_circle {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} [CompleteSpace E] {a : E} (hf : โˆ€ x โˆˆ Metric.sphere c |R|, f x = a) :

      If f x equals a on for every point of the circle, then the circle average of f equals a.

      Inequalities #

      theorem Real.circleAverage_mono {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) (h : โˆ€ x โˆˆ Metric.sphere c |R|, fโ‚ x โ‰ค fโ‚‚ x) :
      circleAverage fโ‚ c R โ‰ค circleAverage fโ‚‚ c R

      Circle averages respect the โ‰ค relation.

      theorem Real.circleAverage_mono_on_of_le_circle {c : โ„‚} {R : โ„} {f : โ„‚ โ†’ โ„} {a : โ„} (hf : CircleIntegrable f c R) (hโ‚‚f : โˆ€ x โˆˆ Metric.sphere c |R|, f x โ‰ค a) :

      If f x is smaller than a on for every point of the circle, then the circle average of f is smaller than a.

      Analogue of intervalIntegral.abs_integral_le_integral_abs: The absolute value of a circle average is less than or equal to the circle average of the absolute value of the function.

      theorem Real.circleAverage_nonneg_of_nonneg {c : โ„‚} {R : โ„} {f : โ„‚ โ†’ โ„} (hโ‚‚f : โˆ€ x โˆˆ Metric.sphere c |R|, 0 โ‰ค f x) :

      The circle average of a nonnegative function is nonnegative.

      Commutativity with Linear Maps #

      Circle averages commute with continuous linear maps.

      Behaviour with Respect to Arithmetic Operations #

      theorem Real.circleAverage_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {๐•œ : Type u_3} [NormedDivisionRing ๐•œ] [Module ๐•œ E] [NormSMulClass ๐•œ E] [SMulCommClass โ„ ๐•œ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} {a : ๐•œ} :

      Circle averages commute with scalar multiplication.

      theorem Real.circleAverage_fun_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {๐•œ : Type u_3} [NormedDivisionRing ๐•œ] [Module ๐•œ E] [NormSMulClass ๐•œ E] [SMulCommClass โ„ ๐•œ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} {a : ๐•œ} :
      circleAverage (fun (z : โ„‚) => a โ€ข f z) c R = a โ€ข circleAverage f c R

      Circle averages commute with scalar multiplication.

      theorem Real.circleAverage_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
      circleAverage (fโ‚ + fโ‚‚) c R = circleAverage fโ‚ c R + circleAverage fโ‚‚ c R

      Circle averages commute with addition.

      theorem Real.circleAverage_fun_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ E} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
      circleAverage (fun (z : โ„‚) => fโ‚ z + fโ‚‚ z) c R = circleAverage fโ‚ c R + circleAverage fโ‚‚ c R

      Circle averages commute with addition.

      theorem Real.circleAverage_sum {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {ฮน : Type u_4} {s : Finset ฮน} {f : ฮน โ†’ โ„‚ โ†’ E} (h : โˆ€ i โˆˆ s, CircleIntegrable (f i) c R) :
      circleAverage (โˆ‘ i โˆˆ s, f i) c R = โˆ‘ i โˆˆ s, circleAverage (f i) c R

      Circle averages commute with sums.

      theorem Real.circleAverage_fun_sum {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {ฮน : Type u_4} {s : Finset ฮน} {f : ฮน โ†’ โ„‚ โ†’ E} (h : โˆ€ i โˆˆ s, CircleIntegrable (f i) c R) :
      circleAverage (fun (z : โ„‚) => โˆ‘ i โˆˆ s, f i z) c R = โˆ‘ i โˆˆ s, circleAverage (f i) c R

      Circle averages commute with sums.

      theorem Real.circleAverage_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
      circleAverage (fโ‚ - fโ‚‚) c R = circleAverage fโ‚ c R - circleAverage fโ‚‚ c R

      Circle averages commute with subtraction.

      theorem Real.circleAverage_fun_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
      circleAverage (fun (z : โ„‚) => fโ‚ z - fโ‚‚ z) c R = circleAverage fโ‚ c R - circleAverage fโ‚‚ c R

      Circle averages commute with subtraction.