当我们推导数列求和公式时,有时候可能会先假设其形式是一个多项式,并根据数列的增长速度确定多项式的次数。对于平方数列的求和问题
S 2 ( n ) = 1 2 + 2 2 + ⋯ + n 2 S_2(n)=1^2+2^2+\dots+n^2 S2(n)=12+22+⋯+n2
我们假设它是一个三次多项式,为什么?
从增长速度角度大致进行判断
1. 单项平方数的增长速度
平方数列中的每一项为 k 2 k^2 k2,随着 k k k的增加, k 2 k^2 k2的增长速度是二次的。例如:
1 2 = 1 , 2 2 = 4 , 3 2 = 9 , 4 2 = 16 , ... 1^2=1,\quad2^2=4,\quad3^2=9,\quad4^2=16,\dots 12=1,22=4,32=9,42=16,...
2. 求和后的增长速度
如果我们对平方数列进行求和 S 2 ( n ) = 1 2 + 2 2 + ⋯ + n 2 S_2(n)=1^2+2^2+\dots+n^2 S2(n)=12+22+⋯+n2,那么整个和的增长速度将比单个平方项更高。
- 当 n n n较大时, S 2 ( n ) S_2(n) S2(n)的主要贡献来自于最大的几项(即接近 n 2 n^2 n2的部分,有点计算时间复杂度的意思了)。
- 因此, S 2 ( n ) S_2(n) S2(n)的增长速度大致与 n 3 n^3 n3成正比。
从空间角度来理解一下,将平方数列的每一项看作一个面积(是二维的),那么它们的累积和可以近似看作一个体积(三维的)。因此, S 2 ( n ) S_2(n) S2(n)的增长速度应该是三次的。但是这有点像是个猜想,不能完全论证其正确性。
差分法验证上面猜想的正确性
多项式的次数与差分的关系:对于一个 m m m 次多项式 P ( n ) P(n) P(n) ,其 m m m阶差分是一个常数,而 m + 1 m+1 m+1 阶差分及更高阶差分均为零。因此,通过差分法可以确定多项式的次数。
1. 差分定义
设 f ( n ) f(n) f(n)是一个函数,其一阶差分为:
Δ f ( n ) = f ( n + 1 ) − f ( n ) \Delta f(n)=f(n+1)-f(n) Δf(n)=f(n+1)−f(n)
二阶差分为:
Δ 2 f ( n ) = Δ ( Δ f ( n ) ) = Δ f ( n + 1 ) − Δ f ( n ) \Delta^2f(n)=\Delta(\Delta f(n))=\Delta f(n+1)-\Delta f(n) Δ2f(n)=Δ(Δf(n))=Δf(n+1)−Δf(n)
依此类推计算高阶差分。
我们知道 S 2 ( n ) = 1 2 + 2 2 + ⋯ + n 2 S_2(n)=1^2+2^2+\dots+n^2 S2(n)=12+22+⋯+n2,因此:
S 2 ( n + 1 ) = S 2 ( n ) + ( n + 1 ) 2 S_2(n+1)=S_2(n)+(n+1)^2 S2(n+1)=S2(n)+(n+1)2
由此可得一阶差分为:
Δ S 2 ( n ) = S 2 ( n + 1 ) − S 2 ( n ) = ( n + 1 ) 2 \Delta S_2(n)=S_2(n+1)-S_2(n)=(n+1)^2 ΔS2(n)=S2(n+1)−S2(n)=(n+1)2
二阶差分:
Δ 2 S 2 ( n ) = Δ ( Δ S 2 ( n ) ) = ( n + 2 ) 2 − ( n + 1 ) 2 = 2 n + 3 \Delta^2S_2(n)=\Delta(\Delta S_2(n))=(n+2)^2-(n+1)^2=2n+3 Δ2S2(n)=Δ(ΔS2(n))=(n+2)2−(n+1)2=2n+3
三阶差分:
Δ 3 S 2 ( n ) = Δ ( Δ 2 S 2 ( n ) ) = [ 2 ( n + 1 ) + 3 ] − [ 2 n + 3 ] = 2 \Delta^3S_2(n)=\Delta(\Delta^2S_2(n))=[2(n+1)+3]-[2n+3]=2 Δ3S2(n)=Δ(Δ2S2(n))=[2(n+1)+3]−[2n+3]=2
四阶差分:
Δ 4 S 2 ( n ) = Δ ( Δ 3 S 2 ( n ) ) = 2 − 2 = 0 \Delta^4S_2(n)=\Delta(\Delta^3S_2(n))=2-2=0 Δ4S2(n)=Δ(Δ3S2(n))=2−2=0
四阶差分为零,而三阶差分是一个常数。这表明 S 2 ( n ) S_2(n) S2(n)是一个三次多项式。