两个三阶矩阵相乘


矩阵向量乘法

我们之前介绍了矩阵的加法和矩阵与标量的乘法。除此之外,矩阵还可以与矩阵或向量相乘。本节我们讨论一种特殊情况:矩阵与 向量 的乘法。

如下图所示,一个 3×2 的矩阵与一个二维列向量相乘,结果是什么?

两个三阶矩阵相乘

其计算规则如下图所示:

两个三阶矩阵相乘

从上图可以看出,矩阵与向量的乘法规则很独特,一个矩阵与一个向量相乘得到一个新的列向量。列向量的维度等于矩阵的行数。等式左边的矩阵和向量的形状也值得注意,矩阵的列数必须等于向量的维度,才能进行矩阵与向量的乘法。在上面的例子中,一个 3×2 的矩阵与一个 2×1 的向量相乘,得到一个 3×1 的向量。

我们将上述特例抽象成更通用的形式,如下图所示:

两个三阶矩阵相乘

一个 m×n 的矩阵乘一个 n×1 的向量,需要注意的是,矩阵的列数必须等于向量的行数才能相乘,得到的结果是一个 m×1 的向量。

值得注意的是,矩阵和向量的乘法顺序非常重要。列向量和矩阵相乘时,矩阵必须在前面,列向量必须在后面。例如:

两个三阶矩阵相乘

那么,为什么我们要引入矩阵和向量的乘法呢?

我们仍然以卖房子的例子为例。假设我有四套房子,每个房子的面积不同,并且我已经确定了房屋面积和房屋售价之间的线性模型。

如下图所示:

两个三阶矩阵相乘

上图中,如果将左边四套房子的面积代入右边的式子中,就可以分别得到四套房子的售价。如果我们使用矩阵和向量的乘法来表示上述问题,可以得到一个非常简洁的表达式。如下图所示:

两个三阶矩阵相乘

我们把模型中的两个参数提取出来,组成一个列向量。由于参数 -40 对应于 1,而 0.25 对应于 x,因此得到一个 4×2 的矩阵,其中第 1 列都是 1。我们将得到上半部分所示的矩阵与向量相乘的表达式。利用之前介绍的矩阵与向量乘法规则,我们可以用一个表达式表示四套房子的售价,简洁明了。

有的同学可能会觉得这种写法过于繁琐。需要注意的是,我们现在使用计算机执行基本运算。如果使用代码编写这样的过程会更加容易。只需一行代码就可以完成这项任务,而且房子的数量不会影响程序的结构,非常方便。如果没有这样的规则,我们可能需要在代码中使用 for 循环来实现它,这会更加复杂。

在下一讲中,我们将介绍更通用的矩阵与矩阵的乘法。