利用生成函数求斐波那契数列通项公式

利用生成函数求斐波那契数列通项公式

先吐槽一下,学习这玩意儿的时候真的是深深的明白了本身的弱小,人家的一个"解得"我竟然解了两个小时。。qwq函数

前置知识

斐波那契数列:

\[f_i = f_{i-1} + f_{i - 2}\]学习

\[f_0 = f_1 = 1\]spa

普通生成函数:

简单来讲用多项式\(\sum_{i=0}^{\infty} a_ix^i\)的系数表示序列的元素get

同时由于咱们不关心\(x\)的取值,所以\(\sum_{i=0}^{\infty}a_ix^i\)又称做以\(x\)为自由元的形式幂级数class

常见的有:

\(\frac{1}{1-x} = 1 + x + x^2 + x^3 + \dots + x^{\infty}\)im

证实:
后半部分能够直接由通项公式获得\(S_n = \frac{1-x^{n+1}}{1-x}\),当\(x \in (-1, 1)\),那么\(\lim_{n\to +\infty} x^{n+1} = 0\)qq

\(x\)替换为\(xk\)di

\(\frac{1}{1-kx} = 1 + kx + k^2x^2 + k^3x^3 \dots + k^{\infty}x^{\infty}\)co

解法

\(A = 1 + 1x + 2x^2 + 3x^3 + 5x^4 + 8x^5 \dots\)display

根据递推式,咱们能够这样变化,显然有

\[ \begin{aligned} A = \ 1 + 1x + &2x^2 + 3x^3 + 5x^4 + 8x^5 \dots \\ xA = \ \ \qquad x + &1x^2 + 2x^3 + 3x^4 + 5x^5\dots \\ x^2A =\qquad \qquad &1x^2 + 1x^3 + 2x^4 + 3x^5 \dots \end{aligned} \]

那么能够获得一个方程\(A - xA - x^2A = 1\)

整理一下\(A =\frac{1}{1-x-x^2}\)

这样咱们就获得了斐波那契数列的生成函数,然而并无什么卵用,由于咱们不能直接经过观察看出每一项的系数。

如今考虑一下,咱们接下来能够干什么。咱们已经知道了\(\frac{1}{1-x}\)\(\frac{1}{1-kx}\)所表示的序列。接下来要干的固然是把\(\frac{1}{1-x-x^2}\)往上面的两个式子转化。

\(\frac{1}{1-x-x^2}\)这玩意儿下半部分是个一元二次方程,咱们能够配方

\[1-x-x^2 = (1-\phi_1x)(1-\phi_2x)\]

\[\phi_1 = \frac{1+\sqrt{5}}{2}, \phi_2 = \frac{1-\sqrt{5}}{2}\]

(解的时候能够直接把后面的式子拆开,把这两个式子对应项联立组成方程组, \(\phi_1 \phi_2\)的取值是能够反过来的)

这个时候咱们发现已经找到与\(\frac{1}{1-kx}\)的联系了,咱们能够把\(\frac{1}{(1-\phi_1 x)(1-\phi_2 x)}\)拆成求和的形式。能够裂一下项

原式变为\(\frac{a}{1-\phi_1x} + \frac{b}{1-\phi_2 x}\),而后再解一个方程\(a(1-\phi_2 x) + b(1-\phi_1x) = 1\)

解这个方程就没那么休闲了,这里咱们选择把\(x\)当作主元对方程进行变换

\[(a+b - 1) - x(a\phi_2 + b\phi_1) = 0 \]

这样就好处理了,只要列个二元一次方程组

\[ \begin{cases} a-b-1 = 0\\ a\phi_2 + b\phi_1 = 0 \end{cases} \]

解一下能够获得\(a = \frac{1}{\sqrt{5}} \phi_1, b = -\frac{1}{\sqrt{5}} \phi_2\)

带回去

\[A = \frac{\phi_1}{\sqrt{5}} \frac{1}{1-\phi_1x} - \frac{\phi_2}{\sqrt{5}} \frac{1}{1-\phi_2x}\]

那么第\(n\)项的公式为

\[A_n = \frac{1}{\sqrt{5}} ((\frac{1+\sqrt{5}}{2})^{n+1} - (\frac{1-\sqrt{5}}{2})^{n+1})\]

参考资料

生成函数-罗煜楚(版权缘由暂不公开)

特别感谢张一钊老师qwq

相关文章
相关标签/搜索