前记
在学习线性代数的过程当中,发现很多教材对矩阵乘法的定义过于代数化了,只介绍了矩阵乘法的代数形式,而很少有提及矩阵乘法背后的空间意义,这也许会导致学习向量空间的过程当中,无法很好的联系矩阵乘法和向量张成的关系
矩阵乘法定义:
在不少的教材当中矩阵乘法都有一个代数定义,非常的简洁 :
------------------------矩阵A=[aij]m×n矩阵B=[bij]n×s那么对于矩阵C=AB有[cij]m×s=[k=1∑naikbkj]m×s--------------------------
对于已经掌握一些矩阵乘法的同学,这样的定义似乎是显而易见的,但是
对于代数基础比较薄弱的同学(比如我),这样的表述似乎是非常反人类
且令人有些畏惧的,但其实换个思路理解也许就没这么抽象了
向量与矩阵的关系
根据定义我们可以知道,向量是一个有方向和大小两个特征的量,在数学上
我们定义向量为有序的一数字,什么叫有序呢?
举个例子
-----------------$\left [ 1,2,3\right ] $---------------- $
\begin{bmatrix} a_{11} \ a_{21} \ \vdots \a_{m1}\end{bmatrix}$--------------------------------
像这样的有一定顺序的,从左往右,从上往下的数字,就可以表示一个向量
那么对于矩阵Am×n=⎣⎢⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎥⎥⎥⎥⎤,我们可以将其看作多
多个行向量的集合Am×n=⎣⎢⎢⎢⎢⎡[a11[a21⋮[am1a12a22⋮am2⋯⋯⋱⋯a1n]a2n]⋮amn]⎦⎥⎥⎥⎥⎤或者是多个
列向量的集合Am×n=[⎣⎢⎢⎢⎢⎡a11a21⋮am1⎦⎥⎥⎥⎥⎤ ⎣⎢⎢⎢⎢⎡a12a22⋮am2⎦⎥⎥⎥⎥⎤ $\begin{bmatrix} \cdots \ \dots \ \vdots \ \cdots \end{bmatrix} $ ⎣⎢⎢⎢⎢⎡a1na2n⋮amn⎦⎥⎥⎥⎥⎤]
也就是说,一个矩阵所展现的并不只有数字,而蕴藏了一些空间信息,从这个角度来看,不难发现矩阵运算实际上是空间当中的向量在进行运算
矩阵乘法
矩阵乘法是一个相当前置但是非常重要的东西,能够正确理解矩阵乘法对于后续的线性变换学习是相当重要的,矩阵乘法本质上就是空间的变换,这里需要补充一个比较概念叫线性组合
向量v=a1V1+a2V2+⋯+anVn,则v是{V1,V2⋯Vn}的一个线性组合 而{a1,a2⋯an}是这个线性组合当中的权重
对于运算
An×n= Bn×n x Cn×n
An×n=⎣⎢⎢⎢⎢⎡b11b21⋮bn1b12b22⋮bn2⋯⋯⋱⋯b1nb2n⋮bnn⎦⎥⎥⎥⎥⎤ ⎣⎢⎢⎢⎢⎡c11c21⋮cn1c12c22⋮cn2⋯⋯⋱⋯c1nc2n⋮cnn⎦⎥⎥⎥⎥⎤
其中A=[A1,A2,A3⋯An]
(AN=⎣⎢⎢⎢⎢⎡a1na2n⋮aNn⎦⎥⎥⎥⎥⎤)
那么对于AN其实是Bn×n中每一列的线性组合,而权重就是Cn×n的第N列,举个例子:
A1=c11 ⎣⎢⎢⎢⎢⎡b11b21⋮bn1⎦⎥⎥⎥⎥⎤+c21⎣⎢⎢⎢⎢⎡b12b22⋮bn2⎦⎥⎥⎥⎥⎤+⋯+cn1⎣⎢⎢⎢⎢⎡b1nb2n⋮bnn⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡b11b21⋮bn1b12b22⋮bn2⋯⋯⋱⋯b1nb2n⋮bnn⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡c1nc2n⋮cNn⎦⎥⎥⎥⎥⎤
总结
在两个矩阵相乘的过程当中,新的矩阵中的每一列都是乘法左边的矩阵的每一列线性组合而成,新矩阵当中的第N列,根据右边矩阵的第N列分配权重,由左边矩阵的每一列线性组合而成,这也是为什么新矩阵的行数与左边矩阵的行数一样,列数与右边矩阵的列数一样
tips
本文仅介绍了矩阵乘法的理解思路,更具体的原理涉及到空间的线性变换,至于为什么会这么看矩阵乘法,等我哪天写一下线性变换更细致的写一下
彩蛋
事实上矩阵乘法当中每一列也有一样的原理,可以思考一下(如果你有作者的联系方式,可以联系下他讲一下你的思路,以及读完本文的想法,帮助作者更好的写文章())