矩阵乘法和斐波那契数列【清北学堂】

  这篇博客是一边听课一边写的

  两个矩阵做乘法的先决条件是一个矩阵的宽和另一个矩阵的高相等

  比如一个2*3的矩阵和一个3*4的矩阵就可以相乘

  乘出来的效果是这样的

  比如有个1*2的矩阵[ a b ]  和2*1的矩阵 [ c ]

                       [ d ]

 

  那乘出来的效果就是[ a*c+b*d ]

  好吧并不理解

  再比如[ a b ]  *  [ e f ]  =  [ ae+bg af+bh ]

     [ c d ]     [ g h ]      [ ce+dg cf+dh ]

  这样

  矩阵乘法可以用来求一些奇怪的递推式,如斐波那契数列和、斐波那契数列平方和等等

  比如求斐波那契平方和的矩阵乘法如下

  [ 1 1 3 3 1 ]  [ Sum ]

  [ 0 1 3 3 1 ]  [ (i-1)^3] 

  [ 0 0 1 2 1 ]  [ (i-1)^2]

  [ 0 0 0 1 1 ]  [ i-1 ]

  [ 0 0 0 0 1 ]  [ 1 ]

  两个矩阵相乘可以搞出斐波那契的平方和

  推导过程如下

  首先我们看到,在每一次循环中  Sum=Sum+i^3

  那么i^3怎么来的呢   肯定不能直接来,于是我们要往之前 的循环中找

  也就是找到i^3和(i-1)^3的联系

  容易推出 (i-1)^3 = i^3-3i^2+3i-1

  也就是说,为了推出i^3,我们需要(i-1)^3、(i-1)^2、i-1和1

  于是推出如上矩阵

  首先我们发现上式移项得出i^3=(i-1)^3+3i^2-3i+1

  又对上式进行配方  得到 (i-1)^3+3(i-1)^2+3(i-1)+1

  我们把左面的矩阵从下往上推导

  明确的知道我们需要一个1 所以 矩阵最下面除了对应 1的第五个空填1 其他的都是0

  再看倒数第二行    i=i-1+1  

  第三行   i^2=(i-1)^2+2*(i-1)+1

  以此类推  就酱

posted @ 2017-07-16 12:41  Konoset  阅读(464)  评论(0编辑  收藏  举报