zoukankan      html  css  js  c++  java
  • Fibonacci数列通项公式

    通常方法

    F[0]=0, F[1]=1, F[n]=F[n-1]+F[n-2] (n>1)

    改写为简单的形式:F[n] = F[n-1] + F[n-2] + [n=1]

    采用机械方法得到封闭形式:

    [egin{align} sum_nF[n]x^n &= sum_nF[n-1]x^n + sum_nF[n-2]x^n + sum_n[n=1]x^n\ F(x) &= xF(x) + x^2F(x) + x\ F(x) &= frac x{1-x-x^2} end{align} ]

    考虑将其写成若干个 (dfrac1{1-cx^k}) 的和, 为此将分母因式分解:

    (1-x-x^2 = 0)(x_1 = -dfrac{1 + sqrt5}{2})(x_2 = -dfrac{1-sqrt5}2)

    于是有 (F(x) = dfrac x{(x-x_1)(x-x_2)})

    考虑 (dfrac1{x-x_1}-dfrac1{x-x_2} = dfrac{x_2-x_1}{(x-x_1)(x-x_2)}),则 (F(x) = dfrac{x}{x_2-x_1}left(dfrac1{x-x_1}-dfrac1{x-x_2} ight))

    考虑调整:(F(x) = dfrac{x}{x_2-x_1}left(dfrac1{x_2}dfrac1{1-x/x_2}-dfrac1{x_1}dfrac1{1-x/x_1} ight))

    可以比较轻松地看出 ([x^n]F(x)), 具体地:

    [egin{align} [x^n]F(x) &= [x^n]frac1{x_2-x_1}frac1{x_2}frac x{1-x/x_2} - [x^n]frac1{x_2-x_1}frac1{x_1}frac x{1-x/x_1}\ &= [x^n]frac1{x_2-x_1}frac1{x_2}sum_n frac{x^{n+1}}{x_2^n} - [x^n]frac1{x_2-x_1}frac1{x_1}sum_n frac{x^{n+1}}{x_1^n}\ &= frac1{x_2-x_1}left(frac1{x_2^n}-frac1{x_1^n} ight) end{align} ]

    整理后就得到:

    [F[n] = frac{sqrt5}5left[left(frac{1+sqrt5}2 ight)^n-left(frac{1-sqrt5}2 ight)^n ight] ]


    特征根法

    特征方程: 特征方程可以用于求解线性递推数列的通项公式,其步骤是:将数列假设为一个等比数列并求出特征根, 再代入初始数列的值求出特征根的系数, 从而得到通项公式。

    (sf F_n = lambda^n), 就有:(sflambda^n = lambda^{n-1} + lambda^{n-2})

    令 n=2, 就有:(sflambda^2 = lambda+1), 解方程得到:

    [sflambda_1 = frac{1+sqrt 5}2,sflambda_2 = frac{1-sqrt 5}2 ]

    根据特征根法的结论, 数列的通项公式可以表示为:(sf F_n = plambda_1^n + qlambda_2^n)

    把 n=0,n=1 分别代入得到:

    [egin{cases} sf plambda_1 + qlambda_2 = 1\ sf p + q = 0 end{cases} ]

    解得:(egin{cases}sf p=dfrac1{sqrt5}\sf q=-dfrac1{sqrt5}end{cases})

    那么就可以得到通项公式了。

  • 相关阅读:
    【转】为什么要报考系统架构设计师考试
    前端三大主流框架中文文档
    零散知识点-类的区别;函数式编程的简单总结;
    window.location相关方法
    Hybrid相关
    php中file_get_contents与curl的区别
    三级下拉菜单
    微信生成带参数二维码及响应操作
    开发中因长时间不用而遗忘的,持续补充中。。
    项目中用到的几个工具函数
  • 原文地址:https://www.cnblogs.com/tztqwq/p/14414347.html
Copyright © 2011-2022 走看看