组合数学之递推关系(二)常系数线性齐次递推关系及其通项求解

说明

本文参考了组合数学课件,精简整理了一下内容并谈谈自己的理解


这啥关系,说白了就是可以用来矩阵加速的东西
形如 an=k1an1+k2an2+k3an3+...+kmanm a n = k 1 ∗ a n − 1 + k 2 ∗ a n − 2 + k 3 ∗ a n − 3 + . . . + k m ∗ a n − m 的递推关系就是m阶常系数线性齐次递推关系
我们先来解读一下名字中的名词:
常系数:系数 ki k i 为常数
线性齐次:递推式里的 ani a n − i 的指数全为一次
递推关系:就递推的意思
还有几个定义:
特征多项式:就是上面的式子左边-右边,然后把 ai a i 变成 xi x i 后形成的式子
即: xmk1xm1k2xm2...km1xkm1=0 x m − k 1 ∗ x m − 1 − k 2 ∗ x m − 2 − . . . − k m − 1 ∗ x − k m ∗ 1 = 0
特征方程:就是特征多项式=0的方程
特征根:就是特征方程的根

下面,我们将讨论如何求出a数组的通项:

定理1. x=pai=pi x = p , 即 a i = p i ,当且仅当 p p 为特征根。
证明显然:
pi p i 为多项式的通项,即: pn=k1pi1+k2pi2+...+kmpim p n = k 1 ∗ p i − 1 + k 2 ∗ p i − 2 + . . . + k m ∗ p i − m
得: pm=k1pm1+k2pm2+...+km1p+km1 p m = k 1 ∗ p m − 1 + k 2 ∗ p m − 2 + . . . + k m − 1 ∗ p + k m ∗ 1
而p为特征根,即 pmk1pm1k2pm2...km1pkm1=0 p m − k 1 ∗ p m − 1 − k 2 ∗ p m − 2 − . . . − k m − 1 ∗ p − k m ∗ 1 = 0
这不一个意思吗?

定理2. q1,q2,,qm q 1 , q 2 , … , q m 为互不相等的特征根(因为特征方程是个一元m次方程,刚好有m个根,当有根相等时,此公式不适用), c1,c2,,cm c 1 , c 2 , … , c m 为任意常数,则 an=c1qn1+c2qn2++cmqnm a n = c 1 q 1 n + c 2 q 2 n + … + c m q m n 亦为特征根。
说白了就是等于0的式子加起来还等于0。

那么现在问题来了:
特征根和我们要求的a数组的通项实在是太像了,但只有一个地方有问题:
a数组的初始值
我们注意到推论2中 c c 数组是任取的,那么我们就将 c c 数组解出来!

当特征根互不相等时

建立如下方程组:
c1+c2+...+cm=a0 c 1 + c 2 + . . . + c m = a 0
q1c1+q2c2+...+qmcm=a1 q 1 c 1 + q 2 c 2 + . . . + q m c m = a 1
... . . .
qm11c1+qm12c2+...+qm1mcm=am1 q 1 m − 1 c 1 + q 2 m − 1 c 2 + . . . + q m m − 1 c m = a m − 1
然后将 c c 解出来,因为有 m m 个方程, m m 个未知数,可以知道方程的解,即 c c 数组的值,是唯一确定的(这样说不是很严谨,严格来说需要用行列式证明)。
求出了 c c 数组后,我们发现,对于 a a 数组的初值部分, an=c1qn1+c2qn2++cmqnm a n = c 1 q 1 n + c 2 q 2 n + … + c m q m n 满足条件,对于 a a 数组的递推出来的部分,同样满足条件。
此时,这个递推式的通项已经求出,为: an=c1qn1+c2qn2++cmqnm a n = c 1 q 1 n + c 2 q 2 n + … + c m q m n

下面我们通过两个例子来加深理解:
例1.求斐波那契数列的通项

列递推关系方程:
Fn=Fn1+Fn2 F n = F n − 1 + F n − 2
F0=1,F1=1 F 0 = 1 , F 1 = 1
特征方程为:
q1=1+52,q2=152 q 1 = 1 + 5 2 , q 2 = 1 − 5 2
设通项为: Fn=c1qn1+c2qn2 F n = c 1 q 1 n + c 2 q 2 n
由初始条件列方程组:
F0=c1+c2=1 F 0 = c 1 + c 2 = 1
F1=c1q1+c2q2=1 F 1 = c 1 q 1 + c 2 q 2 = 1
解得:
c1=1+525,c2=1+525 c 1 = 1 + 5 2 5 , c 2 = − 1 + 5 2 5
所以通项为:
Fn=1+525(1+52)n+1+525(152)n=(1+5)n+1(15)n+12n+15 F n = 1 + 5 2 5 ( 1 + 5 2 ) n + − 1 + 5 2 5 ( 1 − 5 2 ) n = ( 1 + 5 ) n + 1 − ( 1 − 5 ) n + 1 2 n + 1 5

例2.求递归关系通解:
an=2an1+an22an3 a n = 2 a n − 1 + a n − 2 − 2 a n − 3
a0=1,a1=2,a2=0 a 0 = 1 , a 1 = 2 , a 2 = 0

特征方程为:
x32x2x+2=0 x 3 − 2 x 2 − x + 2 = 0
解得特征根为:
q1=1,q2=1,q3=2 q 1 = 1 , q 2 = − 1 , q 3 = 2
设通项为:
an=c1qn1+c2qn2+c3qn3 a n = c 1 q 1 n + c 2 q 2 n + c 3 q 3 n
将初始条件带入,有:
a0=c1+c2+c3=1 a 0 = c 1 + c 2 + c 3 = 1
a1=c1c2+2c3=2 a 1 = c 1 − c 2 + 2 c 3 = 2
a2=c1+c2+4c3=0 a 2 = c 1 + c 2 + 4 c 3 = 0
解得:
c1=2,c2=2/3,c3=1/3 c 1 = 2 , c 2 = − 2 / 3 , c 3 = − 1 / 3
则通项为:
an=2(2/3)(1)n(1/3)2n a n = 2 − ( 2 / 3 ) ( − 1 ) n − ( 1 / 3 ) ∗ 2 n

那么问题来了,当特征方程有相同解怎么办呢?

当有相同特征根时

补充定义:多重解
qi q i 是特征方程的解并且在 m m 个解中出现了 si s i 次,则称 qi q i 是特征方程的 si s i 重特征根。
意思就是,几重解就是这个解出现的次数,或者说与它相同的根的数量。

定理3. q1,q2,,qt q 1 , q 2 , … , q t 分别为上述递推关系的特征方程相异的 s1,s2,,st s 1 , s 2 , … , s t 重特征根,且 (ti=1si)=m ( ∑ i = 1 t s i ) = m ,则该递推关系的通解为:
an=(c(1,1)+c(1,2)n+...+c(1,s1)ns11)qn1+(c(2,1)+c(2,2)n+...+c(2,s2)ns21)qn2+...+(c(t,1)+c(t,2)n+...+c(t,st)nst1)qnt a n = ( c ( 1 , 1 ) + c ( 1 , 2 ) n + . . . + c ( 1 , s 1 ) n s 1 − 1 ) q 1 n + ( c ( 2 , 1 ) + c ( 2 , 2 ) n + . . . + c ( 2 , s 2 ) n s 2 − 1 ) q 2 n + . . . + ( c ( t , 1 ) + c ( t , 2 ) n + . . . + c ( t , s t ) n s t − 1 ) q t n
其中 c(i,j) c ( i , j ) 由初始条件确定。
看起来很恶心,其实不难理解,比如我们令 si=1 s i = 1 ,即无重复的一个根,它的单独的式子为: c(i,1)qni c ( i , 1 ) q i n ,这根我们之前的无重复的几乎一模一样, ci,1 c i , 1 ci c i 也没什么区别,反正前者只有一项。
而令 si=2 s i = 2 ,它的式子变为: (c(i,1)+c(i,2)n)qni ( c ( i , 1 ) + c ( i , 2 ) n ) q i n
相当于前一个,括号里加了一个 c(i,2)n c ( i , 2 ) n ,以此类推, si=b s i = b si=b1 s i = b − 1 括号里多了一个 c(i,b)nb1 c ( i , b ) n b − 1
关于证明,要用到一些行列式的结论,由于涉及到一些大(wo)家(kan)不(qiu)熟(bu)悉(dong)的东西,大家有兴趣的可以自己去找,与Vandermonde行列式有关。

下面我们仍然通过两个例子来加深理解:
例3.求解通项:
an=2an1an2 a n = 2 a n − 1 − a n − 2
a1=2,a2=3 a 1 = 2 , a 2 = 3

特征方程:
x22x+1=0 x 2 − 2 x + 1 = 0
特征根:
x1=1,x2=1,q1=1,s1=2 x 1 = 1 , x 2 = 1 , 即 q 1 = 1 , s 1 = 2
通项为: an=c(1,1)+c(1,2)n a n = c ( 1 , 1 ) + c ( 1 , 2 ) n
由初值:
a1=c(1,1)+c(1,2)=2 a 1 = c ( 1 , 1 ) + c ( 1 , 2 ) = 2
a2=c(1,1)+2c(1,2)=3 a 2 = c ( 1 , 1 ) + 2 c ( 1 , 2 ) = 3
解得:
c(1,1)=1 c ( 1 , 1 ) = 1
c(1,2)=1 c ( 1 , 2 ) = 1
所以通项为:
an=1+n a n = 1 + n

例4.又是一个求通项
an=6an112an28an3 a n = − 6 a n − 1 − 12 a n − 2 − 8 a n − 3
a0=1,a1=2,a2=8 a 0 = 1 , a 1 = − 2 , a 2 = 8

特征方程为:
x3+6x2+12x+8=0 x 3 + 6 x 2 + 12 x + 8 = 0
解为:
x1=x2=x3=2 x 1 = x 2 = x 3 = − 2
即: q1=2,s1=3 q 1 = − 2 , s 1 = 3
设通项为:
an=(c(1,1)+c(1,2)n+c(1,3)n2)(2)n a n = ( c ( 1 , 1 ) + c ( 1 , 2 ) n + c ( 1 , 3 ) n 2 ) ( − 2 ) n
由初始条件:
a0=c(1,1)=1 a 0 = c ( 1 , 1 ) = 1
a1=(c(1,1)+c(1,2)+c(1,3))(2)=2 a 1 = ( c ( 1 , 1 ) + c ( 1 , 2 ) + c ( 1 , 3 ) ) ( − 2 ) = − 2
(c(1,1)+2c(1,2)+4c(1,3))(2)2=8 ( c ( 1 , 1 ) + 2 c ( 1 , 2 ) + 4 c ( 1 , 3 ) ) ( − 2 ) 2 = 8
则通项为:
an=(1n2+n22)(2)n a n = ( 1 − n 2 + n 2 2 ) ( − 2 ) n

至此,我们已经在省略了一堆证明的情况下知道了如何求出常系数线性齐次递推关系的通项了!

你可能感兴趣的:(学习总结)