Bernoulli polynomials #
The Bernoulli polynomials are an important tool obtained from Bernoulli numbers.
Mathematical overview #
The $n$-th Bernoulli polynomial is defined as $$ B_n(X) = ∑_{k = 0}^n {n \choose k} (-1)^k B_k X^{n - k} $$ where $B_k$ is the $k$-th Bernoulli number. The Bernoulli polynomials are generating functions, $$ \frac{t e^{tX} }{ e^t - 1} = ∑_{n = 0}^{\infty} B_n(X) \frac{t^n}{n!} $$
Implementation detail #
Bernoulli polynomials are defined using bernoulli
, the Bernoulli numbers.
Main theorems #
sum_bernoulli
: The sum of the $k^\mathrm{th}$ Bernoulli polynomial with binomial coefficients up ton
is(n + 1) * X^n
.Polynomial.bernoulli_generating_function
: The Bernoulli polynomials act as generating functions for the exponential.
TODO #
bernoulli_eval_one_neg
: $$ B_n(1 - x) = (-1)^n B_n(x) $$
The Bernoulli polynomials are defined in terms of the negative Bernoulli numbers.
Equations
- Polynomial.bernoulli n = ∑ i ∈ Finset.range (n + 1), (Polynomial.monomial (n - i)) (bernoulli i * ↑(n.choose i))
Instances For
theorem
Polynomial.bernoulli_def
(n : ℕ)
:
Polynomial.bernoulli n = ∑ i ∈ Finset.range (n + 1), (Polynomial.monomial i) (bernoulli (n - i) * ↑(n.choose i))
@[simp]
@[simp]
theorem
Polynomial.derivative_bernoulli_add_one
(k : ℕ)
:
Polynomial.derivative (Polynomial.bernoulli (k + 1)) = (↑k + 1) * Polynomial.bernoulli k
theorem
Polynomial.derivative_bernoulli
(k : ℕ)
:
Polynomial.derivative (Polynomial.bernoulli k) = ↑k * Polynomial.bernoulli (k - 1)
@[simp]
theorem
Polynomial.sum_bernoulli
(n : ℕ)
:
∑ k ∈ Finset.range (n + 1), ↑((n + 1).choose k) • Polynomial.bernoulli k = (Polynomial.monomial n) (↑n + 1)
theorem
Polynomial.bernoulli_eq_sub_sum
(n : ℕ)
:
↑n.succ • Polynomial.bernoulli n = (Polynomial.monomial n) ↑n.succ - ∑ k ∈ Finset.range n, ↑((n + 1).choose k) • Polynomial.bernoulli k
Another version of Polynomial.sum_bernoulli
.
theorem
Polynomial.sum_range_pow_eq_bernoulli_sub
(n : ℕ)
(p : ℕ)
:
(↑p + 1) * ∑ k ∈ Finset.range n, ↑k ^ p = Polynomial.eval (↑n) (Polynomial.bernoulli p.succ) - bernoulli p.succ
Another version of sum_range_pow
.
theorem
Polynomial.bernoulli_succ_eval
(n : ℕ)
(p : ℕ)
:
Polynomial.eval (↑n) (Polynomial.bernoulli p.succ) = bernoulli p.succ + (↑p + 1) * ∑ k ∈ Finset.range n, ↑k ^ p
Rearrangement of Polynomial.sum_range_pow_eq_bernoulli_sub
.
theorem
Polynomial.bernoulli_eval_one_add
(n : ℕ)
(x : ℚ)
:
Polynomial.eval (1 + x) (Polynomial.bernoulli n) = Polynomial.eval x (Polynomial.bernoulli n) + ↑n * x ^ (n - 1)
theorem
Polynomial.bernoulli_generating_function
{A : Type u_1}
[CommRing A]
[Algebra ℚ A]
(t : A)
:
(PowerSeries.mk fun (n : ℕ) => (Polynomial.aeval t) ((1 / ↑n.factorial) • Polynomial.bernoulli n)) * (PowerSeries.exp A - 1) = PowerSeries.X * (PowerSeries.rescale t) (PowerSeries.exp A)
The theorem that $(e^X - 1) * ∑ Bₙ(t)* X^n/n! = Xe^{tX}$