线性递推数列的特征根解法
1.线性递推方程
简单的说,对于一个数列,设
f(n)为该数列的第n项,如果我们找到了一个递推式,使得f(n)可以表示为它前面的若干项的常系数一次多项式,则称它是一个线性递推数列。
如斐波那契数列:
f(n)=f(n−1)+f(n−2) 就是一个线性递推方程。
卡特兰数列:
f(n)=∑i=0n−1f(i)f(n−1−i)就不是一个线性递推方程。
线性递推方程又可以分为齐次和非齐次两种。
齐次线性递推方程是指除了数列中的若干项的线性组合外,没有其他部分了。
如f(n)=f(n-1)+f(n-2)。这是一个齐次线性递推方程。
而如果还存在其他项且不为0,则是非齐次线性递推方程。
如果f(n)=f(n-1)+f(n-2)+C(n),C(n)是一个非0的项,它可以是常数,也可以是关于n的一个函数。那么它就是非齐次线性递推方程。
如果线性递推方程中f(n)表示为其前k项的线性组合,则称它为k阶线性递推方程。
2.齐次线性递推方程的通解
我们发现,对于一个k阶齐次线性递推方程:
an=p1an−1+p2an−2+⋯+pkan−k(1),要想唯一的确定的该数列,必须给出k个初始值{
a0,a1,…,ak−1}。如果不给出初始值,则可能会有许多的数列都符合这个递推式。这些数列可以称之为此递推式的通解。
我们发现等比数列比较符合这种齐次线性递推方程式。设公比为q,线性递推方程两边乘上公比,左边可以由
an转移到
an+1,等式仍然成立。我们大胆假设
an=xn,(x̸=0),代入上述递推方程式,则有
xn=p1xn−1+p2xn−2+⋯+pkxn−k(2)
因为x不为0,所以两边除以
xn−k,得到
xk=p1xk−1+p2xk−2+⋯+pk(3)
考虑复根,这个方程有k个根.我们先假设没有重根。那么,这k个根都能使得(1)成立。
于是我们可以得到原k阶齐次线性递推方程(1)的k个数列,第i个数列即是一个公比为
xi的等比数列。
根据乘法分配律,我们知道,如果
α和
β是符合(1)的两个数列,则数列
C1α+C2β也符合式(1)。所以,式(1)的k个解的任意线性组合也是式(1)的解。我们称这k个等比数列为式(1)的基底。于是我们可以知道式(1)的通解可以表示为以下形式:
an=C1x1n+C2x2n+⋯+Ckxkn
设线性递推方程的表示的数列的前k项值为{
b0,b1,…,bk−1},则有
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧C1x10+C2x20+⋯+Ckxk0C1x11+C2x21+⋯+Ckxk1……C1x1k−1+C2x2k−1+⋯+Ckxkk−1===b0b1bk−1(4)
用矩阵表示为:
⎝⎜⎜⎜⎛1x11⋮x1k−11x21⋮x2k−1……⋮…1xk2⋮xkk−1⎠⎟⎟⎟⎞⎝⎜⎜⎜⎛C1C2⋮Ck⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛b0b1⋮bk−1⎠⎟⎟⎟⎞
其中第一个矩阵为著名的范德蒙德矩阵,它的行列式为
1≤j<k≤n∏(xk−xj)(5),因为没有重根,所以行列式值不为0。所以该矩阵有逆矩阵,方程(4)有解。
于是可以得到齐次线性递推方程的通解。
如果有重根,设重根为x1=x2,则方程在x1处的导数为0。
根据式(3),得:
kxk−1−p1(k−1)xk−2+p2(k−2)xk−3+⋯+pk−1=0(6)
因为x不为0,两边再乘上x,得到:
kxk=p1(k−1)xk−1+p2(k−2)xk−2+⋯+pk−1x+pk∗0∗x0(7)
将(3)+(7),然后再乘上x,则可得:
(k+1)xk+1=p1kxk+p2(k−1)xk−1+⋯+pk−12x2+pkx
当x取x1时,等式成立。
由此可见,
nx1n构成的数列也是线性递推方程的一个解。
于是通解
an可写为:
an=(C1+nC2)x1n+C3x2n+⋯+Ckxk−1n
3.非齐次线性递推方程的通解
给出一个线性递推方程:
an+p1an−1+p2an−2+⋯+pkan−k=f(n)(8)
若
f(n)不为0,则式(8)称为非齐次线性递推方程。
f(n)可以为常数,也可以为关于n的多项式,也可以为以n为指数的表达式。
对于这类方程,我们可以通过构造法,将它变成齐次线性递推方程。
构造
tn满足:
tn+p1tn−1+p2tn−2+⋯+pktn−k=f(n)
其中
tn称为非线性递推方程的特解。
设
bn=an−tn.
则
bn满足:
bn+p1bn−1+p2bn−2+⋯+pkbn−k=0(9)
bn可以通过齐次线性递推方程求解。
它是齐次线性递推方程的通解。于是
an=bn+tn,即非齐次线性递推方程的解可由齐次方程的通解和特解求得。
那如何求
tn呢?
可以用待定系数法求出。
一般情况下,若f(n)为常数,则t_n也可以设为常数,若f(n)为n的m次多项式,则
tn也可以设为n的m次多项式,若f(n)为指数形式,如
f(n)=qn,则可以设
tn=rqn或
tn=rnqn的形式。然后用待定系数法解出。