zoukankan      html  css  js  c++  java
  • 二阶常系数线性齐次递推式的特征方程

    参照liuzibujian的博客。

    问题

    已知(f(n)=c_1∗f(n−1)+c_2∗f(n−2))(c_1,c_2) 是常数),已知(f(0))(f(1)),求(f(n))的通项公式。

    结论

    先求出上面递推式的特征方程:(x^2-c_1x-c_2=0)(式子有点像解(n)次方程)。设两根分别为(x_1,x_2)
    (x_1≠x_2),则(f(n)=A*x_1^n+B*x_2^n)
    (x1=x2),则(f(n)=(A+B∗n)∗x_1^n) 。((A)(B)可通过(f(0))(f(1))求出)

    例题

    已知(f(n)=4f(n-1)-3f(n),f(0)=3,f(1)=5),求(f(n))的通项公式。
    解:
    特征方程为:(x^2-4x+3=0)
    (x_1=1,x_2=3)
    (ecause x_1 e x_2)
    ( herefore f(n)=A+B*3^n)
    (n=0)时,(3=A+B);当(n=1)时,(5=A+3B)
    解得(A=2,B=1)
    ( herefore f(n)=3^n+2)

    证明

    我们可以把递推式转化成一个类似等比数列的东西。

    [f(n)-r*f(n-1)=s(f(n-1)-r*f(n-2)) ]

    [f(n)=(s+r)*f(n-1)-r*s*f(n-2) ]

    可得(s+r=c_1,s*r=-c_2)
    根据韦达定理,(s)(r)(x^2-c_1x-c_2=0)的两根
    (x^2-c_1*x-c_2=0)称为该递推式的特征方程,两根分别为(x_1,x_2)
    不妨设(x_1=r,x_2=s),则(frac{f(n)-x_1*f(n-1)}{f(n-1)-x_1*f(n-2)}=x_2)

    [f(1)-x_1*f(0)=a ]

    [f(2)-x_1*f(1)=a*x_2 \ dots \ f(n-2)-x_1*f(n-3)=a*x_2^{n-3}① \ f(n-1)-x_1*f(n-2)=a*x_2^{n-2}②\ f(n)-x_1*f(n-1)=a*x_2^{n-1}③\ ]

    (③+x_1*②)得:

    [f(n)-x_1^2*f(n-2)=a*x_2^{n-1}+a*x_1*x_2^{n-2}④ ]

    (④+x_1^2*①)得:

    [f(n)-x_1^3*f(n-3)=a*x_2^{n-1}+a*x_1*x_2^{n-2}+a*x_1^2*x_2^{n-3} ]

    发现规律了吗?

    [f(n)-x_1^n*f(0)=a*(x_2^{n-1}+x_1*x_2^{n-2}+x_1^2*x_2^{n*3}+dots+x_1^{n-2}*x_2+x_1^{n-1}) \ =a*sum_{i=1}^n(x_1^{n-1}*(frac{x_2}{x_1})^{i-1}) ]

    (sum_{i=1}^n(x_1^{n-1}*(frac{x_2}{x_1})^{i-1}))可以看成是以(x_1^{n-1})为首项,(frac{x_2}{x_1})为公比的等比数列的前(n)项的和。

    在运用等比数列求和公式之前一定要讨论公比是否为(1),接下来开始讨论:

    1. (x_1 e x_2)时:

    [sum_{i=1}^n(x_1^{n-1}*(frac{x_2}{x_1})^{i-1}) \ = x_1^{n-1}*frac{(frac{x_2}{x_1})^n-1}{frac{x_2}{x_1}-1} = frac{x_2^n-x_1^n}{x_2-x_1} ]

    所以有

    [f(n)=x_1^n*f(0)+a*sum_{i=1}^n(x_1^{n-1}*(frac{x_2}{x_1})^{i-1}) \ =(f(0)-frac{a}{x_2-x_1})*x_1^n+frac{a}{x_2-x_1}*x_2^n ]

    (A=f(0)-frac{a}{x_2-x_1},B=frac{a}{x_2-x_1}),则有

    [f(n)=A*x_1^n+B*x_2^n ]

    该情况证明完毕。
    2. 当(x_1=x_2)

    [sum_{i=1}^n(x_1^{n-1}*(frac{x_2}{x_1})^{i-1}) \ = a*n*x_1^{n-1} ]

    所以有

    [f(n)=a*n*x_1^{n-1}+x_1^n*f(0)=(frac{a*n}{x_1}+f(0))*x_1^n ]

    (A=f(0),B=frac{a}{x_1}),则有

    [f(n)=(A+B*n)*x_1^n ]

    至此,命题证明完毕。

    应用

    求斐波那契数列的通项公式
    (f(n)=f(n-1)+f(n-2),f(0)=1,f(1)=1)
    根据特征方程:(x^2-x-1=0)

    [x_1=frac{sqrt{5}+1}{2},x_2=frac{sqrt{5}-1}{2} ]

    那么,(f(n)=A*x_1^n+B*x_2^n)
    带入(f(0)=1,f(1)=1),得:(A=frac{sqrt{5}}{5},B=-frac{sqrt{5}}{5})
    整理得:(f(n)=frac{1}{sqrt{5}}left((frac{sqrt{5}+1}{2})^n-(frac{sqrt{5}-1}{2})^n ight))

  • 相关阅读:
    查看CLOUD系统级IIS日志
    采购订单设置采购部门为缺省值
    单据头数据复制到单据体
    CLOUD设置过滤方案不共享
    BZOJ 4773: 负环 倍增Floyd
    LOJ #539. 「LibreOJ NOIP Round #1」旅游路线 倍增floyd + 思维
    BZOJ 4821: [Sdoi2017]相关分析 线段树 + 卡精
    一些常用公式/技巧
    BZOJ 4517: [Sdoi2016]排列计数 错排 + 组合
    BZOJ 3162: 独钓寒江雪 树的同构 + 组合 + 计数
  • 原文地址:https://www.cnblogs.com/autoint/p/10422212.html
Copyright © 2011-2022 走看看