前言
本文参考自《具体数学》。
如有错漏敬请读者一一指出或喷作者。
可能的前置知识:
组合数及其处理技巧。
两类斯特林数。
拉格朗日插值。
当然不知道也没关系,与这些相关的大多是证明方面的东西。
问题引入
对于数列求和,我们有以下耳熟能详的公式:
1+2+3+⋯+n=∑k=1nk=2n(n+1)
1+a+a2+⋯+an−1=∑k=0n−1ak=a−1an−1
但这些公式缺乏一般性,例如将等差数列求和公式的 k 变为 k2 或 k3:
12+22+⋯+n2=∑k=1nk2=6n(n+1)(2n+1)
1^3+2^3+\cdots+n^3=\sum_{ k=1 }^nk^3={ \left( \sum_ { k=1 } ^n k \ right ) }^2=\dfrac{n^2(n+1)^2} {4}
尽管我们可以用数学归纳法证明这些东西然后背下来,但对于每一个新的数列和都去猜测结果然后证明,无疑是一件低效的做法。
这里将介绍《具体数学》中的系统方法——有限微积分,解决非组合形式的数列求和问题。
裂项相消法
对于数列求和,有一个很重要的方法叫裂项相消法。
例如对于 ∑k=1nk(k+1)1 ,我们有∑k=1nk(k+1)1
=(11−21)+(21−31)+(31−41)+⋯+(n1−n+11)
可以看到,原数列被拆成了两个数列的差,然后首尾相消。
这一做法仍需要人类智慧,但它无疑告诉我们:求和和求差是一对互逆的运算。
而在微积分中,求导和积分也是一对互逆的运算,并且它们分别对应差的极限与和的极限。
因此,我们可以利用微积分中的方法来解决求和问题。
差分
Δf(x)=f(x+1)−f(x)
意思是,Δf(x) 是一个新的函数,它等于 f(x) 的差。
接下来我们研究下差分的运算法则:
加法法则:
Δ(u+v)=Δu+ΔvΔ(u+v)=Δu+Δv
意思是,两个函数的和的差分等于两个函数的差分的和。直接套用定义即可证明:
Δ(f(x)+g(x))=f(x+1)+g(x+1)−f(x)−g(x)
=f(x+1)−f(x)+g(x+1)−g(x)=Δf(x)+Δg(x)
减法法则:
Δ(u−v)=Δu−Δv
同上。
Δ(Cu)=CΔu
其中 C 为一个与 x 无关的常数。
亦可直接套用定义证明,此处不再赘述。
乘法法则:
Δ(uv)=uΔv+EvΔu
其中 Ef(x)=f(x+1)
证明:Δ(f(x)g(x))=f(x+1)g(x+1)−f(x)g(x)
考虑添加一个中间项 −f(x)g(x+1)+f(x)g(x+1),从而转为差分的形式
=f(x+1)g(x+1)−f(x)g(x+1)+f(x)g(x+1)−f(x)g(x)
=(f(x+1)−f(x))g(x+1)+(g(x+1)−g(x))f(x)
=g(x+1)Δf(x)+f(x)Δg(x)
=f(x)Δg(x)+Eg(x)Δf(x)
遗憾的是,相比于无限微积分,有限微积分没有除法法则和链式法则。
定和式
有了差分之后,我们开始系统性的解决求和问题。定义定和式
∑abf(x)δx=∑k=ab−1f(k)=f(a)+f(a+1)+f(a+2)+⋯f(b−1)
它与差分是一对互逆的运算。具体的,根据裂项相消法,有微积分基本定理
∑abΔf(x)δx=f(b)−f(a)
同样套用定义,可知定和式满足以下性质:
∑aaf(x)δx=0,∑abf(x)δx=−∑baf(x)δx
∑abf(x)δx+∑bcf(x)δx=∑acf(x)δx
∑abf(x)δx±∑abg(x)δx=∑ab(f(x)±g(x))δx
∑abCf(x)δx=C∑abf(x)δx
例题 1:求解等比数列和 ∑k=0n−1ak(a=1)
解:首先考虑指数函数的差分
Δ(ax)=ax+1−ax=(a−1)ax
套用运算法则得到
ax=Δ(a−1ax)
因此
∑k=0n−1ak=∑0naxδx=∑0nΔ(a−1ax)δx=a−1an−a−1a0=a−1an−1
由此得到了等比数列求和公式。
下降幂
直接套用运算法则能迅速求解指数函数的和,幂函数却并不能这么干
Δ(xn)=(x+1)n−xn=∑k=0n−1(kn)xk
同样的做法在无限微积分中却得到了极为优美的结论:(xn)′=nxn−1
问题出在 “幂” 上。具体的,对于下降幂
xn=⎩⎪⎪⎪⎨⎪⎪⎪⎧x(x−1)(x−2)⋯(x−n+1)1(x+1)(x+2)⋯(x+(−n))1(n>0)(n=0)(n<0)
有一个同等优美的结论:
Δ(xn)=(x+1)n−xn=((x+1)−(x−n+1))xn−1=nxn−1
作跟指数函数一样的变形,就可得到
xn=Δ(n+1xn+1)
例题 2:求解等差数列和 ∑k=1nk
解:∑k=1nk=∑1n+1xδx=21(n+1)2−2112=2n(n+1)
例题 3:求解 ∑k=1nk(k+1)1
解:∑k=1nk(k+1)1=∑k=0n−1k−2=∑0nx−2δx=−1n−1−0−1=1−n+11
例题 4:P1625 求和
解:∑i=1n(∏j=ii+m−1j)−1=∑i=0n−1(∏j=i+1i+mj)−1=∑i=0n−1(i+m)m1
=∑0nx−mδx=−m+1n−m+1−0−m+1=(m−1)(n+m−1)!(n+m−1)n−n!
高精算出上面,下面分解质因数约分即可。
例题 5:求证上指标求和公式 ∑k=0n(mk)=(m+1n+1)
证明:∑k=0n(mk)=∑k=0nm!km=m!1∑0n+1xmδx
=m!(m+1)(n+1)m+1−0m+1=(m+1)!(n+1)m+1=(m+1n+1)
例题 6:求解 ∑k=1nk2
解:∑k=1nk2=∑k=0nk2=∑0n+1(x2+x)δx=31(n+1)3+21(n+1)2
=(n+1)n(31(n−1)+21)=6(n+1)n(2n+1)
例题 7:求解 $\sum_{k=1}^n k^3 $
解:∑k=1nk3=∑k=0nk3=∑0n+1(x3+3x2+x)δx
=41(n+1)4+(n+1)3+21(n+1)2=4n2(n+1)2
由后两个例题可知,对于带幂函数的和式,首先要将普通幂转为下降幂。
两类斯特林数已经给出了二者间的转化关系:
xn=∑k=0n{kn}xk
xn=∑k=0n[kn](−1)n−kxk
由此得到自然数幂和的一个公式
∑i=0n−1im=∑k=0m{km}∑i=0n−1ik=∑k=0m{km}∑0nxkδx=∑k=0m{km}k+1nk+1
另一公式为伯努利数,二者的区别在于一个形式为下降幂,一个形式为普通幂。
不定和式与分部求和
有了定和式,相应的,有不定和式:
f(x)=∑Δf(x)δx+C
其中 C 为计算完成后确定的常数。
对于差分的乘法法则 Δ(uv)=uΔv+EvΔu,移项再取和式可得分部求和法则
∑uΔv=uv−∑EvΔu
使用时切记是 EvEv 而非 EΔv
例题 8:求解 ∑i=0n−1ikai,a=1,k 较小。
解:由分部求和法则得
∑xkaxδx=a−1xkax−∑a−1ax+1kxk−1δx
=a−1xkax−a−1ka∑axxk−1δx
=a−1ax∑i=0k(a−1−a)ikixk−i
因此 ∑i=0n−1ikai=∑0nxkaxδx=a−11∑i=0k(a−1−a)iki(annk−i−a00k−i)
这一公式应用性较强:
例题 9:P4948 数列求和
例题 10:P5349 幂
高阶差分
与高阶导数相应的,可定义高阶差分
Δ0f=f,Δnf=Δn−1(Δf)
由 Δf(x)=f(x+1)−f(x),Ef(x)=f(x+1) 得 Δ=E−1,因此
Δnf=(E−1)nf=∑k=0n(kn)(−1)n−kEkf
其中 En的定义同Δn
与泰勒展开类似的,对f(x)某一点不断求差分,就可得到等间距牛顿插值公式
f(x)=∑k=0∞k!Δkf(x0)(x−x0)k=∑k=0∞(kx−x0)Δkf(x0)
之所以称为插值,是因为对于多项式函数,其与拉格朗日插值等价。
证明:设degf=n,综合以上两个公式得
f(x)=∑k=0∞(kx)∑i=0k(ik)(−1)k−iEif(x0)
f(x)=∑k=0n∑i=0k(kx)(ik)(−1)k−if(i)
f(x)=∑k=0n∑i=0k(ix)(k−ix−i)(−1)k−if(i)
此处使用了三项式版恒等式
调换下求和顺序
f(x)=∑i=0n(ix)f(i)∑k=in(k−ix−i)(−1)k−i
f(x)=∑i=0n(ix)f(i)∑k=0n−i(kx−i)(−1)k
使用上指标翻转(kr)=(kk−r−1)(−1)k
f(x)=∑i=0n(ix)f(i)∑k=0n−i(kk−(x−i)−1)
使用平行求和法 ∑k=0n(kr+k)=(nr+n+1)
f(x)=∑i=0n(ix)f(i)(n−in−i−(x−i)−1+1)
f(x)=∑i=0nf(i)(ix)(n−in−x)
f(x)=∑i=0nf(i)(∏j=0i−1i−jx−j)(∏j=i+1ni−jx−j)
f(x)=∑i=0nf(i)∏j=ii−jx−j
由此得到其与拉格朗日插值等价。
实际应用中,f(x)=∑i=0nf(i)(ix)(n−in−x)
较好记且便于实现。
例题 11:P5907 数列求和加强版 / SPOJ MOON4
总结
Δf(x)=f(x+1)−f(x),∑abf(x)δx=∑k=ab−1f(k)
∑abΔf(x)δx=f(b)−f(a)
Δ(ax)=(a−1)ax,Δ(xn)=nxn−1
f(x)=∑Δf(x)δx+C,∑uΔv=uv−∑EvΔuf(x)=∑Δf(x)δx+C,∑uΔv=uv−∑EvΔuΔnf=(E−1)nf=∑k=0n(kn)(−1)n−kEkf
f(x)=∑k=0∞(kx−x0)Δkf(x0)=∑i=0nf(i)(ix)(n−in−x)
Hn=∑i=1ni1=lnn+γ+εn
尽管没有无限微积分那么优秀的性质,有限微积分仍能高效地处理求和问题。
从小学到高中的所有数列求和,在有限微积分中得到统一。