生成函数法求斐波那契数列通项公式
-
斐波那契数列
\(a_0=0,a_1=1,a_n=a_{n-1}+a_{n-2}\)
求\(\{a_n\}\)通项公式
-
前置芝士——普通生成函数
-
作用:在无穷级数、函数和数列之间建立关系,通过函数对数列进行操作
-
举个栗子
对于最简单的一个数列\(\{1,1,1,1,...\}\),我们可以将其每一项映射到一个函数\(f(x)\)的系数中,即:
\[f(x)=1\cdot x^0+1\cdot x^1+1\cdot x^2+... \]其中\(x\)的取值无意义,称为形式幂级数
观察发现,当\(x\in(-1,1)\)时,\(f(x)\)的每一项构成等比数列,由等比数列求和公式得:
\[f(x)=\frac{1\cdot(1-x^\infty)}{1-x}=\frac{1}{1-x} \]也就是说,数列\(\{1,1,1,1,...\}\)的生成函数为\(f(x)=\frac1{1-x}\)
同理,对于数列\(\{1,k,k^2,k^3,...\}\),其生成函数
\[f(x)=k^0\cdot x^0+k^1\cdot x^1+k^2\cdot x^2+...=\frac{1\cdot(1-(kx)^\infty)}{1-kx}=\frac{1}{1-kx} \]因此,如果我们求出了数列\(\{a_n\}\)的生成函数\(f(x)=\frac1{1-kx}\),那么数列\(\{a_n\}\)即为\(\{1,k,k^2,k^3,...\}\),\(a_n=k^n\)
你悟了吗(
-
普通生成函数的基本运算
类比实数的四则运算,生成函数也是有的
对于数列\(\{a_n\}\)、\(\{b_n\}\),其普通生成函数分别为:
\[F(x)=a_0\cdot x^0+a_1\cdot x^1+a_2\cdot x^2+... \\ G(x)=b_0\cdot x^0+b_1\cdot x^1+b_2\cdot x^2+... \]由此,
\[\begin{aligned} F(x)+G(x)&=(a_0+b_0)\cdot x^0+(a_1+b_1)\cdot x^1+(a_2+b_2)\cdot x^2+... \\&=\Sigma_{i=0}^{\infty}(a_i+b_i)\cdot x^i \end{aligned} \]这告诉我们,可以将一个数列的生成函数拆成两个数列的生成函数的和,原数列的第\(n\)项即为\(a_n+b_n\)
此外,两个数列的生成函数还能进行“乘法”运算,即:卷积
观察\(F(x)\cdot G(x)\)展开的系数,可以发现:\(x^k\)的系数为\(\Sigma_{i=0}^{k}a_ib_{k-i}\)
因此,
\[F(x)\cdot G(x)=\Sigma_{i=0}^{n}x^i\Sigma_{j=0}^{k}a_jb_{k-j} \]
-
-
生成函数法求斐波那契数列通项公式
经过上面的分析,我们可以看出,只需求出斐波那契数列的生成函数,自然就能得到其通项公式
不妨设其生成函数为\(f(x)\),有:
\[\begin{aligned} f(x)&=a_0+a_1x&+a_2x^2+a_3x^3+...\qquad\qquad① \\ x\cdot f(x)&=a_0x&+a_1x^2+a_2x^3+...\qquad\qquad② \\ x^2\cdot f(x)&=&a_0x^2+a_1x^3+...\qquad\qquad③ \end{aligned} \]由\(a_0=0,a_1=1,a_n=a_{n-1}+a_{n-2}\),
\(①-②-③\),得:
\[(1-x-x^2)\cdot f(x)=x \\ f(x)=\frac{x}{1-x-x^2} \](此处不甚严谨,详细证明略
由此,我们得到了斐波那契数列的生成函数:\(f(x)=\frac{x}{1-x-x^2}\)
但是,似乎形式不太对啊
如何将\(f(x)\)化为\(\frac{1}{1-kx}\)的形式?
分母中有二次项,不妨将其拆为两个一次项相乘的形式,再进行裂项,利用普通生成函数的加法运算求解
用待定系数法,设\(1-x-x^2=(1-mx)(1-nx)\),则:
\[\begin{cases} m+n=1 \\ mn=-1 \end{cases} \]解得:
\[\begin{cases} m=\frac{1+\sqrt5}{2} \\ n=\frac{1-\sqrt5}{2} \end{cases} \qquad或\qquad \begin{cases} m=\frac{1-\sqrt5}{2} \\ n=\frac{1+\sqrt5}{2} \end{cases} \]不妨令
\[\begin{cases} m=\frac{1-\sqrt5}{2} \\ n=\frac{1+\sqrt5}{2} \end{cases} \]则:
\[f(x)=\frac{x}{(1-mx)(1-nx)}\qquad\qquad④ \]如何裂项?
我们知道,
\[\frac c{ab}=\frac{a-b}{ab}\cdot\frac{c}{a-b}=(\frac a{ab}-\frac b{ab})\cdot\frac{c}{a-b}=(\frac1b-\frac1a)\cdot\frac{c}{a-b}\qquad\qquad⑤ \]将④代入⑤,可得:
\[\begin{aligned} f(x)&=\frac{x}{(1-mx)(1-nx)} \\ &=(\frac1{1-nx}-\frac1{1-mx})\cdot\frac{x}{(1-mx)-(1-nx)} \\ &=(\frac1{1-nx}-\frac1{1-mx})\cdot\frac{x}{(n-m)x} \\ &=(\frac1{1-nx}-\frac1{1-mx})\cdot\frac{1}{\sqrt5} \\ &=\frac{1}{\sqrt5}\cdot\frac1{1-nx}-\frac{1}{\sqrt5}\cdot\frac1{1-mx} \end{aligned} \]我们惊喜地发现,\(f(x)\)可以拆成两个普通生成函数相减的形式
设\(F(x)=\frac1{1-nx}\),\(G(x)=\frac1{1-mx}\),
则这两个生成函数对应数列的第\(k\)项分别为\(n^k、m^k\)
因此,斐波那契数列的第\(k\)项
\[\begin{aligned} a_k&=\frac{1}{\sqrt5}\cdot n^k-\frac{1}{\sqrt5}\cdot m^k \\ &=\frac{(\frac{1+\sqrt5}{2})^k-(\frac{1-\sqrt5}{2})^k}{\sqrt5} \end{aligned} \]我们便愉快地求出了斐波那契数列的通项公式:
\[a_n=\frac{(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n}{\sqrt5} \]