数列特征方程学习小记

版权声明:博主写博客也挺不容易,转载当然阔以,记得先吱一声~ https://blog.csdn.net/Cold_Chair/article/details/84888004

参考资料:《组合数学》


特征方程这个东西是用来求非齐次常数递推式的通项公式的,简单地说,就是:

有一数列ff,f[0..(k1)]f[0..(k-1)]为定值;
对于f[i](i>=k)f[i](i>=k),有f[i]=j=1kf[ij]b[j]f[i]=\sum_{j=1}^kf[i-j]*b[j]
b[j]b[j]为常数;
那么f[i]f[i]可以用i=1ks[i]p[i]n\sum_{i=1}^k s[i]*p[i]^n的通项公式表示。


由于很多证明过程书上也没写,所以……

假设f[n]f[n]是可以直接用一个pnp^n来表示,则有:
spnj=1kspnjb[j]=0s*p^n-\sum_{j=1}^k s*p^{n-j}*b[j]=0
pnj=1kpnjb[j]=0p^n-\sum_{j=1}^k p^{n-j}*b[j]=0
pkj=1kpkjb[j]=0p^{k}-\sum_{j=1}^k p^{k-j}*b[j]=0
其实这就是一个k次的方程:
那么p一定为这个k次方程的根。

其实这个这个方程就叫做这个数列的特征方程。


最简单的情况:
特征方程有k个不同的根。

把这k个根设为p1,p2,,pkp1,p2,…,pk

f[n]=i=1kp[i]ns[i]f[n]=\sum_{i=1}^k p[i]^n*s[i]
其实我们可以根据初值列出关于s的方程:
p[1]0s[1]+p[2]0s[2]++p[k]0s[k]=F[0]p[1]^0*s[1]+p[2]^0*s[2]+…+p[k]^0*s[k]=F[0]
p[1]1s[1]+p[2]1s[2]++p[k]1s[k]=F[1]p[1]^1*s[1]+p[2]^1*s[2]+…+p[k]^1*s[k]=F[1]

p[1]k1s[0]+p[2]k1s[2]++p[k]k1s[k]=F[1]p[1]^{k-1}*s[0]+p[2]^{k-1}*s[2]+…+p[k]^{k-1}*s[k]=F[1]

这是个范德蒙矩阵,范德蒙矩阵有解的条件就是PP互不相同。

所以特征方程有k个不同的根时我们一定能解出s,那么就得到了数列的通项公式。


如果PP有重复怎么办,设一个根pp重复了cc次,我们可以用p,pn,pn2,,pncp,p*n,p*n^2,…,p*n^c去等效替代。

证明:
代填


斐波拉契数列的通项公式:
f[0]=0,f[1]=1,f[i](i>=2)=f[i1]+f[i2]f[0]=0,f[1]=1,f[i](i>=2)=f[i-1]+f[i-2]

特征方程为:
x2x1=0x^2-x-1=0

该方程有两个不同的实数根:
p1=1+52,p2=152p1={1 + \sqrt 5\over 2},p2={1-\sqrt 5\over 2}

代入f[0]f[1]f[0]、f[1],可得方程:
p10s1+p20s2=0p1^0s1+p2^0s2=0
p11s1+p21s2=1p1^1s1+p2^1s2=1

解得:
s1=5,s2=5s1=\sqrt 5,s2=-\sqrt5

f[n]=15((1+52)n(152)n)f[n]={1\over \sqrt 5}({({1 + \sqrt 5\over 2})^n-({1-\sqrt 5\over 2})^n})

展开阅读全文

没有更多推荐了,返回首页