Documentation

Mathlib.Analysis.SpecialFunctions.Polynomials

Limits related to polynomial and rational functions #

This file proves basic facts about limits of polynomial and rationals functions. The main result is eval_is_equivalent_at_top_eval_lead, which states that for any polynomial P of degree n with leading coefficient a, the corresponding polynomial function is equivalent to a * x^n as x goes to +โˆž.

We can then use this result to prove various limits for polynomial and rational functions, depending on the degrees and leading coefficients of the considered polynomials.

theorem Polynomial.eventually_no_roots {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (hP : P โ‰  0) :
โˆ€แถ  (x : ๐•œ) in Filter.atTop, ยฌPolynomial.IsRoot P x
theorem Polynomial.isEquivalent_atTop_lead {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] :
Asymptotics.IsEquivalent Filter.atTop (fun (x : ๐•œ) => Polynomial.eval x P) fun (x : ๐•œ) => Polynomial.leadingCoeff P * x ^ Polynomial.natDegree P
theorem Polynomial.tendsto_atTop_of_leadingCoeff_nonneg {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : 0 < Polynomial.degree P) (hnng : 0 โ‰ค Polynomial.leadingCoeff P) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P) Filter.atTop Filter.atTop
theorem Polynomial.tendsto_atTop_iff_leadingCoeff_nonneg {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P) Filter.atTop Filter.atTop โ†” 0 < Polynomial.degree P โˆง 0 โ‰ค Polynomial.leadingCoeff P
theorem Polynomial.tendsto_atBot_iff_leadingCoeff_nonpos {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P) Filter.atTop Filter.atBot โ†” 0 < Polynomial.degree P โˆง Polynomial.leadingCoeff P โ‰ค 0
theorem Polynomial.tendsto_atBot_of_leadingCoeff_nonpos {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : 0 < Polynomial.degree P) (hnps : Polynomial.leadingCoeff P โ‰ค 0) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P) Filter.atTop Filter.atBot
theorem Polynomial.abs_tendsto_atTop {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : 0 < Polynomial.degree P) :
Filter.Tendsto (fun (x : ๐•œ) => |Polynomial.eval x P|) Filter.atTop Filter.atTop
theorem Polynomial.abs_isBoundedUnder_iff {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] :
(Filter.IsBoundedUnder (fun (x x_1 : ๐•œ) => x โ‰ค x_1) Filter.atTop fun (x : ๐•œ) => |Polynomial.eval x P|) โ†” Polynomial.degree P โ‰ค 0
theorem Polynomial.abs_tendsto_atTop_iff {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] :
Filter.Tendsto (fun (x : ๐•œ) => |Polynomial.eval x P|) Filter.atTop Filter.atTop โ†” 0 < Polynomial.degree P
theorem Polynomial.tendsto_nhds_iff {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) [OrderTopology ๐•œ] {c : ๐•œ} :
theorem Polynomial.isEquivalent_atTop_div {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] :
Asymptotics.IsEquivalent Filter.atTop (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) fun (x : ๐•œ) => Polynomial.leadingCoeff P / Polynomial.leadingCoeff Q * x ^ (โ†‘(Polynomial.natDegree P) - โ†‘(Polynomial.natDegree Q))
theorem Polynomial.div_tendsto_zero_of_degree_lt {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree P < Polynomial.degree Q) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop (nhds 0)
theorem Polynomial.div_tendsto_zero_iff_degree_lt {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hQ : Q โ‰  0) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop (nhds 0) โ†” Polynomial.degree P < Polynomial.degree Q
theorem Polynomial.div_tendsto_atTop_of_degree_gt' {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree Q < Polynomial.degree P) (hpos : 0 < Polynomial.leadingCoeff P / Polynomial.leadingCoeff Q) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atTop
theorem Polynomial.div_tendsto_atTop_of_degree_gt {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree Q < Polynomial.degree P) (hQ : Q โ‰  0) (hnng : 0 โ‰ค Polynomial.leadingCoeff P / Polynomial.leadingCoeff Q) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atTop
theorem Polynomial.div_tendsto_atBot_of_degree_gt' {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree Q < Polynomial.degree P) (hneg : Polynomial.leadingCoeff P / Polynomial.leadingCoeff Q < 0) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atBot
theorem Polynomial.div_tendsto_atBot_of_degree_gt {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree Q < Polynomial.degree P) (hQ : Q โ‰  0) (hnps : Polynomial.leadingCoeff P / Polynomial.leadingCoeff Q โ‰ค 0) :
Filter.Tendsto (fun (x : ๐•œ) => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atBot
theorem Polynomial.abs_div_tendsto_atTop_of_degree_gt {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (hdeg : Polynomial.degree Q < Polynomial.degree P) (hQ : Q โ‰  0) :
Filter.Tendsto (fun (x : ๐•œ) => |Polynomial.eval x P / Polynomial.eval x Q|) Filter.atTop Filter.atTop
theorem Polynomial.isBigO_of_degree_le {๐•œ : Type u_1} [NormedLinearOrderedField ๐•œ] (P : Polynomial ๐•œ) (Q : Polynomial ๐•œ) [OrderTopology ๐•œ] (h : Polynomial.degree P โ‰ค Polynomial.degree Q) :
(fun (x : ๐•œ) => Polynomial.eval x P) =O[Filter.atTop] fun (x : ๐•œ) => Polynomial.eval x Q