n阶常系数线性递推方程的矩阵乘方解法
1 0
数列第n项。下面我们来考虑能不能将它推广到所有n阶常系数线性递推方程的求解。
我们设递推方程f(n)=a1*f(n-1)+a2*f(n-2)……+ak*f(n-k),其中ai(1<=i<=k)为常
数。在结果矩阵中,我们只关心第一行,则设结果矩阵A(n)为
……………………… ………………………
……………… ………………
……… ………
我们要求的递推矩阵G需要满足A(n)=A(n-1)*G。
下面我们来观察我们来观察矩阵相乘的关系式A(n)[i,j]+=A(n-1)[i,k]*G[k,j];如果要确定A(n)在[1,1]的位置是f(n),我们发现,A(n)[1,1]位置的值仅与 A(n-1)[1,k](即A(n-1)的一行)和G[k,1](即G的第一列)有关,就是对应位置乘积之和。这与我们上边的那条递推方程刚好有共通之处!就是对应位置成绩之和!所以G的第一列我们可以确定为
a2,……
……
ak,……
同样地,G后边的数也应该满足对应位置成绩之和规则。由于A(n)第一行之后的位置我们所需要的仅是前一个位置的A(n-1),所以我们只要在G中相应的位置设置1,其余位置设0就行了。这样我们就构造出递推矩阵:
a2, 0, 1, 0……, 0
a3, 0, 0, 1……, 0
……
ak-1,0, 0, 0……, 1
ak, 0, 0, 0……, 0