首页 > 代码库 > 斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)
斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)
一.矩阵乘法
设矩阵A,B 满足 :A的列数==B的行数
矩阵乘法的运算规则:
将A矩阵的每一行乘以B矩阵的每一列
*
==
==
二.斐波那契数列的矩阵推导
首先我们想
Fib[i]=Fib[i-1]+Fib[i-2];
所以斐波那契数列的第i项之与两个数也就是Fib[i-1]+Fib[i-2]有关
那么我们可以设第一个矩阵
M1=
因为我们需要利用矩阵推出斐波那契的第n项
所以我们设M1的下一项为M3
则M3=(也就是让M1的下标整体后移一位)
那么现在我们需要一个过渡矩阵M2来实现这个从M1到M3的操作
因为M1是一个1*2的矩阵
M3也是一个1*2的矩阵
那么M2一定是一个2*2的矩阵
(原因:1.M1的列要和M2的行相等
2.M3的列数是2)
设M2=
所以
a*fi-2+b*fi-1==fi-1①
c*fi-2+d*fi-1==fi②
这个式子看上去是不能解的
但是我们想一下
当a==0&&b==1的时候①成立
当c==1&&d==1的时候②成立(Fib[i]=Fib[i-1]+Fib[i-2])
所以我们很容易的得到矩阵M2
M2=
三.一道简单的例题
设fi=fi-1+2fi-2+3fi-3
按照上面的方法求出M1,M2,M3
提示:矩阵推导的时候不带系数
(建议先做再看题解)
解:
设M1=
M3=
则M2一定是一个3*3的矩阵
设M2=
则a*fi-1+b*fi-2+c*fi-3==fi== fi-1+2fi-2+3fi-3
d*fi-1+e*fi-2+f*fi-3==fi-1
g*fi-1+h*fi-2+i*fi-3==fi-2
易得 a==1,b==2,c==3
d==1,e==0,f==0
g==0,h==0,i==0
所以
M2=
斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)