Analyticity on a Bernstein ellipse gives geometric coefficient decay and geometric approximation error. The converse theorems recover analyticity from sufficiently fast approximation.
2.5.1 Bernstein ellipses
The Joukowski map sends an annulus to an ellipse with foci \(-1\) and \(1\). This geometry relates complex analyticity to approximation on the interval.
For \(\rho {\gt}1\), \(E_\rho =J(\{ z:\rho ^{-1}{\lt}|z|{\lt}\rho \} )\). For nonzero \(z\), membership of \(J(z)\) in \(E_\rho \) is equivalent to these annulus inequalities.
For every nonzero \(z\), \(J(z)=(z+z^{-1})/2\). If \(|z|=1\), then \(z\ne 0\), \(-1\le \operatorname {Re}z\le 1\), and \(J(z)=\operatorname {Re}z\). Reference: [ATAP, Chapter 8].
Lean Formalisation
theorem Complex.joukowski_apply (z : { z // z ≠ 0 }) : Complex.joukowski z = (↑z + (↑z)⁻¹) / 2
Lean proof
/-- Classical value of the Joukowski map (ATAP, Chapter 8). -/
theorem joukowski_apply (z : {z : ℂ // z ≠ 0}) :
joukowski z = (z.val + z.val⁻¹) / 2 := rfl
/-- A unit-circle point has real part in the approximation interval. -/
theorem unitCircle_re_mem (z : Metric.sphere (0 : ℂ) |(1 : ℝ)|) :
z.val.re ∈ Set.Icc (-1 : ℝ) 1 := by
have hn : ‖z.val‖ = 1 := by simpa only [Metric.mem_sphere, dist_zero_right, abs_one] using z.property
exact abs_le.mp ((Complex.abs_re_le_norm z.val).trans_eq hn)
/-- A unit-circle point is nonzero. -/
theorem unitCircle_ne_zero (z : Metric.sphere (0 : ℂ) |(1 : ℝ)|) : z.val ≠ 0 := by
apply norm_pos_iff.mp
have hn : ‖z.val‖ = 1 := by simpa only [Metric.mem_sphere, dist_zero_right, abs_one] using z.property
rw [hn]
norm_num
theorem Complex.joukowski_sub_one (z : { z // z ≠ 0 }) : Complex.joukowski z - 1 = (↑z - 1) ^ 2 / (2 * ↑z)
Lean proof
/-- Factoring the distance to the right focus (ATAP, Chapter 8). -/
theorem joukowski_sub_one (z : {z : ℂ // z ≠ 0}) :
joukowski z - 1 = (z.val - 1) ^ 2 / (2 * z.val) := by
unfold joukowski
field_simp [z.property]
ring
theorem Complex.joukowski_add_one (z : { z // z ≠ 0 }) : Complex.joukowski z + 1 = (↑z + 1) ^ 2 / (2 * ↑z)
Lean proof
/-- Factoring the distance to the left focus (ATAP, Chapter 8). -/
theorem joukowski_add_one (z : {z : ℂ // z ≠ 0}) :
joukowski z + 1 = (z.val + 1) ^ 2 / (2 * z.val) := by
unfold joukowski
field_simp [z.property]
ring
theorem Complex.norm_joukowski_sub_one_add_norm_joukowski_add_one (z : { z // z ≠ 0 }) :
‖Complex.joukowski z - 1‖ + ‖Complex.joukowski z + 1‖ = ‖↑z‖ + ‖↑z‖⁻¹
Lean proof
/-- The focal-distance identity underlying Bernstein ellipses (ATAP, Chapter 8). -/
theorem norm_joukowski_sub_one_add_norm_joukowski_add_one (z : {z : ℂ // z ≠ 0}) :
‖joukowski z - 1‖ + ‖joukowski z + 1‖ = ‖z.val‖ + ‖z.val‖⁻¹ := by
rw [joukowski_sub_one z, joukowski_add_one z]
simp only [norm_div, norm_pow, norm_mul, norm_ofNat]
have h : ‖z.val - 1‖ ^ 2 + ‖z.val + 1‖ ^ 2 = 2 * (‖z.val‖ ^ 2 + 1) := by
simp only [← normSq_eq_norm_sq, normSq_apply, sub_re, sub_im, add_re, add_im,
one_re, one_im]
ring
rw [← add_div, h]
field_simp
theorem Complex.exists_joukowski_eq (w : ℂ) : ∃ z, Complex.joukowski z = w
Lean proof
/-- Every complex point has a nonzero Joukowski preimage (ATAP, Chapter 8). -/
theorem exists_joukowski_eq (w : ℂ) : ∃ z : {z : ℂ // z ≠ 0}, joukowski z = w := by
obtain ⟨s, hs⟩ := IsAlgClosed.exists_pow_nat_eq (w ^ 2 - 1) (by decide : 0 < 2)
have hprod : (w + s) * (w - s) = 1 := by linear_combination -hs
have hz : w + s ≠ 0 := by intro h; simp [h] at hprod
refine ⟨⟨w + s, hz⟩, ?_⟩
have hinv : (w + s)⁻¹ = w - s := by
exact inv_eq_of_mul_eq_one_right hprod
change (w + s + (w + s)⁻¹) / 2 = w
rw [hinv]
ring
Complex coefficients use the same full constant convention as real coefficients. The contour formula uses \(\mathcal I_{0,1}\), the integral around the unit circle from Definition 1.1.21.
Definition
2.5.12Inputs for a fixed complex Chebyshev coefficient
retaining pointwise function values. Real functions are regarded as complex functions by scalar inclusion; real and imaginary parts are taken pointwise. Reference: [ATAP, Chapter 3].
Lean Formalisation
def Polynomial.Chebyshev.ComplexCoefficientInput (n : ℕ) : Type
Lean definition
/-- The complex nth coefficient exists exactly on this integrable-product domain. -/
abbrev ComplexCoefficientInput (n : ℕ) :=
{f : ℝ → ℂ // Integrable (fun x ↦ f x * (((T ℝ n).eval x : ℝ) : ℂ)) classicalMeasureT}
/-- L1 data supply the complex input at every index (ATAP Ch. 3). -/
def ComplexCoefficientInput.ofL1 (f : ComplexIntegrableInput) (n : ℕ) :
ComplexCoefficientInput n := by
refine ⟨f.val, integrable_complex_of_re_im ?_ ?_⟩
· simpa using integrable_classicalMeasureT_mul_T ⟨_, f.property.re⟩ n
· simpa using integrable_classicalMeasureT_mul_T ⟨_, f.property.im⟩ n
/-- A real coefficient input also supplies the corresponding complex input. -/
def ComplexCoefficientInput.ofReal {n : ℕ} (f : CoefficientInput n) :
ComplexCoefficientInput n :=
⟨fun x ↦ (f.val x : ℂ), by simpa only [RCLike.ofReal_eq_complex_ofReal, Complex.ofReal_mul] using (f.property.ofReal (𝕜 := ℂ))⟩
/-- Real parts retain the full fixed-index domain. -/
def ComplexCoefficientInput.re {n : ℕ} (f : ComplexCoefficientInput n) : CoefficientInput n :=
⟨fun x ↦ (f.val x).re, by simpa using f.property.re⟩
/-- Imaginary parts retain the full fixed-index domain. -/
def ComplexCoefficientInput.im {n : ℕ} (f : ComplexCoefficientInput n) : CoefficientInput n :=
⟨fun x ↦ (f.val x).im, by simpa using f.property.im⟩
For \(f\in \mathcal I_n^{\mathbb {C}}\), define \(a_n(f)\) by the weighted integrals of Definition 2.2.3, with the same full constant coefficient convention: \(a_0(f)=\pi ^{-1}\int f\, d\mu _T\) and \(a_n(f)=2\pi ^{-1}\int fT_n\, d\mu _T\) for \(n{\gt}0\).
Let \(\rho {\gt}1\). If \(f\) is complex analytic on \(E_\rho \) and \(|f(z)|\le M\) there, then \(|a_n(f)|\le 2M\rho ^{-n}\) for \(n\ge 1\), and \(|a_0(f)|\le M\). No boundary continuity is assumed.
For \(\rho {\gt}1\), let \(f\) be analytic on the open ellipse \(E_\rho \) and satisfy \(|f(z)|\le M\) there. Then the degree-\(N\) truncated Chebyshev expansion has uniform error at most \(2M\rho ^{-N}/(\rho -1)\) on \([-1,1]\). For \(N\ge 1\), interpolation at the \(N+1\) extrema \(\cos (j\pi /N)\) has error at most \(4M\rho ^{-N}/(\rho -1)\). No continuity on the ellipse boundary is assumed.
For \(f(x)=1/(1+25x^2)\), the poles \(\pm i/5\) lie on the ellipse with \(\rho =(1+\sqrt{26})/5\). Using chebcoeffs from Chapter 2.4, inspect the geometric decay of the even coefficients. Odd coefficients vanish in exact arithmetic. Rescaling high-degree numerical coefficients also magnifies their rounding errors.
c=chebcoeffs(x->1/(1+25x^2),200)rho=0.2+sqrt(1.04)[abs(c[n+1])*rho^nfornin20:20:80]# inspect the rescaled even coefficients
Complex coefficient identities and contour estimates
Let \(\mathcal L^1_T(\mathbb {C})\) be the set of functions \(f:\mathbb {R}\to \mathbb {C}\) that are \(\mu _T\)-integrable, retaining their pointwise representatives. Reference: [ATAP, Chapter 3].
Lean Formalisation
def Polynomial.Chebyshev.ComplexIntegrableInput : Type
Every \(f\in \mathcal L^1_T(\mathbb {C})\) is \(\mu _T\)-integrable. If \(f:\mathbb {R}\to \mathbb {C}\) is continuous on \([-1,1]\), then \(f\) is \(\mu _T\)-integrable and hence belongs to \(\mathcal L^1_T(\mathbb {C})\).
For \(f\in \mathcal I_n^{\mathbb {C}}\), the product \(fT_n\) is \(\mu _T\)-integrable. Every \(\mu _T\)-integrable complex function, and every \(f:\mathbb {R}\to \mathbb {C}\) continuous on \([-1,1]\), belongs to \(\mathcal I_n^{\mathbb {C}}\) for every \(n\). Scalar inclusion maps \(\mathcal I_n\) into \(\mathcal I_n^{\mathbb {C}}\), and real and imaginary parts map \(\mathcal I_n^{\mathbb {C}}\) into \(\mathcal I_n\). All these operations preserve the indicated pointwise values. Membership of \(\mathcal I_0^{\mathbb {C}}\) is exactly \(\mu _T\)-integrability of \(f\).
Lean Formalisation
theorem Polynomial.Chebyshev.ComplexCoefficientInput.integrable {n : ℕ} (f : Polynomial.Chebyshev.ComplexCoefficientInput n) :
MeasureTheory.Integrable (fun x => ↑f x * ↑(Polynomial.eval x (Polynomial.Chebyshev.T ℝ ↑n)))
Polynomial.Chebyshev.classicalMeasureT
Lean proof
/-- The defining complex coefficient integrand is integrable. -/
theorem ComplexCoefficientInput.integrable {n : ℕ} (f : ComplexCoefficientInput n) :
Integrable (fun x ↦ f.val x * (((T ℝ n).eval x : ℝ) : ℂ)) classicalMeasureT := f.property
theorem Polynomial.Chebyshev.complexCoefficientInput_zero_iff (f : ℝ → ℂ) :
MeasureTheory.Integrable (fun x => f x * ↑(Polynomial.eval x (Polynomial.Chebyshev.T ℝ ↑0)))
Polynomial.Chebyshev.classicalMeasureT ↔
MeasureTheory.Integrable f Polynomial.Chebyshev.classicalMeasureT
Lean proof
/-- The complex zero-index domain is precisely L1. -/
theorem complexCoefficientInput_zero_iff (f : ℝ → ℂ) :
Integrable (fun x ↦ f x * (((T ℝ (0 : ℕ)).eval x : ℝ) : ℂ)) classicalMeasureT ↔
Integrable f classicalMeasureT := by simp
For \(f\in \mathcal I_n\), the complex coefficient at index \(n\) equals its real coefficient from Definition 2.2.3. For \(f\) continuous on \([-1,1]\),
If \(f:[-1,1]\to \mathbb C\) is continuous and \(\sum _{n\ge 0}|a_n(f)|{\lt}\infty \), then \(f(x)=\sum _{n\ge 0}a_n(f)T_n(x)\) at every \(x\in [-1,1]\), including the endpoints. The real and imaginary parts of \(a_n(f)\) are the corresponding real Chebyshev coefficients.
theorem Polynomial.Chebyshev.hasSum_complexCoefficient_mul_eval_T {f : ℝ → ℂ} (hf : ContinuousOn f (Set.Icc (-1) 1))
(ha :
Summable fun n =>
‖Polynomial.Chebyshev.complexCoefficient (Polynomial.Chebyshev.ComplexCoefficientInput.ofContinuousOn f hf n)‖)
{x : ℝ} (hx : x ∈ Set.Icc (-1) 1) :
HasSum
(fun n =>
Polynomial.Chebyshev.complexCoefficient (Polynomial.Chebyshev.ComplexCoefficientInput.ofContinuousOn f hf n) *
↑(Polynomial.eval x (Polynomial.Chebyshev.T ℝ ↑n)))
(f x)
Lean proof
/-- An absolutely summable complex Chebyshev series represents its continuous
function on the closed interval (ATAP, Chapters 4 and 8). -/
theorem hasSum_complexCoefficient_mul_eval_T {f : ℝ → ℂ}
(hf : ContinuousOn f (Icc (-1) 1))
(ha : Summable (fun n ↦ ‖(complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n))‖))
{x : ℝ} (hx : x ∈ Icc (-1) 1) :
HasSum (fun n : ℕ ↦ (complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n)) * (((T ℝ n).eval x : ℝ) : ℂ)) (f x) := by
have hr : Summable (fun n ↦ |(coefficient (n := n) ⟨(fun x ↦ (f x).re), by first | assumption | apply integrable_classicalMeasureT; fun_prop⟩)|) :=
ha.of_norm_bounded fun n ↦ by
simpa only [Real.norm_eq_abs, abs_abs, ← complexCoefficient_re hf n] using
Complex.abs_re_le_norm ((complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n)))
have hi : Summable (fun n ↦ |(coefficient (n := n) ⟨(fun x ↦ (f x).im), by first | assumption | apply integrable_classicalMeasureT; fun_prop⟩)|) :=
ha.of_norm_bounded fun n ↦ by
simpa only [Real.norm_eq_abs, abs_abs, ← complexCoefficient_im hf n] using
Complex.abs_im_le_norm ((complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n)))
apply (Complex.hasSum_iff _ _).2
constructor
· simpa only [Complex.mul_re, Complex.ofReal_re, Complex.ofReal_im, mul_zero, sub_zero,
complexCoefficient_re hf] using
hasSum_coefficient_mul_eval_T (f := fun x ↦ (f x).re) (Complex.continuous_re.comp_continuousOn hf) hr hx
· simpa only [Complex.mul_im, Complex.ofReal_re, Complex.ofReal_im, mul_zero, zero_add,
complexCoefficient_im hf] using
hasSum_coefficient_mul_eval_T (f := fun x ↦ (f x).im) (Complex.continuous_im.comp_continuousOn hf) hi hx
For \(r{\gt}0\), let \(q_r\in \mathcal C_{0,r}\) satisfy \(|z^{n+1}q_r(z)|\le M\) on \(|z|=r\). Then
\[ \left|\frac{\mathcal I_{0,r}(q_r)}{2\pi i}\right|\le M r^{-n}. \]
If \(g\) is analytic on the closed annulus \(r\le |z|\le R\), where \(0{\lt}r\le R\), and \(q_r(z)=g(z)/z^{n+1}\) and \(q_R(z)=g(z)/z^{n+1}\) on their respective circles, then \(\mathcal I_{0,r}(q_r)=\mathcal I_{0,R}(q_R)\). Finally, let \(\rho {\gt}1\). If \(g\) is analytic at every \(z\) with \(1\le |z|{\lt}\rho \) and \(|g(z)|\le M\) there, then every \(q\in \mathcal C_{0,1}\) with \(q(z)=g(z)/z^{n+1}\) satisfies
theorem Complex.laurent_integral_eq_of_annulus {f : ℂ → ℂ} (r R : ↑(Set.Ioi 0)) (hrR : ↑r ≤ ↑R)
(hf : ∀ z ∈ Metric.closedBall 0 ↑R \ Metric.ball 0 ↑r, AnalyticAt ℂ f z) (n : ℕ)
(gR : Complex.CircleIntegralInput 0 ↑R) (gr : Complex.CircleIntegralInput 0 ↑r)
(hR : ∀ (z : ↑(Metric.sphere 0 |↑R|)), ↑gR z = f ↑z / ↑z ^ (n + 1))
(hrg : ∀ (z : ↑(Metric.sphere 0 |↑r|)), ↑gr z = f ↑z / ↑z ^ (n + 1)) :
Complex.circleIntegralOn gR = Complex.circleIntegralOn gr
Lean proof
/-- Contour deformation for genuine integrable inputs with the given Laurent
integrands (ATAP, proof of Theorem 8.1). -/
theorem laurent_integral_eq_of_annulus {f : ℂ → ℂ} (r R : Set.Ioi (0 : ℝ))
(hrR : r.val ≤ R.val)
(hf : ∀ z ∈ closedBall (0 : ℂ) R.val \ ball 0 r.val, AnalyticAt ℂ f z) (n : ℕ)
(gR : CircleIntegralInput 0 R.val) (gr : CircleIntegralInput 0 r.val)
(hR : ∀ z, gR.val z = f z / z.val ^ (n + 1))
(hrg : ∀ z, gr.val z = f z / z.val ^ (n + 1)) :
circleIntegralOn gR = circleIntegralOn gr := by
rw [circleIntegralOn_eq_circleIntegral gR (fun z => f z / z ^ (n + 1))
(fun z => (hR z).symm),
circleIntegralOn_eq_circleIntegral gr (fun z => f z / z ^ (n + 1))
(fun z => (hrg z).symm)]
exact laurent_integral_eq_of_annulus_circleIntegral r.property hrR hf n
For \(\rho {\gt}1\) and \(f\) analytic and bounded by \(M\) in \(E_\rho \), let \(q\in \mathcal C_{0,1}\) satisfy \(q(z)=f(J(z))/z^{n+1}\), \(n\ge 0\). Then
For \(a:\mathbb N\to \mathbb C\), let \(D_a\) consist of the complex points \(z\) where the natural-order partial sums \(\sum _{n{\lt}N}a_nT_n(z)\) converge to a finite complex limit. Define \(S_a:D_a\to \mathbb C\) to be that limit. This includes conditionally convergent series; no value is assigned elsewhere.
def Polynomial.Chebyshev.ComplexChebyshevSeriesPoint (a : ℕ → ℂ) : Type
Lean definition
/-- Points where the natural-order Chebyshev partial sums have a limit. -/
abbrev ComplexChebyshevSeriesPoint (a : ℕ → ℂ) :=
{z : ℂ // ∃ s : ℂ, Tendsto (fun N : ℕ ↦ ∑ n ∈ Finset.range N,
a n * (T ℂ n).eval z) atTop (𝓝 s)}
def Polynomial.Chebyshev.complexChebyshevSeries (a : ℕ → ℂ) (z : Polynomial.Chebyshev.ComplexChebyshevSeriesPoint a) : ℂ
Lean definition
/-- The classical sum, with convergence carried by the point type. -/
def complexChebyshevSeries (a : ℕ → ℂ) (z : ComplexChebyshevSeriesPoint a) : ℂ :=
z.property.choose
For continuous complex data \(f\) on \([-1,1]\) and \(\rho {\gt}1\), an analytic extension to \(E_\rho \) exists if and only if, for every \(1{\lt}r{\lt}\rho \), there is \(C_r\) such that \(|a_n(f)|\le C_r r^{-n}\) for every \(n\ge 0\). The constant may depend on \(r\).
theorem Polynomial.Chebyshev.exists_analytic_extension_iff_coefficient_decay {f : ℝ → ℂ} {ρ : ℝ} (hρ : 1 < ρ)
(hf : ContinuousOn f (Set.Icc (-1) 1)) :
(∃ F, AnalyticOnNhd ℂ F (Complex.bernsteinEllipse ⟨ρ, hρ⟩) ∧ ∀ x ∈ Set.Icc (-1) 1, F ↑x = f x) ↔
∀ (r : ℝ),
1 < r →
r < ρ →
∃ C,
∀ (n : ℕ),
‖Polynomial.Chebyshev.complexCoefficient
(Polynomial.Chebyshev.ComplexCoefficientInput.ofContinuousOn f hf n)‖ ≤
C / r ^ n
Lean proof
/-- Analytic extension to an open ellipse is equivalent to decay at every
strictly smaller geometric rate. A bound at the outer radius is not asserted
(ATAP, Theorems 8.1--8.3). -/
theorem exists_analytic_extension_iff_coefficient_decay {f : ℝ → ℂ} {ρ : ℝ}
(hρ : 1 < ρ) (hf : ContinuousOn f (Icc (-1) 1)) :
(∃ F : ℂ → ℂ, AnalyticOnNhd ℂ F (bernsteinEllipse ⟨ρ, hρ⟩) ∧
∀ x ∈ Icc (-1 : ℝ) 1, F x = f x) ↔
∀ r : ℝ, 1 < r → r < ρ → ∃ C : ℝ, ∀ n, ‖(complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n))‖ ≤ C / r ^ n := by
constructor
· rintro ⟨F, hF, heq⟩ r hr hrρ
exact coefficient_decay_of_analytic_extension hf hr hrρ hF heq
· intro ha
refine ⟨(fun z ↦ ∑' n : ℕ, complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n) * (T ℂ n).eval z), ?_, ?_⟩
· intro z hz
obtain ⟨r, hr, hrρ, hzr⟩ := exists_smaller_bernsteinEllipse hρ hz
obtain ⟨C, hC⟩ := ha r hr hrρ
exact analyticOnNhd_chebyshev_tsum hr hC z hzr
· obtain ⟨r, hr, hrρ⟩ := exists_between hρ
obtain ⟨C, hC⟩ := ha r hr hrρ
have hq0 : 0 ≤ r⁻¹ := by positivity
have hq1 : r⁻¹ < 1 := (inv_lt_one₀ (by linarith : 0 < r)).2 hr
have hs : Summable (fun n ↦ ‖(complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n))‖) :=
Summable.of_nonneg_of_le (fun _ ↦ norm_nonneg _)
(fun n ↦ by simpa only [inv_pow, div_eq_mul_inv] using hC n)
((summable_geometric_of_lt_one hq0 hq1).mul_left C)
intro x hx
simpa only [complex_ofReal_eval_T] using
(hasSum_complexCoefficient_mul_eval_T hf hs hx).tsum_eq
Let \(\rho {\gt}1\) and suppose complex polynomials \(p_n\) of degree at most \(n\) satisfy \(|f(x)-p_n(x)|\le C\rho ^{-n}\) for every \(n\ge 0\) and \(x\in [-1,1]\). Then \(f\) has an analytic extension to the open ellipse \(E_\rho \). Continuity of \(f\) need not be assumed.
/-- A geometric uniform approximation by polynomials forces continuity of the
data. No degree restriction is needed for this step of ATAP 8.3. -/
theorem continuousOn_of_geometric_polynomial_approximation {f : ℝ → ℂ}
{p : ℕ → ℂ[X]} {C ρ : ℝ} (hρ : 1 < ρ)
(hb : ∀ n x, x ∈ Icc (-1 : ℝ) 1 → ‖f x - (p n).eval (x : ℂ)‖ ≤ C / ρ ^ n) :
ContinuousOn f (Icc (-1) 1) := by
have hq0 : 0 ≤ ρ⁻¹ := by positivity
have hq1 : ρ⁻¹ < 1 := (inv_lt_one₀ (by linarith : 0 < ρ)).2 hρ
have ht : Tendsto (fun n : ℕ ↦ C / ρ ^ n) atTop (𝓝 0) := by
simpa only [mul_zero, inv_pow, div_eq_mul_inv] using
(tendsto_pow_atTop_nhds_zero_of_lt_one hq0 hq1).const_mul C
have hu : TendstoUniformlyOn (fun (n : ℕ) (x : ℝ) ↦ (p n).eval (x : ℂ)) f atTop
(Icc (-1) 1) := by
apply Metric.tendstoUniformlyOn_iff.mpr
intro ε hε
filter_upwards [ht.eventually (gt_mem_nhds hε)] with n hn x hx
simpa only [dist_eq_norm] using (hb n x hx).trans_lt hn
exact hu.continuousOn (Eventually.of_forall (fun n ↦ by fun_prop)).frequently
For \(z\in D_a\), the natural-order partial sums converge to \(S_a(z)\), and any finite limit of those partial sums equals \(S_a(z)\). Unconditional summability supplies a point of \(D_a\); if the unconditional sum is \(s\), then \(S_a(z)=s\).
Lean Formalisation
theorem Polynomial.Chebyshev.tendsto_complexChebyshevSeries (a : ℕ → ℂ)
(z : Polynomial.Chebyshev.ComplexChebyshevSeriesPoint a) :
Filter.Tendsto (fun N => ∑ n ∈ Finset.range N, a n * Polynomial.eval (↑z) (Polynomial.Chebyshev.T ℂ ↑n)) Filter.atTop
(nhds (Polynomial.Chebyshev.complexChebyshevSeries a z))
Lean proof
/-- Natural-order partial sums converge to the classical sum. -/
theorem tendsto_complexChebyshevSeries (a : ℕ → ℂ) (z : ComplexChebyshevSeriesPoint a) :
Tendsto (fun N : ℕ ↦ ∑ n ∈ Finset.range N, a n * (T ℂ n).eval z.val)
atTop (𝓝 (complexChebyshevSeries a z)) := z.property.choose_spec
theorem Polynomial.Chebyshev.complexChebyshevSeries_eq_of_tendsto {a : ℕ → ℂ}
(z : Polynomial.Chebyshev.ComplexChebyshevSeriesPoint a) {s : ℂ}
(hs :
Filter.Tendsto (fun N => ∑ n ∈ Finset.range N, a n * Polynomial.eval (↑z) (Polynomial.Chebyshev.T ℂ ↑n))
Filter.atTop (nhds s)) :
Polynomial.Chebyshev.complexChebyshevSeries a z = s
Lean proof
/-- The classical sum is characterized by its partial-sum limit. -/
theorem complexChebyshevSeries_eq_of_tendsto {a : ℕ → ℂ}
(z : ComplexChebyshevSeriesPoint a) {s : ℂ}
(hs : Tendsto (fun N : ℕ ↦ ∑ n ∈ Finset.range N, a n * (T ℂ n).eval z.val)
atTop (𝓝 s)) : complexChebyshevSeries a z = s :=
tendsto_nhds_unique (tendsto_complexChebyshevSeries a z) hs
def Polynomial.Chebyshev.ComplexChebyshevSeriesPoint.ofHasSum {a : ℕ → ℂ} {z s : ℂ}
(hs : HasSum (fun n => a n * Polynomial.eval z (Polynomial.Chebyshev.T ℂ ↑n)) s) :
Polynomial.Chebyshev.ComplexChebyshevSeriesPoint a
Lean definition
/-- Unconditional convergence supplies a point in the classical domain. -/
def ComplexChebyshevSeriesPoint.ofHasSum {a : ℕ → ℂ} {z s : ℂ}
(hs : HasSum (fun n ↦ a n * (T ℂ n).eval z) s) : ComplexChebyshevSeriesPoint a :=
⟨z, s, hs.tendsto_sum_nat⟩
def Polynomial.Chebyshev.ComplexChebyshevSeriesPoint.ofSummable {a : ℕ → ℂ} {z : ℂ}
(hs : Summable fun n => a n * Polynomial.eval z (Polynomial.Chebyshev.T ℂ ↑n)) :
Polynomial.Chebyshev.ComplexChebyshevSeriesPoint a
Lean definition
/-- Summability supplies a point in the classical domain. -/
def ComplexChebyshevSeriesPoint.ofSummable {a : ℕ → ℂ} {z : ℂ}
(hs : Summable (fun n ↦ a n * (T ℂ n).eval z)) : ComplexChebyshevSeriesPoint a :=
.ofHasSum hs.hasSum
theorem Polynomial.Chebyshev.complexChebyshevSeries_ofHasSum {a : ℕ → ℂ} {z s : ℂ}
(hs : HasSum (fun n => a n * Polynomial.eval z (Polynomial.Chebyshev.T ℂ ↑n)) s) :
Polynomial.Chebyshev.complexChebyshevSeries a (Polynomial.Chebyshev.ComplexChebyshevSeriesPoint.ofHasSum hs) = s
Lean proof
/-- A supplied convergent sum is the classical value. -/
theorem complexChebyshevSeries_ofHasSum {a : ℕ → ℂ} {z s : ℂ}
(hs : HasSum (fun n ↦ a n * (T ℂ n).eval z) s) :
complexChebyshevSeries a (ComplexChebyshevSeriesPoint.ofHasSum hs) = s :=
complexChebyshevSeries_eq_of_tendsto _ hs.tendsto_sum_nat
Every point of \(E_\rho \), \(\rho {\gt}1\), belongs to some \(E_r\) with \(1{\lt}r{\lt}\rho \). For these radii, \(\overline{E_r}\) is compact and contained in \(E_\rho \).
If \(\rho {\gt}1\) and \(|a_n|\le C\rho ^{-n}\) for all \(n\ge 0\), then \(S_a\) is analytic on the open ellipse \(E_\rho \). For \(1{\lt}r{\lt}\rho \) and \(z\in E_r\), the series converges absolutely and \(|S_a(z)|\le C/(1-r/\rho )\). Boundedness on all of \(E_\rho \) is not claimed.
Let \(f:[-1,1]\to \mathbb C\) be continuous and \(\rho {\gt}1\). If its full-constant Chebyshev coefficients satisfy \(|a_n(f)|\le C\rho ^{-n}\), then \(f\) has an analytic extension to \(E_\rho \), agreeing at every interval point.
theorem Polynomial.Chebyshev.exists_analytic_extension_of_coefficient_decay {f : ℝ → ℂ} {C ρ : ℝ} (hρ : 1 < ρ)
(hf : ContinuousOn f (Set.Icc (-1) 1))
(ha :
∀ (n : ℕ),
‖Polynomial.Chebyshev.complexCoefficient (Polynomial.Chebyshev.ComplexCoefficientInput.ofContinuousOn f hf n)‖ ≤
C / ρ ^ n) :
∃ F, AnalyticOnNhd ℂ F (Complex.bernsteinEllipse ⟨ρ, hρ⟩) ∧ ∀ x ∈ Set.Icc (-1) 1, F ↑x = f x
Lean proof
/-- For continuous interval data, geometric decay of the existing integral
coefficients gives an analytic extension agreeing at every interval point. -/
theorem exists_analytic_extension_of_coefficient_decay {f : ℝ → ℂ} {C ρ : ℝ}
(hρ : 1 < ρ) (hf : ContinuousOn f (Icc (-1) 1))
(ha : ∀ n, ‖(complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n))‖ ≤ C / ρ ^ n) :
∃ F : ℂ → ℂ, AnalyticOnNhd ℂ F (bernsteinEllipse ⟨ρ, hρ⟩) ∧
∀ x ∈ Icc (-1 : ℝ) 1, F x = f x := by
refine ⟨(fun z ↦ ∑' n : ℕ, complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n) * (T ℂ n).eval z),
analyticOnNhd_chebyshev_tsum hρ ha, ?_⟩
have hq0 : 0 ≤ ρ⁻¹ := by positivity
have hq1 : ρ⁻¹ < 1 := (inv_lt_one₀ (by linarith : 0 < ρ)).2 hρ
have hs : Summable (fun n ↦ ‖(complexCoefficient (ComplexCoefficientInput.ofContinuousOn f hf n))‖) :=
((summable_geometric_of_lt_one hq0 hq1).mul_left C).of_nonneg_of_le
(fun _ ↦ norm_nonneg _) (fun n ↦ by simpa only [inv_pow, div_eq_mul_inv] using ha n)
intro x hx
have h := (hasSum_complexCoefficient_mul_eval_T hf hs hx).tsum_eq
simpa only [complex_ofReal_eval_T] using h
For continuous complex \(f\) on \([-1,1]\), \(|f|\le M\), \(M\ge 0\), implies \(|a_0(f)|\le M\) and \(|a_n(f)|\le 2M\) for \(n{\gt}0\). Coefficients commute with subtraction, complex scalar multiplication, and finite sums of continuous functions. Moreover \(a_n(T_m)=\delta _{mn}\), and \(\deg p{\lt}n\) implies \(a_n(p)=0\) for complex polynomials.
theorem Polynomial.Chebyshev.complexCoefficient_eval_T (m n : ℕ) :
Polynomial.Chebyshev.complexCoefficient
(Polynomial.Chebyshev.ComplexCoefficientInput.ofContinuousOn
(fun x => Polynomial.eval (↑x) (Polynomial.Chebyshev.T ℂ ↑m)) ⋯ n) =
if m = n then 1 else 0
Lean proof
/-- A Chebyshev polynomial has exactly its matching complex coefficient. -/
@[simp] theorem complexCoefficient_eval_T (m n : ℕ) :
(complexCoefficient (ComplexCoefficientInput.ofContinuousOn (fun x : ℝ ↦ (T ℂ m).eval (x : ℂ)) (by fun_prop) n)) = if m = n then 1 else 0 := by
simp_rw [← complex_ofReal_eval_T]
have h := (complexCoefficient_ofReal (CoefficientInput.ofContinuousOn
(fun x ↦ (T ℝ m).eval x) (by fun_prop) n)).trans
(congrArg (fun r : ℝ ↦ (r : ℂ)) (coefficient_eval_T m n))
split_ifs with hmn <;> simpa [complexCoefficient, ComplexCoefficientInput.ofContinuousOn, ComplexCoefficientInput.ofL1, ComplexCoefficientInput.ofReal, CoefficientInput.ofContinuousOn, CoefficientInput.ofL1, hmn] using h
/-- A complex polynomial has no Chebyshev coefficient above its degree (ATAP 3). -/
theorem complexCoefficient_polynomial_eq_zero {p : ℂ[X]} {n : ℕ} (hp : p.degree < n) :
(complexCoefficient (ComplexCoefficientInput.ofContinuousOn (fun x : ℝ ↦ p.eval (x : ℂ)) (by fun_prop) n)) = 0 := by
classical
let P := chebyshevTsequence ℂ
let c := (P.basis P.isUnit_leadingCoeff).repr p
have he : p = ∑ i : Fin n, c i • T ℂ (i : ℕ) := (P.sum_fin_repr hp).symm
rw [he]
simp only [eval_finsetSum, eval_smul, smul_eq_mul]
rw [complexCoefficient_sum _ (fun i _ ↦ by fun_prop)]
apply Finset.sum_eq_zero
intro i _
rw [complexCoefficient_const_mul _ (by fun_prop), complexCoefficient_eval_T,
ite_eq_right (ne_of_lt i.val.isLt), mul_zero]