一行与一列,相遇成积
从原点向右走 1、再向上走 2,就到达坐标为 的点。原点就是我们计算位置时的起点。用一个箭头把起点和终点连起来。现在按同一条规则移动平面上的每一个点,这个箭头会指向哪里?一小张数表又怎样告诉我们答案?
在矩阵与线性变换中,我们用两列分别记录 和 这两个箭头的新位置,得到一张叫作矩阵的数表。一个向量由这两个基本方向组合而成,所以两列的变化也决定了它的新位置。这里的每一次乘法、每一次加法,都要和这个组合过程对应起来。两个矩阵相乘时,我们仍然要回答同一个问题:每个基本方向最终去了哪里?
01矩阵在移动什么?
箭头 变成了第一列 ,箭头 变成了第二列 。左边的 叫单位矩阵:它的两列让这两个箭头留在原处。
这里的向量告诉我们横向和竖直方向各移动多少,用从原点出发的箭头表示。从原点出发, 会到达坐标为 的点。其中 是横向的移动量, 是竖直的移动量。正数向右或向上,负数向左或向下。我们可以分两部分搭出它:,,相加就是 。现在选用这样一条规则:保留这两个倍数,把两个基本箭头换成它们的新位置,再组合起来。这样的规则叫线性变换。矩阵的两列就记录了这些新位置。倍数为负时,箭头反向;倍数是分数时,就取相应比例的长度。
取 、,这份配方给出 :第一列取 1 份,第二列取 2 份。
先分别乘倍数:,。再相加:。
02为什么取列,不取行?
给四个数分别命名,并把输入竖着写: 粗体 表示整个向量,普通的 、 表示它的两个分量。竖着写成一列,就叫列向量。把这一列横着写成一行,叫作转置,记作 。 为什么取 的列?因为我们约定把两个基本箭头的新位置放在两列里,同时把输入写成列向量。因此,保留原来的两个倍数,就得到:
每一列乘上相应倍数,得到两个向量。把它们相同位置的分量相加,就是输出向量。我们把这两步分别写出来。
每个倍数都要乘到这一列的两个分量上。
对应位置的分量分别相加:第一个分量是 ,第二个分量是 ,所以
看第一个输出 :它把 与 第一行的 配对。第二个输出 ,则把同样的 与第二行的 配对。把相同位置的数相乘,再把乘积相加,就叫点积。例如,。若第一组数记作 ,第二组记作 ,就写成 。所以,点积是计算刚才那份列组合的另一种办法。点积也有几何解释,这里只需要它的计算方法。
尺寸必须对得上: 有两列, 就必须有两个分量。 矩阵乘三分量向量没有定义;没有第三列可取。
03把 x 抬到 A 上方
我们继续计算刚才的 。输出从上到下的两个分量,分别记作 、。点击播放,也可以用前后箭头或步骤滑条逐步看。青色数字来自输入向量,标着 ;其余数字来自 。原来的列向量先抬起,展开成一行,放到 上方。它的每个分量与高亮行的一个数配对,中间出现乘号。两个数靠拢,变成乘积;两个乘积再靠拢,变成总和,最后移入输出。处理下一行前,输入向量回来,方便再次使用。A 的每一行都留在原位,直到这一行的数字合并成乘积;完成两个输出后,再恢复原矩阵。暂停会停住当前动作,前后箭头和滑条可以查看每一步完成时的画面。这里的移动和转置只是为了看清计算;原来的乘法仍然是矩阵乘列向量。
第一行算出 ,第二行算出 。把两个和从上到下放好,就得到 。
04左边的行向量:xA
如果把向量放在左边呢?对这里的 矩阵,左边若仍是 的列向量,尺寸就对不上:它只有一列,不能与 的两行配对。因此,这一节把同样的两个数写成一行,并让 表示这个行向量。逐个取出它的分量。第一个分量乘 第一行,第二个乘第二行,再把两行相加:第一个输出把 与第一列 配对;第二个把它们与第二列 配对,所以仍然可以用点积计算。我们相加的是两条同样长的行,因此输出也是一行。把输出行记作 。下标从左到右数,分别表示第一个和第二个分量。
动画先把输入行向量竖起来,移到 当前列左边,让每一对数左右相遇。 的各列留在原位,直到数字合并成乘积;两个乘积再上下合并,总和向下移入输出行。处理下一列前,输入分量回来;全部完成后,再恢复原矩阵和行向量。临时竖起来只是为了看清配对,原乘法中的输入仍是行向量。原来的乘法仍然是行向量乘矩阵。两次求和分别是 、,所以输出行是 。到这里,左边是矩阵时,每一行给出一个和;右边是矩阵时,每一列给出一个和。接下来,把这两种读法合起来,就能计算两个矩阵相乘。
05两个矩阵相乘
设 有 行、 列, 有 行、 列,把乘积记作 。先把 第一行看成行向量。按照刚才的方法,它乘 ,会对 的每一列给出一个输出。这 个数,组成 第一行。再对 的每一行重复,因此 有 行、 列。如果只想找其中一个数,就选定它的行号 和列号 ,记作 。 第 行决定答案在哪一行; 第 列决定它在这一行的哪个位置。把对应的数相乘,再相加:
大符号 表示把这些项全部相加。 从 数到 ,依次取出每一个配对位置。展开写,就是:若 ,就只有第一个乘积。例如, 用 第 2 行和 第 1 列。第 2 行确定输出的行,第 1 列确定这一行的第一个数。也可以按列看。把 第 列当作一个列向量,左边乘 ,就会对 的每一行给出一个输出,恰好组成 第 列。逐列重复,就得到同一个矩阵。为什么中间的尺寸必须相同? 的每一列有 个分量,分别作为 的 列的倍数。数量不同,就至少有一个数找不到配对。按行做点积时,缺少的也是这个配对。
中间的两个数量必须相同,外边的两个数量给出输出的形状。例如, 矩阵乘 矩阵,得到 矩阵。即使两种顺序都有定义,结果也可能不同。这里 ,而 。只要有一个位置不同,就说明 。因此,矩阵乘法一般不满足交换律。
