线性代数 · 矩阵乘法

矩阵乘法

两个矩阵的乘积AB,是“先做B、再做A”这个复合变换的矩阵:对每个向量x都有(AB)x = A(Bx)。AB的第j列就是A作用在B的第j列上,也就是用B这一列的两个数作系数,组合A的两列;熟悉的“行乘列”只是这个组合的坐标写法。第二个变换作用在第一个变换的结果上,所以顺序要紧:一般AB ≠ BA。

矩阵乘法与本页画面

2 × 2矩阵是平面上的一个线性变换,它的两列就是ı^=(1,0)\hat\imath = (1, 0)和ȷ^=(0,1)\hat\jmath = (0, 1)被送到的位置。乘积ABAB是接连做两个变换的矩阵:先做BB,再做AA,对每个向量xx都有(AB)x=A(Bx)(AB)x = A(Bx)。挨着xx的矩阵先作用,所以乘积要从右往左读。

本页默认的状态:先B,再A
AB=(1102)(2−111)=(3022)AB = \begin{pmatrix} 1 & 1 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 2 & -1 \\ 1 & 1 \end{pmatrix} = \begin{pmatrix} 3 & 0 \\ 2 & 2 \end{pmatrix}

顺序为ABAB时,左图在标准网格上画BB:ı^\hat\imath和ȷ^\hat\jmath是淡淡的虚线箭头,它们的像b1b_1、b2b_2就是BB的两列,画成蓝色。右图画AA:它把标准网格变成的网格,它的两列a1a_1、a2a_2是墨色,乘积的两列Ab1Ab_1、Ab2Ab_2是蓝色。旗子在一个图形上演示同样的两步。两张图各有各的比例,因为乘积可能比两个因子大得多。

ABAB的一列是怎么来的?BB把ı^\hat\imath送到b1=(b11,b21)b_1 = (b_{11}, b_{21}),也就是b11b_{11}步ı^\hat\imath加b21b_{21}步ȷ^\hat\jmath。AA是线性的,所以它把这一点送到自己两列上同样的步数:b11b_{11}个a1a_1接上b21b_{21}个a2a_2。AA只读b1b_1的两个数,不管b1b_1是怎么来的。右图把选中的那一列乘积画成这个配方:沿a1a_1、a2a_2的两段细线,终点就是蓝色箭头。在左图拖b1b_1,这两段跟着它的数伸缩。

AB的每一列,是A作用在B的同一列上
(AB)j=A bj=b1j a1+b2j a2Ab1=2(10)+1(12)=(32)\begin{gathered} (AB)_j = A\,b_j = b_{1j}\,a_1 + b_{2j}\,a_2 \\[0.6ex] Ab_1 = 2\begin{pmatrix} 1 \\ 0 \end{pmatrix} + 1\begin{pmatrix} 1 \\ 2 \end{pmatrix} = \begin{pmatrix} 3 \\ 2 \end{pmatrix} \end{gathered}

课本里的“行乘列”,就是这个配方的坐标写法。AbjAb_j的横坐标,是两段细线在横向上带正负号的位移之和,a11b1j+a12b2ja_{11}b_{1j} + a_{12}b_{2j},也就是AA的第1行对着BB的第jj列逐项相乘再相加。纵坐标用第2行,算法一样。“行乘列”把这些部分沿坐标轴画出来,每一段都标着它的乘积。

行乘列:一般的公式,以及默认状态的第一列
(AB)ij=ai1b1j+ai2b2j(AB)1=(1⋅2+1⋅1, 0⋅2+2⋅1)=(3, 2)\begin{gathered} (AB)_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} \\[0.6ex] (AB)_1 = (1\cdot 2 + 1\cdot 1,\ 0\cdot 2 + 2\cdot 1) = (3,\ 2) \end{gathered}

顺序要紧,因为第二个变换作用在第一个变换的结果上。先转四分之一圈再剪切:ı^\hat\imath先到(0,1)(0, 1),再到(1,1)(1, 1)。先剪切再转:ı^\hat\imath先留在(1,0)(1, 0),再到(0,1)(0, 1)。另一种顺序也复合过之后,它的结果会以蓝色虚线箭头画在右图上,直到改动A或B。也有可以交换的矩阵:平面上绕原点的两个转动,不管先后,转角都是相加。

面积倍数相乘。BB把单位正方形变成面积为∣det⁡B∣|\det B|的平行四边形,AA再把每块面积乘上∣det⁡A∣|\det A|。带上符号,就是det⁡(AB)=det⁡A⋅det⁡B\det(AB) = \det A\cdot\det B;数的乘法可以交换,所以即使AB≠BAAB \ne BA,也有det⁡(AB)=det⁡(BA)\det(AB) = \det(BA)。默认状态下det⁡A=2\det A = 2、det⁡B=3\det B = 3,两种乘积的行列式都是6。

有向面积倍数相乘,顺序不影响
det⁡(AB)=det⁡A⋅det⁡B=det⁡(BA)\det(AB) = \det A \cdot \det B = \det(BA)

值得注意

  • 顺序为ABAB时,“复合”让ı^\hat\imath沿直线走到b1b_1。这条路只是表示ı^\hat\imath最后落在哪里,不是BB移动平面的方式。
  • 有向面积倍数是负数,不等于面积是负的。它说明变换把平面翻了过来,面积乘的是它的绝对值。

操作

  • 顺序为ABAB时,指针指着左图的pp,右图就用青色小圈标出ApAp。

相关概念

延伸阅读:维基百科:矩阵乘法;OpenStax:College Algebra 2e, 7.5 Matrices and Matrix Operations(英文)。