矩阵,一般来说就是实数或复数所组成的矩形方阵,其在信息学中有着举足轻重的地位。简单来说,矩阵的定义就是
A = ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ a 11 a 21 ⋮ a m 1 a 12 a 22 ⋮ a m 2 ⋯ ⋯ ⋱ ⋯ a 1 n a 2 n ⋮ a m n ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟
实际上,就如我在《高斯消元法》中的表述,矩阵的本质就像方程一样。矩阵的本质是什么?是线性变换!那么,什么是线性变换呢?
举个例子,比如说我们现在有一些变量,它们组成了一个向量
X = ( x 1 x 2 ⋯ x n )
,然后我们又有相同个数的一些变量,它们又组成了另一个向量
Y = ( y 1 y 2 ⋯ y n )
,同时,这两个向量间满足一些条件,比如
⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ y 1 = a 11 x 1 + a 12 x 2 + . . . . . . + a 1 m x m ⋮ y n = a n 1 x 1 + a n 2 x 2 + . . . . . . + a n m x m
而这,就称为从
X
到
Y
的线性变换。考虑这个线性变换中的
{ a n m }
,将其称为系数矩阵
A
,于是这个矩阵
A
正对应这个线性变换。
那么,矩阵的本质,也就正是线性变换!像矩阵乘法,看上去很复杂,实则不然。考虑两个矩阵
A = ( 1 1 1 0 )
和
B = ( 0 1 1 1 )
,其的乘法的结果
A B
正是相当于一个先做
A
再做
B
的变换。也就是说,我们如果换一种表达方式,将
A
变为
{ y 1 = x 1 + x 2 y 2 = x 2
以及
B
变成
{ z 1 = y 2 z 2 = y 1 + y 2
那么将
A
代入
B
,就得到
A B
为
{ z 1 = x 2 z 2 = x 1 + 2 x 2
这也反映了矩阵的本质,即线性变换。
因此,像斐波那契数列第k项的快速方法这样的东西也就不足为奇了。对于斐波那契数列,我们有
{ y 1 = x 2 y 2 = x 1 + x 2
于是可以构造到矩阵
F i b o n a c c i M a t r i x = ( 0 1 1 1 )
,再构造一个列向量
( 1 1 ) T
(注:在这里的
T
是指转置,也就是将矩阵“右转90度”),那么斐波那契数列的第
k + 1
项和第
k + 2
项就可以被公式
F i b o n a c c i M a t r i x n × ( 1 1 ) T
求出了。