很多初学者在学习线性代数时,常常会对“为什么两个向量的点积(内积),可以写成一行乘以一列的矩阵乘法?”感到困惑。今天我们就把它们拆解成最基础的单个元素,来一探究竟。
假设我们有两个普通的 3 维列向量 \(\mathbf{a}\) 和 \(\mathbf{t}\),它们里面的元素分别是:
根据向量点积的代数定义,两个向量的点积就是把它们对应位置的元素相乘,然后再全部加起来。所以:
注意,点积的结果是一个纯数字(标量)。
现在,我们来看看矩阵乘法。矩阵乘法的规则是:左边矩阵的“行” 乘以 右边矩阵的“列”,对应元素相乘再相加。
如果我们要进行矩阵乘法,我们需要确保:左边矩阵的列数 = 右边矩阵的行数。
我们依然使用上面那两个列向量。但是,如果我们直接把两个列向量相乘,是不符合矩阵乘法规则的(因为 \(3 \times 1\) 的矩阵不能乘以 \(3 \times 1\) 的矩阵)。
为了能进行矩阵乘法,我们需要把左边的向量 \(\mathbf{t}\) 躺平,变成一个行向量。这在数学上叫做转置(Transpose),记作 \(\mathbf{t}^T\):
现在,我们用这个行向量(也就是一个 \(1 \times 3\) 的矩阵)去乘以列向量 \(\mathbf{a}\)(一个 \(3 \times 1\) 的矩阵):
根据矩阵乘法的“行乘列”规则,我们将它们对应的元素相乘并相加:
稍微整理一下顺序(乘法交换律):
对比一下第 1 步和第 3 步的结果,你会发现它们一模一样!
因此,我们可以得出结论:两个列向量的点积,完全等价于把其中一个向量转置成行向量后,再与另一个列向量进行矩阵乘法。
为什么要这么写呢?因为写成矩阵形式后,我们就可以利用矩阵乘法的结合律等强大工具,来推导更复杂的公式(比如投影矩阵!)。
返回投影矩阵推导