本文通过推导 n, n² 和 n³ 的求和公式最终引出 Faulhaber’s formula,即 n 的 a 次方求和公式。
前言
常见的 n 项递增数列的求和公式有以下 3 个:
k=1∑nk=2n(n+1)
k=1∑nk2=6n(n+1)(2n+1)
k=1∑nk3=6n(n+1)(2n+1)
其中关于第一个公式的故事大概已经是家喻户晓了,不过据说高斯当时真正解出的题,比 1 加到 100 要难多了。正如传说中高斯的解法一样,从 1 加到 n,我们只需要重新组合这些数:
(1+n)+[2+(n−1)]+...+[n+(n+1)]
每一组的值都是相等的,都等于 n+1,总共有 n/2 组,因此就可以很方便地得到等差数列的求和公式。
然而我们无法使用这个方法来求 12+22+...+n2,而在弦论、量子力学、人工智能等前沿学科中,这种方式(∑na)的求和会非常常见,因此了解如何推导这样的求和公式就非常有意义。通过查找资料发现,这个式子的求和公式最早是由德国数学家 Faulhaber 提出的,因此也叫做 Faulhaber’s formula:
k=1∑nka=a+11j=0∑a(−1)j(a+1j)Bjna+1−j
前 n 个正整数的总和
了解上面这个公式前先看看另一种推导 ∑n 的方法:
- 首先二项式展开:
(k−1)2=k2−2k+1
- 重新排列项目:
k2−(k−1)2=2k−1
- 对等式两边求和:
k=1∑n(k2−(k−1)2)=2k=1∑nk−k=1∑n1
- 调整位置后求解得到:n2=2Sn−n。
根据最终得到的式子求出 Sn 即可得到 ∑n 的计算公式。
前 n 个正整数平方的总和
用同样的方法,这次我们推导 ∑n2:
- 首先二项式展开:
(k−1)3=k3−3k2+3k−1
- 重新排列项目:
k3−(k−1)3=3k2−3k+1
- 和之前一样对两边求和,可以得到:
n3=3(k=1∑nk2)−3k=1∑nk+k=1∑n1=3(k=1∑nk2)−32n(n+1)+n
- 调整位置后求解得到:
k=1∑nk2=31n3+21n2+61n=6n(n+1)(2n+1)
前 n 个正整数的 3 次方的总和
用同样的办法,求和后可以得到:
n4=4S3,n−6S2,n+4S1,n−n
结合上面求到的 S3,n、S2,n、S1,n 可得:
4S3,nS3,n=n4+66n(n+1)(2n+1)−42n(n+1)+n=41n4+21n3+41n2=4n2(n+1)2
一般化
根据上面的推导,我们可以把 Sa,n=∑na 一般化为:
na+1=(a+11)Sa,n−(a+12)Sa−1,n+(a+13)Sa−2,n−⋯+(−1)a−1(a+1a)S1,n+(−1)an
然后便可以解出 Sa,n 的表达式(其中 ci 代表有理数):
Sa,n=a+11na+1+ca−1Sa−1,n+ca−2Sa−2,n+⋯+c1S1,n+c0n
注意: 通过观察可以发现,这个和式近似于积分 ∫0nxadx=a+11na+1(低级项可看作误差)
Faulhaber 公式
由于我们可以把 Sa,n 近似地表达为 Sa,n=a+11na+1+(lower terms),因此现在的问题就变成了如何找到 lower terms 的一个精确解。事实上,我们可以用伯努利数来实现,从而得到了 Faulhaber’s formula:
k=1∑nka=a+11j=0∑a(−1)j(a+1j)Bjna+1−j