猴子都看不懂的矩阵乘法——由向量乘矩阵到矩阵乘矩阵

矩阵乘法

仅为初学者的理解,不喜勿喷

矩阵,即为如下形式的结构:

0 1 1 1 1 0 1 0 1 \begin{matrix} 0&1&1\\ 1&1&0\\ 1&0&1\\ \end{matrix} 011110101

既然你准备仔细阅读这篇文章,那么相信你应对矩阵(matrices)有一定的了解,这里就不再赘述,直接进入正题。

首先,要明确的是,矩阵乘法不同于数乘,用一个比喻应该把它当成普通式子计算的外语来学,不带着对普通式子的想法来学线性代数,或许会轻松很多。

1.向量乘法

矩阵乘法的前置内容应当懂得向量乘法,这里简单回顾一下。

a ⃗ \vec{a} a = (x , y , z) , b ⃗ \vec{b} b = ( i , j , k )

a ⃗ ⋅ b ⃗ = \vec{a} \cdot \vec{b}= a b =xi + yj + zk

好了,敲黑板,上面的算法使我们大家都知道的,但是我们现在引入一个新的概念:线性组合,下面便是向量a向量b的线性组合的例子。

m a ⃗ + n b ⃗ m\vec{a} + n\vec{b} ma +nb

此时的m与n取任意值都能得到一个向量a向量b的线性组合。

线性组合的概念后面会经常提到,请把它当成如实数一样的基本名词放在心上。


2.矩阵乘向量

例:

[ 2 a + 3 b + 4 c 2 d + 3 e + 4 f 2 g + 3 h + 4 i ] = [ a b c d e f g h i ] [ 2 3 4 ] (1) \left[ \begin{matrix} 2a+3b+4c \\ 2d+3e+4f\\ 2g+3h+4i \end{matrix} \right] = \left[ \begin{matrix} a & b & c\\ d & e & f\\ g & h & i \end{matrix} \right] \left[ \begin{matrix} 2 \\ 3 \\ 4 \end{matrix} \right] \tag{1} 2a+3b+4c2d+3e+4f2g+3h+4i = adgbehcfi 234 (1)

ok,这里是第一个关于矩阵乘法反常识或者说与普通乘法不一样的东西,那就是乘数在左还是在右有区别。

上面这个例子就是向量右乘矩阵(向量在矩阵右侧)。

如你所见,右乘和是以列(column)为计算的中心,而这点正如我所比喻的外语一样,需要你把这个语法硬记下来。下面解释上方的式子。

在这里插入图片描述

如图,向量乘矩阵可以拆分成系数乘列向量(因为是右乘)。

这种写法,结合到上面所提的线性组合,我们可以说列向量乘矩阵是矩阵每个列的一种线性组合。好生体会一下这种说法。


同理,下面是一个左乘(向量在矩阵左侧)的例子。

假设我们有一个1x3的行向量 u ⃗ = ( 1 2 3 ) \vec{u} = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} u =(123) 和一个3x3的矩阵 A = ( 4 5 6 7 8 9 10 11 12 ) A = \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} A= 471058116912 。注意,行向量 u ⃗ \vec{u} u 的维度是1x3,而矩阵 A A A的维度是3x3,因此它们的乘积将是一个1x3的行向量。

进行矩阵乘法运算:

u ⃗ A = ( 1 2 3 ) ( 4 5 6 7 8 9 10 11 12 ) \vec{u}A = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} u A=(123) 471058116912

计算过程如下:

u ⃗ A = ( 1 ⋅ 4 + 2 ⋅ 7 + 3 ⋅ 10 , 1 ⋅ 5 + 2 ⋅ 8 + 3 ⋅ 11 , 1 ⋅ 6 + 2 ⋅ 9 + 3 ⋅ 12 ) \vec{u}A = \begin{pmatrix} 1 \cdot 4 + 2 \cdot 7 + 3 \cdot 10, & 1 \cdot 5 + 2 \cdot 8 + 3 \cdot 11, & 1 \cdot 6 + 2 \cdot 9 + 3 \cdot 12 \end{pmatrix} u A=(14+27+310,15+28+311,16+29+312)
= ( 4 + 14 + 30 , 5 + 16 + 33 , 6 + 18 + 36 ) = \begin{pmatrix} 4 + 14 + 30, & 5 + 16 + 33, & 6 + 18 + 36 \end{pmatrix} =(4+14+30,5+16+33,6+18+36)
= ( 48 , 54 , 60 ) = \begin{pmatrix} 48, & 54, & 60 \end{pmatrix} =(48,54,60)

第一个例子以字母与数字为例,第二个例子以纯数字为例,细品这两个例子你大概会微微抓住一点其中的要义。
但是不用去深究其中原理,现在我们就把它当成一个外语语法,基本没有什么为什么,让我们接着往下看更根本的矩阵乘法。


矩阵乘法

如向量乘矩阵一般,矩阵乘法分为左乘与右乘。

这里先看右乘:

在这里插入图片描述
这是一张及其抽象的图,美术水平就这样,大家先见谅

我看到的书或者资料上总是先从方阵开始举例子,但是这给当时第一次接触矩阵的我深深的疑惑,行和列不等该怎么办?

因此我这里直接从普遍情况说起。

如图,有一个 m 乘 n 的矩阵与 n 乘 p的矩阵相乘。

n被高亮的原因是当左边矩阵的列数不等于右边矩阵的行数时,两矩阵不能相乘。

这个条件由下面的矩阵乘法计算方法导出。


同样的,我们先从右乘讲起。

右乘本质上是计算一种左边矩阵A各列的线性组合。 这篇文章写了这么多字,全都是为了让你明白这句话的含义,或者说引导你明白这句话。

如图,结果矩阵的蓝色列(第一列)等于矩阵A乘矩阵2的第一列(绿色列向量)。这样横着看或许有点反常识(我觉得线性代数都挺反常识的 ),下面这幅图倒过来你们应该就能明白算法了。
在这里插入图片描述
分解到这步的计算方法就和上面讲的矩阵乘向量一模一样了。

如果你还没懂,可以自己在草稿本上编一组数据,模拟几遍这个过程,你对矩阵乘法的了解就越来越深刻了。

如果你认为自己已经明白了矩阵乘法,那么不妨将我没列出来的左乘用同样的道理写出来。

总结

矩阵乘法的其中两种算法为左乘和右乘,下面的笔记也给出了另外几种求法,有兴趣的小伙伴可以自己推一推

请添加图片描述

字写得难看,不喜勿喷


以上内容全部完成后,恭喜你,基本掌握了矩阵乘法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值