Chebyshev polynomials over the reals: roots and extrema #
Main statements #
T_n(x) ∈ [-1, 1]iffx ∈ [-1, 1]:abs_eval_T_real_le_one_iff- Zeroes of
TandU:roots_T_real,roots_U_real - Local extrema of
T:isLocalExtr_T_real_iff,isExtrOn_T_real_iff - Irrationality of zeroes of
Tother than zero:irrational_of_isRoot_T_real |T_n^{(k)} (x)| ≤ T_n^{(k)} (1)forx ∈ [-1, 1]:abs_iterate_derivative_T_real_le
TODO #
Show that the bound on T_n^{(k)} (x) is achieved only at x = ±1
theorem
Polynomial.Chebyshev.roots_T_real_nodup
(n : ℕ)
:
(Multiset.map (fun (k : ℕ) => Real.cos ((2 * ↑k + 1) * Real.pi / (2 * ↑n))) (Multiset.range n)).Nodup
theorem
Polynomial.Chebyshev.roots_T_real
(n : ℕ)
:
(T ℝ ↑n).roots = (Finset.image (fun (k : ℕ) => Real.cos ((2 * ↑k + 1) * Real.pi / (2 * ↑n))) (Finset.range n)).val
theorem
Polynomial.Chebyshev.rootMultiplicity_T_real
{n k : ℕ}
(hk : k < n)
:
rootMultiplicity (Real.cos ((2 * ↑k + 1) * Real.pi / (2 * ↑n))) (T ℝ ↑n) = 1
theorem
Polynomial.Chebyshev.roots_U_real_nodup
(n : ℕ)
:
(Multiset.map (fun (k : ℕ) => Real.cos ((↑k + 1) * Real.pi / (↑n + 1))) (Multiset.range n)).Nodup
theorem
Polynomial.Chebyshev.roots_U_real
(n : ℕ)
:
(U ℝ ↑n).roots = (Finset.image (fun (k : ℕ) => Real.cos ((↑k + 1) * Real.pi / (↑n + 1))) (Finset.range n)).val
theorem
Polynomial.Chebyshev.rootMultiplicity_U_real
{n k : ℕ}
(hk : k < n)
:
rootMultiplicity (Real.cos ((↑k + 1) * Real.pi / (↑n + 1))) (U ℝ ↑n) = 1
theorem
Polynomial.Chebyshev.isLocalExtr_T_real
{n k : ℕ}
(hn : n ≠ 0)
(hk₀ : 0 < k)
(hk₁ : k < n)
:
theorem
Polynomial.Chebyshev.isLocalExtr_T_real_iff
{n : ℕ}
(hn : 2 ≤ n)
(x : ℝ)
:
IsLocalExtr (fun (x : ℝ) => eval x (T ℝ ↑n)) x ↔ ∃ k ∈ Finset.Ioo 0 n, x = Real.cos (↑k * Real.pi / ↑n)
theorem
Polynomial.Chebyshev.irrational_of_isRoot_T_real
{n : ℕ}
{x : ℝ}
(hroot : (T ℝ ↑n).IsRoot x)
(hnz : x ≠ 0)
: