线性递推方程通解的特征根解法

线性递推数列的特征根解法

1.线性递推方程

简单的说,对于一个数列,设 f ( n ) f(n) f(n)为该数列的第n项,如果我们找到了一个递推式,使得f(n)可以表示为它前面的若干项的常系数一次多项式,则称它是一个线性递推数列。
如斐波那契数列: f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n)=f(n-1)+f(n-2) f(n)=f(n1)+f(n2) 就是一个线性递推方程。
卡特兰数列: f ( n ) = ∑ i = 0 n − 1 f ( i ) f ( n − 1 − i ) f(n)=\sum_{i=0}^{n-1}f(i)f(n-1-i) f(n)=i=0n1f(i)f(n1i)就不是一个线性递推方程。
线性递推方程又可以分为齐次和非齐次两种。
齐次线性递推方程是指除了数列中的若干项的线性组合外,没有其他部分了。
如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阶齐次线性递推方程: (1) a n = p 1 a n − 1 + p 2 a n − 2 + ⋯ + p k a n − k a_n=p_1a_{n-1}+p_2a_{n-2}+\dots+p_ka_{n-k} \tag{1} an=p1an1+p2an2++pkank(1),要想唯一的确定的该数列,必须给出k个初始值{ a 0 , a 1 , … , a k − 1 a_0,a_1,\dots,a_{k-1} a0,a1,,ak1}。如果不给出初始值,则可能会有许多的数列都符合这个递推式。这些数列可以称之为此递推式的通解。
我们发现等比数列比较符合这种齐次线性递推方程式。设公比为q,线性递推方程两边乘上公比,左边可以由 a n a_n an转移到 a n + 1 a_{n+1} an+1,等式仍然成立。我们大胆假设 a n = x n , ( x ≠ 0 ) a_n=x^n,(x \neq 0) an=xn,(x̸=0),代入上述递推方程式,则有 (2) x n = p 1 x n − 1 + p 2 x n − 2 + ⋯ + p k x n − k x^n=p_1x^{n-1}+p_2x^{n-2}+\dots+p_kx^{n-k} \tag{2} xn=p1xn1+p2xn2++pkxnk(2)
因为x不为0,所以两边除以 x n − k x^{n-k} xnk,得到 (3) x k = p 1 x k − 1 + p 2 x k − 2 + ⋯ + p k x^k=p_1x^{k-1}+p_2x^{k-2}+\dots+p_k \tag{3} xk=p1xk1+p2xk2++pk(3)
考虑复根,这个方程有k个根.我们先假设没有重根。那么,这k个根都能使得(1)成立。
于是我们可以得到原k阶齐次线性递推方程(1)的k个数列,第i个数列即是一个公比为 x i x_i xi的等比数列。
根据乘法分配律,我们知道,如果 α \alpha α β \beta β是符合(1)的两个数列,则数列 C 1 α + C 2 β C_1\alpha+C_2\beta C1α+C2β也符合式(1)。所以,式(1)的k个解的任意线性组合也是式(1)的解。我们称这k个等比数列为式(1)的基底。于是我们可以知道式(1)的通解可以表示为以下形式:
a n = C 1 x 1 n + C 2 x 2 n + ⋯ + C k x k n a_n=C_1x_1^n+C_2x_2^n+\dots+C_kx_k^n an=C1x1n+C2x2n++Ckxkn
设线性递推方程的表示的数列的前k项值为{ b 0 , b 1 , … , b k − 1 b_0,b_1,\dots,b_{k-1} b0,b1,,bk1},则有
(4) { C 1 x 1 0 + C 2 x 2 0 + ⋯ + C k x k 0 = b 0 C 1 x 1 1 + C 2 x 2 1 + ⋯ + C k x k 1 = b 1 … … C 1 x 1 k − 1 + C 2 x 2 k − 1 + ⋯ + C k x k k − 1 = b k − 1 \left \{ \begin{array} {rcl} C_1x_1^0+C_2x_2^0+\dots+C_kx_k^0&=&b_0 \\ \\C_1x_1^1+C_2x_2^1+\dots+C_kx_k^1&=&b_1 \\ \\ \dots \\ \dots \\ \\ C_1x_1^{k-1}+C_2x_2^{k-1}+\dots+C_kx_k^{k-1}&=&b_{k-1}\end{array}\right.\tag{4} C1x10+C2x20++Ckxk0C1x11+C2x21++Ckxk1C1x1k1+C2x2k1++Ckxkk1===b0b1bk1(4)

用矩阵表示为:
( 1 1 … 1 x 1 1 x 2 1 … x k 2 ⋮ ⋮ ⋮ ⋮ x 1 k − 1 x 2 k − 1 … x k k − 1 ) ( C 1 C 2 ⋮ C k ) = ( b 0 b 1 ⋮ b k − 1 ) \left( \begin{matrix} 1 & 1 &\dots & 1 \\ x_1^1 &x_2^1 & \dots &x_k^2 \\ \vdots & \vdots&\vdots &\vdots \\ x_1^{k-1} &x_2^{k-1} & \dots &x_k^{k-1} \end{matrix} \right) \left( \begin{matrix} C_1 \\ C_2 \\ \vdots \\ C_k \end{matrix} \right)= \left( \begin{matrix} b_0 \\b_1 \\ \vdots \\b_{k-1} \end{matrix} \right) 1x11x1k11x21x2k11xk2xkk1C1C2Ck=b0b1bk1

其中第一个矩阵为著名的范德蒙德矩阵,它的行列式为
(5) ∏ 1 ≤ j < k ≤ n ( x k − x j ) \prod_{1\leq j < k \leq n}(x_k-x_j) \tag{5} 1j<kn(xkxj)(5),因为没有重根,所以行列式值不为0。所以该矩阵有逆矩阵,方程(4)有解。
于是可以得到齐次线性递推方程的通解。
如果有重根,设重根为x1=x2,则方程在x1处的导数为0。
根据式(3),得:
(6) k x k − 1 = p 1 ( k − 1 ) x k − 2 + p 2 ( k − 2 ) x k − 3 + ⋯ + p k − 1 kx^{k-1}=p_1(k-1)x^{k-2}+p_2(k-2)x^{k-3} +\dots+p_{k-1} \tag{6} kxk1=p1(k1)xk2+p2(k2)xk3++pk1(6)
因为x不为0,两边再乘上x,得到:
(7) k x k = p 1 ( k − 1 ) x k − 1 + p 2 ( k − 2 ) x k − 2 + ⋯ + p k − 1 x + p k ∗ 0 ∗ x 0 kx^k=p_1(k-1)x^{k-1}+p_2(k-2)x^{k-2}+\dots+p_{k-1}x+p_k*0*x^0 \tag{7} kxk=p1(k1)xk1+p2(k2)xk2++pk1x+pk0x0(7)
将(3)+(7),然后再乘上x,则可得:
( k + 1 ) x k + 1 = p 1 k x k + p 2 ( k − 1 ) x k − 1 + ⋯ + p k − 1 2 x 2 + p k x (k+1)x^{k+1}=p_1kx^k+p_2(k-1)x^{k-1}+\dots+p_{k-1}2x^2+p_kx (k+1)xk+1=p1kxk+p2(k1)xk1++pk12x2+pkx
当x取x1时,等式成立。
由此可见, n x 1 n 构 成 的 数 列 nx_1^n构成的数列 nx1n也是线性递推方程的一个解。
于是通解 a n a_n an可写为:
a n = ( C 1 + n C 2 ) x 1 n + C 3 x 2 n + ⋯ + C k x k − 1 n a_n=(C_1+nC_2)x_1^n+C_3x_2^n+\dots+C_kx_{k-1}^n an=(C1+nC2)x1n+C3x2n++Ckxk1n

3.非齐次线性递推方程的通解

给出一个线性递推方程: (8) a n + p 1 a n − 1 + p 2 a n − 2 + ⋯ + p k a n − k = f ( n ) a_n+p_1a_{n-1}+p_2a_{n-2}+\dots+p_ka_{n-k}=f(n)\tag{8} an+p1an1+p2an2++pkank=f(n)(8)

f ( n ) f(n) f(n)不为0,则式(8)称为非齐次线性递推方程。 f ( n ) f(n) f(n)可以为常数,也可以为关于n的多项式,也可以为以n为指数的表达式。
对于这类方程,我们可以通过构造法,将它变成齐次线性递推方程。
构造 t n t_n tn满足: t n + p 1 t n − 1 + p 2 t n − 2 + ⋯ + p k t n − k = f ( n ) t_n+p_1t_{n-1}+p_2t_{n-2}+\dots+p_kt_{n-k}=f(n) tn+p1tn1+p2tn2++pktnk=f(n)
其中 t n t_n tn称为非线性递推方程的特解。

b n = a n − t n b_n=a_n-t_n bn=antn.
b n b_n bn满足:
(9) b n + p 1 b n − 1 + p 2 b n − 2 + ⋯ + p k b n − k = 0 b_n+p_1b_{n-1}+p_2b_{n-2}+\dots+p_kb_{n-k}=0 \tag{9} bn+p1bn1+p2bn2++pkbnk=0(9)
b n b_n bn可以通过齐次线性递推方程求解。
它是齐次线性递推方程的通解。于是 a n = b n + t n a_n=b_n+t_n an=bn+tn,即非齐次线性递推方程的解可由齐次方程的通解和特解求得。
那如何求 t n t_n tn呢?
可以用待定系数法求出。
一般情况下,若f(n)为常数,则t_n也可以设为常数,若f(n)为n的m次多项式,则 t n t_n tn也可以设为n的m次多项式,若f(n)为指数形式,如 f ( n ) = q n f(n)=q^n f(n)=qn,则可以设 t n = r q n t_n=rq^n tn=rqn t n = r n q n t_n=rnq^n tn=rnqn的形式。然后用待定系数法解出。

你可能感兴趣的:(数学)