编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(1)

瑞士的伯努利家族共有八位世界著名的数学家,雅各布·伯努利(Jacob Bernoulli)便是其中之一。1713年,雅各布·伯努利提出了前n个整数的p次幂之和的表达式。他的解是n的(p 1)次多项式,包含的系数就是现在著名的伯努利数(在数学和理论物理的许多领域中出现的分数序列)。

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(2)

这个求和被称为冯哈伯公式( Faulhaber’s formula),其结果被伯努利以“Summae Potestatum”的标题发表,它由下面的表达式给出:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(3)

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(4)

如果m从0开始,到m= n-1结束,计算会变得更整洁。总和变成:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(5)

现在考虑所谓的生成函数S(n,t),它是一个幂级数,以式1和式2中的和为系数:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(6)

将式2代入式3,得到二重和:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(7)

其中k是一个整数。经过一些代数步骤,我们可以用以下两个函数的乘积来重新表示式4:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(8)

现在,S(n,t)的第一个因子可以用指数函数的泰勒展开式简单地写成幂级数:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(9)

式6左边减去1,两边同时除以x。要写出S(n,t)的第二项必须引入前面提到的伯努利数。式5中函数 t/(e-1) 变成:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(10)

跳过几个步骤(为了避免混乱),生成函数S(n,t)变成如下复杂的表达式:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(11)

下一步是定义所谓的伯努利多项式:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(12)

​下图显示了不同伯努利数值对应的几个伯努利多项式的例子。

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(13)

将生成函数S(n,t)的原始表达式与式8进行比较,利用伯努利多项式的定义,得到:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(14)

注意,生成函数可以优雅地写成:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(15)

在前一篇文章中伟大的数学家欧拉和他的奇妙发现——关于倒数级数的和,我推导了前5个伯努利数。它们是:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(16)

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(17)

​利用式9,我们得到一些伯努利多项式:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(18)

现在我们有所有需要的工具了。下面是我们所寻找的和的两个简单例子,但其他所有情况都可以简单地得到:

编写一个函数用于计算n的各次幂(如何计算前n个整数的p次幂的和)(19)

想了解更多精彩内容,快来关注老胡说科学

,