首页 > 代码库 > 斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)

斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)

一.矩阵乘法

设矩阵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=技术分享

 

斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)