我真是菜的真实,实在听不懂 wzy 在讲什么了,所以划了划生成函数的基础知识
参考了一下铃悬的博客
有好多式子 rqy 都没讲是咋证的,所以参考了一篇 blog,都是用泰勒展开证的
所以,前置知识
泰勒展开
[T_n = sum_{i=0}^nfrac{f^{(n)}(x_0)}{i!}(x - x_0)^n
]
这玩意看起来就非常难用,但是我们有麦克劳林公式
[f(x) = sum_{i=0}^nfrac{f^{(n)}(0)}{i!}x^n
]
斐波那契数列
(f_0 = 0,f_1 = 1,f_i = f_{i-1} + f_{i - 2}(i > 2))
设生成函数 (F(x) = sumlimits_{i=0}^infty f_ix^i)
那么使用高中数学处理数列问题的经典手段——错位相减法
(F(x) = x + xF(x) + x^2F(x)),这就是斐波那契数列的封闭形式
化简得 (F(x) = frac{x}{1-x-x^2})
将上式分解成 (frac{A}{1 - ax} + frac{B}{1 - bx}),等比数列求和的形式。
可以根据 ((1-ax)(1-bx) = 1-x-x^2) 解出 (phi = frac{1 + sqrt 5}{2},hatphi=frac{1 - sqrt 5}{2})
然后 (A) 和 (B) 也能够解出 (A=frac{1}{sqrt 5},B=-frac{1}{sqrt 5})
[F(x) = frac{1}{sqrt 5}(frac{1}{1-phi x} imesfrac{1}{1-hatphi x})
]
[ =frac{1}{sqrt 5}(sum_{i=0}^{infty}phi^ix^i - sum_{i=0}^{infty}hatphi^ix^i)
]
[ \ =sumlimits_{i=0}^infty(frac{phi-hatphi}{sqrt 5})^ix^i
]
然后和第一个式子联立解一下方程
[f_i = (frac{phi-hatphi}{sqrt 5})^i
]
就解出来了
生成函数基本运算就过了
微积分
[frac{operatorname{dy}}{operatorname{dx}}sum_{i=0}^{infty}a_ix^i o sum_{i=0}^{infty}a_{i+1}(i+1)x^i
]
[intsum_{i=0}^{infty}a_ix^i o sum_{i=0}^{infty}frac{a_i}{i+1}x^{i+1} + C
]
一些简单的生成函数例子
有几个我没看懂的就证了一下
[sum_{n geq 0}[n=m]x^n = x^m
]
[sum_{ngeq 0}x^n = frac{1}{1 - x}
]
证明:
设 (f(x) = frac{1}{1 - x}),其 n 阶导数为 (f^{(n)}(x) = frac{n!}{(1-x)^n})
把 f(x) 在 x=0 位置上进行泰勒展开,约去阶乘,得到 f(x) 的形式幂级数。
[f(x)=f(0) + f'(0)x + f''(0)x^2 + f^{(3)}x^3 + dots + f^{(n)}x^n
]
因为f(0) = 1,并且对其任意导数均是如此,所以
f(x) 形式幂级数为
(f(x) = 1 + x + x^2 + x^3 + dots + x ^ n)
[sum_{ngeq m}x^n=frac{x^m}{1-x}
]
[sum_{ngeq 0} c^nx^n=frac{1}{1-cx}
]
这个根据无限项等比数列求和也能得出结论
[sum_{ngeq 0}dbinom{n + k -1}{n}x^n = frac{1}{(1-x)^k}
]
证明:
首先对 (dbinom{n + k - 1}{n}) 进行上指标反转转化为 ((-1)^ndbinom{-k}{n})
[=sum_{ngeq 0}dbinom{n + k -1}{n}x^n
]
[= sum_{ngeq 0}(-1)^ndbinom{-k}{n}x^n
]
[= sum_{ngeq 0}(-1)^nfrac{(-k) imes (-k-1) imes(-k-2) imes dots imes(-k-n+1)}{n!}x^n
]
[=
]
同理,对上面这个式子进行反向泰勒展开等价于
对于 (frac{1}{(1 - x)^k}) 带入麦克劳林公式。就能得到和上市等价的形式。
[sum_{n geq 0}frac{c^nx^n}{n!} = e^{cx}
]
[sum_{n > 0}frac{(-1)^(n-1)}{n}x^n = ln(1 + x)
]
[sum_{n > 0}frac{1}{n}x^n=lnfrac{1}{1-x}
]
简单数列的部分和
求斐波那契数列的前缀和
[S(x) = sum_{ngeq 0}s_nx^n
]
[= sum_{ngeq 0}(sum_{i=0}^nf_i)x^n
]
[= sum_{i=0}f_isum_{ngeq i}^{infty}x^n
]
[= sum_{i=0}f_ifrac{x^i}{1-x}
]
[= frac{1}{1-x}sum_{i=0}f_ix^i
]
[= frac{1}{1-x}F(x)
]
由此可见,求一个序列部分和的生成函数只需要把它的生成函数乘上 (frac{1}{1-x})。