退役后的 Lydic 专心致志于文化课,但是她拼尽全力也上不了 650(upd:上了,因此这个数字可以改成670),所以日渐颓废的她来这里写一点众所周知的东西。
伯努利数
\(\sum_{i=1}^n i^a\) 这种高次求和式显然没有一个通项式,但是可以通过递推来研究它。
对于上面的式子的求法,可以先凭空摆一个二项式定理:
\[(x-1)^{a+1}=\sum_{i=0}^{a+1}C_{a+1}^{i}(-1)^ix^{a+1-i}
\]
对于右边式子的第一项 \(x^{n+1}\),给它移到左边,就成了:
\[(x-1)^{a+1}-x^{a+1}=\sum_{i=1}^{a+1}C_{a+1}^{i}(-1)^ix^{a+1-i}
\]
然后对左边的式子分别取 \(x=1,2,3,...,n\):
\[(1-1)^{a+1}-1^{a+1}=\sum_{i=1}^{a+1}C_{a+1}^{i}(-1)^i1^{a+1-i}
\]
\[(2-1)^{a+1}-2^{a+1}=\sum_{i=1}^{a+1}C_{a+1}^{i}(-1)^i2^{a+1-i}
\]
\[……
\]
\[(n-1)^{a+1}-n^{a+1}=\sum_{i=1}^{a+1}C_{a+1}^{i}(-1)^in^{a+1-i}
\]
并且全部相加,再用一下分配率:
\[1-n^{a+1}=\sum_{i=1}^nC_{a+1}^{i}(-1)^i\sum_{j=1}^nj^{a+1-i}
\]
其中,右边式子的第一项中包含我们需要的 \(\sum_{i=1}^n i^a\),所以把它拿出来,再对原来的等式变形一下,就得到了最终的式子。
在写它之前,先对刚才的目标式做一个格式化:令 \(F(a)=\sum_{i=1}^ni^a\),则:
\[F(a) = \frac{(n+1)\left[(n+1)^a - 1\right] - \sum_{k=1}^{a-1}C_{k}^{a+1} F(k)}{a+1}
\]
然后就可以进入正题,伯努利数。
刚才给出的式子在实际计算中显然过于复杂,我们不妨研究一下这其中蕴藏的递推关系。先给出 \(F(a)\) 的前几项:
这个停更一下,先写点别的
从斐博数列到生成函数
众所周知著名的斐博数列有一个通项:
\[F_n=\dfrac{\left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n}{\sqrt{5}}
\]
张汪洋(2006- )曾经运用非常简单的方法解决了这个式子的证明并顺带科普了特征根,但是从这个简单的式子里可以发现更多有意思的东西,比如——生成函数(母函数)
由于生成函数可以说是高等数学内容,所以类似指数生成函数(EGF),泊松生成函数(PGF)之类的不展开讲,这里说说高中内容中对求解数列递推式十分有用的方法,也就是普通生成函数
首先对于一个数列 \({a}\),它的生成函数的定义为:
\[G(x)=\sum_{i=0}^{\infty}a_ix^i
\]
那么这个东西怎么求解数列递推呢?我们不妨先针对上面的斐博数列做一个分析
首先类似地,斐波那契数列的普通生成函数为
\[G(x)=\sum_{n=0}^\infty F_n x^n
\]
我们有递推公式
\[F_{n+2}=F_{n+1}+F_{n}
\]
往上面乘点东西
\[F_{n+2}x^{n+2}=F_{n+1}x^{n+2}+F_nx^{n+2}
\]
两边同时对 \(n=0\sim \infty\)求和,得
\[\sum_{n=0}^\infty F_{n+2}x^{n+2}=\sum_{n=0}^\infty F_{n+1}x^{n+2}+\sum_{n=0}^\infty F_{n}x^{n+2}
\]
左边的式子展开长这样
\[F_2x^2+F_3x^3+F_4x^4+\cdots
\]
把它和
\[G(x)=F_0+F_1x+F_2x^2+F_3x^3+F_4x^4+\cdots
\]
对比一下可以得到
\[\sum_{n=0}^\infty F_{n+2}x^{n+2}=G(x)-F_0-F_1x=G(x)-x
\]
同理,等式右边第一个式子展开长这样
\[F_1x^2+F_2x^3+F_3x^4+\cdots
\]
提一个 \(x\) 出来
\[x(F_1x^1+F_2x^2+F_3x^3+F_4x^4+\cdots)
\]
再去和 \(G(x)\) 对比,可以得到
\[\sum_{n=0}^\infty F_{n+1}x^{n+2}=x(G(x)-F_0)=xG(x)
\]
最后用同样的方法可以得到
\[\sum_{n=0}^\infty F_{n}x^{n+2}=x^2G(x)
\]
然后我们可以得到一个关于 \(G(x)\) 的方程
\[G(x)-x=xG(x)+x^2G(x)
\]
把 \(x\)看成常数,解得
\[G(x)=\frac{x}{1-x-x^2}
\]
于是我们得到等式
\[\frac{x}{1-x-x^2}=\sum_{n=0}^\infty F_n x^n
\]
所以接下来的步骤就是把左边的式子展开成幂级数的形式。
这个式子不好看,所以我们需要对它在实数范围内因式分解。这个过程比较简单,所以直接给出最终结果
\[G(x)=\frac{-x}{(x-\phi)(x-\mu)}
\]
其中
\[\phi=\frac{-1+\sqrt5}{2},\mu=\frac{-1-\sqrt5}{2}
\]
把它裂项,即展开成
\[G(x)=\frac{A}{x-\phi}+\frac{B}{x-\mu}
\]
的形式,可以得到
\[A=\frac{-\phi}{\sqrt5},B=\frac{\mu}{\sqrt5}
\]
然后我们需要把这个式子变成幂级数(形式幂级数)的形式。
对于 \(x\in (0,1)\),有
\[\sum_{n=0}^{\infty}x^n=1+x+x^2+\cdots=\frac{1-x^{n+1}}{1-x}=\frac{1}{1-x}
\]
所以
\[\frac{a}{a-x}=\frac{a}{a(1-\frac{x}{a})}=\frac{1}{1-\frac{x}{a}}=\sum_{n=0}^{\infty}(\frac{x}{a})^n
\]
对刚才得出的 \(G(x)\) 进行带入,得到
\[G(x)=\frac{1}{\sqrt5}(\frac{\phi}{\phi-x}-\frac{\mu}{\mu-x})
\]
\[=\frac{1}{\sqrt5}(\sum_{n=0}^{\infty}(\frac{x}{\phi})^n-\sum_{n=0}^{\infty}(\frac{x}{\mu})^n)
\]
\[=\sum_{n=0}^{\infty}\frac{(\frac{1}{\phi})^n-(\frac{1}{\mu})^n}{\sqrt5}x^n
\]
又因为
\[\frac{1}{\phi}=\frac{1+\sqrt5}{2},\frac{1}{\mu}=\frac{1-\sqrt5}{2}
\]
故最终我们可以得到
\[G(x)=\sum_{n=0}^{\infty}\frac{(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n}{\sqrt5}x^n
\]
把这个式子和 \(G(x)\) 的定义式
\[G(x)=\sum_{n=0}^{\infty}F_nx^n
\]
对比,就可以得到
\[F_n=\frac{(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n}{\sqrt5}
\]
这就是斐波那契数列的通项公式了。
到这里大家可能觉得这个方法很鸡肋,又臭又长还没用。但是实际上,它确实很鸡肋。因为它在高考范围中只能用来求解 \(n\) 阶线性递推,即形如
\[a_n=\sum_{i=n-k}^{n-1}F(i)a_i+F(n)
\]
的式子。所以想用它来秒杀所有数列递推的同学还是别想了
需要额外说明的是,生成函数本身用处很广泛,只不过是它能解决的问题高中生一般遇不到而已。
为了巩固生成函数,我们可以再给一道很简单的例题:
求解数列 \(a_n=a_{n-1}+2^{n-1}\) 的通项
解:
设生成函数:
\[G(x) = \sum_{n=0}^{\infty} a_n x^n
\]
将递推关系两边乘以 \(x^n\) 并求和:
\[\sum_{n=1}^{\infty} a_n x^n = \sum_{n=1}^{\infty} a_{n-1} x^n + \sum_{n=1}^{\infty} 2^{n-1} x^n
\]
整理得:
\[G(x) - a_0 = x G(x) + \frac{x}{1 - 2x}
\]
\[G(x) = \frac{a_0}{1 - x} + \frac{x}{(1 - x)(1 - 2x)}
\]
对第二项进行部分分式分解:
\[\frac{x}{(1-x)(1-2x)} = \frac{A}{1-x} + \frac{B}{1-2x}
\]
解得:
\[A = -1, \quad B = 1
\]
因此生成函数为:
\[G(x) = \frac{a_0 - 1}{1 - x} + \frac{1}{1 - 2x}
\]
将生成函数展开为幂级数:
\[G(x) = (a_0 - 1) \sum_{n=0}^{\infty} x^n + \sum_{n=0}^{\infty} 2^nx^n
\]
比较系数得:
\[a_n = (a_0 - 1) + 2^n
\]
生成函数法求通项的关键在于对一个多项式进行形式幂级数展开。Lydic 在下面列举了几种常用的转化(虽然说大部分还是不会遇到):
\[\frac{1}{1-x}=\sum_{n=0}^\infty x^n
\]
\[\frac{1}{(1-x)^a}=\sum_{n=0}^\infty C_{a+n-1}^a x^n
\]
\[(x+1)^a=\sum_{n=0}^\infty C_{a}^{n}x^n
\]
\[e^x=\sum_{n=0}^\infty \frac{x^n}{n!}
\]
\[\ln(x+1)=\sum_{n=1}^\infty (-1)^{n-1}\frac{x^n}{n}
\]
\[\frac{-\ln(1-x)}{1-x}=\sum_{n=1}^\infty (\sum_{j=1}^n\frac{1}{j})x^n
\]
\[\frac{1-\sqrt{1-4x}}{2x}=\sum_{n=0}^{\infty}Cat_nx^n
\]