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

  • 斐波那契数列

    \(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\qquad 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} \]

——THE END——
posted @ 2022-07-10 18:33  凌云_void  阅读(588)  评论(0编辑  收藏  举报