文章目录
- 伯努利数和多项式
- sympy实现
伯努利数是一种在数学、物理和工程中广泛应用的特殊数列,以瑞士数学家雅各布·伯努利(Jacob Bernoulli)的名字命名,并在许多领域中发挥重要作用。在数学中,它们与斐波那契数列、卡塔兰数、贝尔数等数列有密切联系,可以用于解决循环问题、组合问题和递推关系等数学问题。
伯努利数和多项式
伯努利(Bernoulli)数是一组在数论和复分析中出现的数,与伯努利多项式有关。伯努利多项式通常由以下递推关系定义
B n + 1 ( x ) = x B n ( x ) + B n − 1 ( x ) B_{n+1}(x) = x B_n(x) + B_{n-1}(x) Bn+1(x)=xBn(x)+Bn−1(x)
其中 B 0 ( x ) = 1 , B 1 ( x ) = x + 1 B_0(x) = 1, B_1(x) = x + 1 B0(x)=1,B1(x)=x+1。这个多项式的系数 B n B_n Bn就是伯努利数。例如, B 2 ( x ) = x 2 + x + 1 B_2(x) = x^2 + x + 1 B2(x)=x2+x+1,所以 B 2 = 3 B_2 = 3 B2=3。其递推公式如下
B n ( x ) = ∑ k = 0 n ( − 1 ) k ( n k ) B k x n − k B_n(x)=\sum^n_{k=0}(-1)^k\begin{pmatrix}n\\k\end{pmatrix}B_kx^{n-k} Bn(x)=k=0∑n(−1)k(nk)Bkxn−k
当 x = 1 x=1 x=1时,伯努利多项式的值便是伯努利数,
B n = ∑ k = 0 n ( − 1 ) k ( n k ) B k B_n=\sum^n_{k=0}(-1)^k\begin{pmatrix}n\\k\end{pmatrix}B_k Bn=k=0∑n(−1)k(nk)Bk
亦可记作
n + 1 = ∑ k = 0 n ( n + 1 k ) B k n+1=\sum^n_{k=0}\begin{pmatrix}n+1\\k\end{pmatrix}B_k n+1=k=0∑n(n+1k)Bk
当 n n n是奇数且大于 1 1 1时, B n = 0 B_n=0 Bn=0。
sympy实现
sympy提供了bernoulli函数用以返回伯努利数和伯努利多项式
from sympy import bernoulli
from sympy.abc import x
[bernoulli(n) for n in range(11)]
# [1, 1/2, 1/6, 0, -1/30, 0, 1/42, 0, -1/30, 0, 5/66]
bernoulli(1000001)
# 0
若输入一个数值和一个符号,即可表示伯努利多项式
from sympy import print_latex
print_latex(bernoulli(3, x))
x 3 − 3 x 2 2 + x 2 x^{3} - \frac{3 x^{2}}{2} + \frac{x}{2} x3−23x2+2x