用生成函数求递推关系闭式解:完成给定递推式求解
嘿,你已经完成了生成函数推导里最核心的部分,接下来咱们一步步把分式分解和幂级数展开做透,最终得到递推关系的闭式解。
首先回顾你已经完成的推导:
给定递推关系:
$$\begin{cases} a_{n+1} = a_n + n & (n\geq0)\ a_0 = 0 \end{cases}$$
设生成函数 $f(x) = \sum_{n=0}^\infty a_nx^n$,推导得到:
$$f(x) = \frac{x2}{(1-x)3}$$
接下来进入分式分解与幂级数展开环节:
步骤1:拆分生成函数并利用已知展开式
我们可以把$f(x)$拆成$x2$乘以$\frac{1}{(1-x)3}$,即:
$$f(x) = x^2 \cdot \frac{1}{(1-x)^3}$$
这里需要用到一个经典的生成函数结论:对于正整数$k$,有
$$\frac{1}{(1-x)^k} = \sum_{n=0}^\infty \binom{n+k-1}{k-1} x^n$$
其中$\binom{n+k-1}{k-1}$是组合数(也叫“星形数”组合公式)。当$k=3$时,代入得:
$$\frac{1}{(1-x)^3} = \sum_{n=0}^\infty \binom{n+2}{2} x^n$$
而组合数$\binom{n+2}{2}$可以展开为$\frac{(n+2)(n+1)}{2}$,所以上式也可以写成:
$$\frac{1}{(1-x)^3} = \frac{1}{2}\sum_{n=0}^\infty (n+2)(n+1)x^n$$
步骤2:将$x^2$代入并调整求和下标
把$x^2$乘到展开式里:
$$f(x) = x^2 \sum_{n=0}^\infty \binom{n+2}{2} x^n = \sum_{n=0}^\infty \binom{n+2}{2} x^{n+2}$$
为了和生成函数定义$f(x)=\sum_{k=0}^\infty a_k x^k$对应,我们做下标替换:令$k = n+2$,则$n = k-2$。当$n=0$时,$k=2$;当$n\to\infty$时,$k\to\infty$。替换后得到:
$$f(x) = \sum_{k=2}^\infty \binom{k}{2} x^k$$
步骤3:匹配系数得到闭式解
对比生成函数的定义,我们可以直接读出$a_k$的表达式:
- 当$k=0$时,$a_0=0$(符合初始条件);
- 当$k=1$时,$a_1=0$(代入递推式$a_1=a_0+0=0$,也对应$\binom{1}{2}=0$);
- 当$k\geq2$时,$a_k = \binom{k}{2} = \frac{k(k-1)}{2}$。
可以验证一下这个结果满足递推关系:
$$a_{n+1} = \frac{(n+1)n}{2}$$
$$a_n + n = \frac{n(n-1)}{2} + n = \frac{n^2 -n +2n}{2} = \frac{n(n+1)}{2}$$
两者完全相等,说明闭式解正确。
内容的提问来源于stack exchange,提问作者Christian Giupponi

