Theory of univariate polynomials
derivative p
is the formal derivative of the polynomial p
Equations
- p.derivative = finsupp.sum p (λ (n : ℕ) (a : R), (⇑polynomial.C (a * ↑n)) * polynomial.X ^ (n - 1))
theorem
polynomial.derivative_monomial
{R : Type u}
[semiring R]
(a : R)
(n : ℕ) :
((⇑polynomial.C a) * polynomial.X ^ n).derivative = (⇑polynomial.C (a * ↑n)) * polynomial.X ^ (n - 1)
@[simp]
theorem
polynomial.derivative_C
{R : Type u}
[semiring R]
{a : R} :
(⇑polynomial.C a).derivative = 0
@[simp]
@[simp]
theorem
polynomial.derivative_add
{R : Type u}
[semiring R]
{f g : polynomial R} :
(f + g).derivative = f.derivative + g.derivative
The formal derivative of polynomials, as additive homomorphism.
Equations
- polynomial.derivative_hom R = {to_fun := polynomial.derivative _inst_2, map_zero' := _, map_add' := _}
@[simp]
theorem
polynomial.derivative_neg
{R : Type u_1}
[ring R]
(f : polynomial R) :
(-f).derivative = -f.derivative
@[simp]
theorem
polynomial.derivative_sub
{R : Type u_1}
[ring R]
(f g : polynomial R) :
(f - g).derivative = f.derivative - g.derivative
@[instance]
@[simp]
theorem
polynomial.derivative_sum
{R : Type u}
{ι : Type y}
[semiring R]
{s : finset ι}
{f : ι → polynomial R} :
(∑ (b : ι) in s, f b).derivative = ∑ (b : ι) in s, (f b).derivative
@[simp]
theorem
polynomial.derivative_smul
{R : Type u}
[semiring R]
(r : R)
(p : polynomial R) :
(r • p).derivative = r • p.derivative
@[simp]
theorem
polynomial.derivative_mul
{R : Type u}
[comm_semiring R]
{f g : polynomial R} :
(f * g).derivative = (f.derivative) * g + f * g.derivative
theorem
polynomial.derivative_pow_succ
{R : Type u}
[comm_semiring R]
(p : polynomial R)
(n : ℕ) :
(p ^ (n + 1)).derivative = ((↑n + 1) * p ^ n) * p.derivative
theorem
polynomial.derivative_pow
{R : Type u}
[comm_semiring R]
(p : polynomial R)
(n : ℕ) :
(p ^ n).derivative = ((↑n) * p ^ (n - 1)) * p.derivative
theorem
polynomial.derivative_map
{R : Type u}
{S : Type v}
[comm_semiring R]
[comm_semiring S]
(p : polynomial R)
(f : R →+* S) :
(polynomial.map f p).derivative = polynomial.map f p.derivative
theorem
polynomial.derivative_eval₂_C
{R : Type u}
[comm_semiring R]
(p q : polynomial R) :
(polynomial.eval₂ polynomial.C q p).derivative = (polynomial.eval₂ polynomial.C q p.derivative) * q.derivative
Chain rule for formal derivative of polynomials.
theorem
polynomial.of_mem_support_derivative
{R : Type u}
[comm_semiring R]
{p : polynomial R}
{n : ℕ}
(h : n ∈ p.derivative.support) :
theorem
polynomial.degree_derivative_lt
{R : Type u}
[comm_semiring R]
{p : polynomial R}
(hp : p ≠ 0) :
p.derivative.degree < p.degree
theorem
polynomial.nat_degree_derivative_lt
{R : Type u}
[comm_semiring R]
{p : polynomial R}
(hp : p.derivative ≠ 0) :
theorem
polynomial.degree_derivative_le
{R : Type u}
[comm_semiring R]
{p : polynomial R} :
p.derivative.degree ≤ p.degree
The formal derivative of polynomials, as linear homomorphism.
Equations
- polynomial.derivative_lhom R = {to_fun := polynomial.derivative ring.to_semiring, map_add' := _, map_smul' := _}
theorem
polynomial.mem_support_derivative
{R : Type u}
[integral_domain R]
[char_zero R]
(p : polynomial R)
(n : ℕ) :
@[simp]
theorem
polynomial.degree_derivative_eq
{R : Type u}
[integral_domain R]
[char_zero R]
(p : polynomial R)
(hp : 0 < p.nat_degree) :
p.derivative.degree = ↑(p.nat_degree - 1)
theorem
polynomial.nat_degree_eq_zero_of_derivative_eq_zero
{R : Type u}
[integral_domain R]
[char_zero R]
{f : polynomial R}
(h : f.derivative = 0) :
f.nat_degree = 0