Interlacing families of polynomials
DefinitionUpper interlacing point#✓fully proved
Let \(p\) be a complex polynomial and let \(\operatorname{maxroot}(p)\) be the largest real part of an element of the multiset of roots of \(p\), with \(\operatorname{maxroot}(p) = 0\) when that multiset is empty (as it is for nonzero constants and for \(p = 0\)). A real number \(a\) is an upper interlacing point of \(p\) if \(a \le \operatorname{maxroot}(p)\) and, after removing one copy of \(\operatorname{maxroot}(p)\) from the multiset of roots of \(p\) (if it occurs there), every remaining root has real part at most \(a\).
public def HasUpperInterlacingPoint (p : Polynomial ℂ) (a : ℝ) : Prop :=
a ≤ p.maxRealRoot ∧
∀ z ∈ p.roots.erase (p.maxRealRoot : ℂ), z.re ≤ a
DefinitionCommon upper interlacing point#✓fully proved
A family \((P_i)_{i \in I}\) of complex polynomials, indexed by an arbitrary type \(I\), has a common upper interlacing point if some real number \(a\) is an upper interlacing point of \(P_i\) for every \(i \in I\).
public def HasCommonUpperInterlacing {ι : Type*} (P : ι → Polynomial ℂ) : Prop :=
∃ a : ℝ, ∀ i, (P i).HasUpperInterlacingPoint a
Uses 1 · Used by 1
TheoremNonpositivity between an upper interlacing point and the largest root#✓fully proved
Let \(p\) be a monic complex polynomial of positive degree all of whose roots are real, let \(\operatorname{maxroot}(p)\) be its largest root, and let \(a\) be an upper interlacing point of \(p\). Then for every real \(x\) with \(a \le x \le \operatorname{maxroot}(p)\), the real part of \(p(x)\) is at most \(0\).
public theorem eval_re_nonpos_of_upperInterlacing
{p : Polynomial ℂ} (hmonic : p.Monic) (hrooted : p.IsRealRooted)
{a x : ℝ} (ha : p.HasUpperInterlacingPoint a) (hax : a ≤ x)
(hx : x ≤ p.maxRealRoot) (hdegree : 0 < p.natDegree) :
(p.eval (x : ℂ)).re ≤ 0
Uses 4 · Used by 1
TheoremCommon upper interlacing bounds some member's largest root by a weighted sum's#✓fully proved
Let \(I\) be a nonempty finite set and, for each \(i \in I\), let \(P_i\) be a monic complex polynomial of positive degree all of whose roots are real, such that the family \((P_i)_{i \in I}\) has a common upper interlacing point. Let \(w_i \ge 0\) be real weights such that \(Q = \sum_{i \in I} w_i P_i\) is monic and all of its roots are real. Then there is \(i \in I\) with \(\operatorname{maxroot}(P_i) \le \operatorname{maxroot}(Q)\), where \(\operatorname{maxroot}(f)\) denotes the largest root of a real-rooted polynomial \(f\).
public theorem exists_maxRealRoot_le_weightedSum_of_commonUpperInterlacing
{ι : Type*} [Fintype ι] [Nonempty ι] (w : ι → ℝ) (P : ι → Polynomial ℂ)
(hw : ∀ i, 0 ≤ w i) (hmonic : ∀ i, (P i).Monic)
(hrooted : ∀ i, (P i).IsRealRooted) (hdegree : ∀ i, 0 < (P i).natDegree)
(hcommon : Polynomial.HasCommonUpperInterlacing P)
(hsumMonic : (∑ i, (w i : ℂ) • P i).Monic)
(hsumRooted : (∑ i, (w i : ℂ) • P i).IsRealRooted) :
∃ i, (P i).maxRealRoot ≤ (∑ j, (w j : ℂ) • P j).maxRealRoot
public def HasCommonUpperInterlacing {ι : Type*} (P : ι → Polynomial ℂ) : Prop :=
∃ a : ℝ, ∀ i, (P i).HasUpperInterlacingPoint a
MathlibExt/Algebra/Polynomial/Interlacing.lean:312
TheoremSome member's largest root is at most that of a weighted sum, via real-rooted segments#✓fully proved
Let \(I\) be a nonempty finite set, let \(n \ge 1\), and for each \(i \in I\) let \(P_i\) be a monic complex polynomial of degree \(n\) and \(w_i \ge 0\) a real weight. Suppose that \(Q = \sum_{i \in I} w_i P_i\) is monic of degree \(n\) and that, for every \(i \in I\) and every \(t \in [0, 1]\), all roots of \((1 - t) Q + t P_i\) are real. Then there is \(i \in I\) with \(\operatorname{maxroot}(P_i) \le \operatorname{maxroot}(Q)\), where \(\operatorname{maxroot}(f)\) denotes the largest real part of a root of \(f\).
public theorem exists_maxRealRoot_le_weightedSum_of_segment_realRooted
{ι : Type*} [Fintype ι] (hne : Nonempty ι) (w : ι → ℝ) (P : ι → Polynomial ℂ)
{n : ℕ} (hn : 0 < n) (hw : ∀ i, 0 ≤ w i)
(hfamily : ∀ i, (P i).IsMonicOfDegree n)
(hsum : (∑ i, (w i : ℂ) • P i).IsMonicOfDegree n)
(hsegments : ∀ i t, t ∈ Set.Icc (0 : ℝ) 1 →
((1 - (t : ℂ)) • (∑ j, (w j : ℂ) • P j) + (t : ℂ) • P i).IsRealRooted) :
∃ i, (P i).maxRealRoot ≤ (∑ j, (w j : ℂ) • P j).maxRealRoot
Uses 5 · Used by 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.