线性代数-矩阵乘法后的空间原理

前记

在学习线性代数的过程当中,发现很多教材对矩阵乘法的定义过于代数化了,只介绍了矩阵乘法的代数形式,而很少有提及矩阵乘法背后的空间意义,这也许会导致学习向量空间的过程当中,无法很好的联系矩阵乘法和向量张成的关系

矩阵乘法定义:

在不少的教材当中矩阵乘法都有一个代数定义,非常的简洁 :

------------------------矩阵A=[aij]m×n矩阵B=[bij]n×s那么对于矩阵C=AB[cij]m×s=[k=1naikbkj]m×s\begin{array}{c}矩阵A={\left[ a_{ij}\right]_{m \times n}} \\ \\矩阵B={\left[ b_{ij}\right]_{n \times s}} \\ \\ 那么对于矩阵C=AB \\\\有\left[ c_{ij}\right]_{m \times s} = \left[ \sum \limits_{k=1}^{n}a_{ik}b_{kj}\right]_{m \times s} \end{array}--------------------------

对于已经掌握一些矩阵乘法的同学,这样的定义似乎是显而易见的,但是
对于代数基础比较薄弱的同学(比如我),这样的表述似乎是非常反人类
且令人有些畏惧的,但其实换个思路理解也许就没这么抽象了

向量与矩阵的关系

根据定义我们可以知道,向量是一个有方向和大小两个特征的量,在数学上
我们定义向量为有序的一数字,什么叫有序呢?

举个例子

-----------------$\left [ 1,2,3\right ] $---------------- $
\begin{bmatrix} a_{11} \ a_{21} \ \vdots \a_{m1}\end{bmatrix}$--------------------------------

像这样的有一定顺序的,从左往右,从上往下的数字,就可以表示一个向量

那么对于矩阵Am×n=[a11a12a1na21a22a2nam1am2amn]A_{m\times n}= \begin{bmatrix} a_{11}& a_{12}& \cdots & a_{1n} \\ a_{21}& a_{22}& \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}& a_{m2}& \cdots & a_{mn} \end{bmatrix},我们可以将其看作多

多个行向量的集合Am×n=[[a11a12a1n][a21a22a2n][am1am2amn]]A_{m\times n}= \begin{bmatrix} [a_{11}& a_{12}& \cdots & a_{1n}] \\ [a_{21}& a_{22}& \cdots & a_{2n}] \\ \vdots & \vdots & \ddots & \vdots \\ [a_{m1}& a_{m2}& \cdots & a_{mn}] \end{bmatrix} 或者是多个

列向量的集合Am×n=[[a11a21am1]A_{m\times n}= [ \begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{bmatrix} [a12a22am2]\begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{m2} \end{bmatrix} $\begin{bmatrix} \cdots \ \dots \ \vdots \ \cdots \end{bmatrix} $ [a1na2namn]]\begin{bmatrix} a_{1n} \\ a_{2n} \\ \vdots \\ a_{mn} \end{bmatrix} ]

也就是说,一个矩阵所展现的并不只有数字,而蕴藏了一些空间信息,从这个角度来看,不难发现矩阵运算实际上是空间当中的向量在进行运算

矩阵乘法

矩阵乘法是一个相当前置但是非常重要的东西,能够正确理解矩阵乘法对于后续的线性变换学习是相当重要的,矩阵乘法本质上就是空间的变换,这里需要补充一个比较概念叫线性组合

向量v=a1V1+a2V2++anVna_{1}V_{1}+a_{2}V_{2}+\cdots+a_{n}V_{n},则v是{V1V2VnV_{1},V_{2}\cdots V_{n}}的一个线性组合 而{a1,a2ana_{1},a_{2}\cdots a_{n}}是这个线性组合当中的权重

对于运算
An×nA_{n\times n}= Bn×nB_{n\times n} x Cn×nC_{n\times n}

An×n=[b11b12b1nb21b22b2nbn1bn2bnn]A_{n\times n}= \begin{bmatrix} b_{11}& b_{12}& \cdots & b_{1n} \\ b_{21}& b_{22}& \cdots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{n1}& b_{n2}& \cdots & b_{nn} \end{bmatrix} [c11c12c1nc21c22c2ncn1cn2cnn]\begin{bmatrix} c_{11}& c_{12}& \cdots & c_{1n} \\ c_{21}& c_{22}& \cdots & c_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ c_{n1}& c_{n2}& \cdots & c_{nn} \end{bmatrix}
其中A=[A1,A2A3AnA_{1}, A_{2},A_{3} \cdots A_{n}]
(ANA_{N}=[a1na2naNn]\begin{bmatrix}a_{1n} \\a_{2n} \\\vdots\\a_{Nn} \end{bmatrix})
那么对于ANA_{N}其实是Bn×nB_{n\times n}中每一列的线性组合,而权重就是Cn×n的第NC_{n\times n}的第N列,举个例子:

A1=c11A_{1}=c_{1 1} [b11b21bn1]+c21[b12b22bn2]++cn1[b1nb2nbnn]=[b11b12b1nb21b22b2nbn1bn2bnn][c1nc2ncNn]\begin{bmatrix}b_{11}\\b_{21}\\\vdots\\b_{n1}\end{bmatrix}+c_{21}\begin{bmatrix}b_{12}\\b_{22} \\\vdots \\b_{n2} \end{bmatrix}+\cdots+c_{n1}\begin{bmatrix}b_{1n}\\ b_{2n}\\\vdots\\ b_{nn} \end{bmatrix} = \begin{bmatrix}b_{11}& b_{12}&\cdots & b_{1n}\\b_{21}& b_{22}& \cdots & b_{2n} \\\vdots & \vdots & \ddots &\vdots\\ b_{n1}& b_{n2}& \cdots & b_{nn}\end{bmatrix}\begin{bmatrix} c_{1n}\\c_{2n}\\\vdots\\c_{Nn}\end{bmatrix}

总结

在两个矩阵相乘的过程当中,新的矩阵中的每一列都是乘法左边的矩阵的每一列线性组合而成,新矩阵当中的第N列,根据右边矩阵的第N列分配权重,由左边矩阵的每一列线性组合而成,这也是为什么新矩阵的行数与左边矩阵的行数一样,列数与右边矩阵的列数一样

tips

本文仅介绍了矩阵乘法的理解思路,更具体的原理涉及到空间的线性变换,至于为什么会这么看矩阵乘法,等我哪天写一下线性变换更细致的写一下

彩蛋

事实上矩阵乘法当中每一列也有一样的原理,可以思考一下(如果你有作者的联系方式,可以联系下他讲一下你的思路,以及读完本文的想法,帮助作者更好的写文章())