線性代數·矩陣乘法

矩陣乘法

兩個矩陣的乘積AB,是「先B、再A」這個合成變換的矩陣:對每個向量x都有(AB)x = A(Bx)。它的第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。它只讀取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的x座標是兩段向量水平分量之和a11b1j+a12b2ja_{11}b_{1j} + a_{12}b_{2j},也就是AA的第一橫列乘以BB的第jj直行。y座標以同樣方式由第二橫列求得。「橫列×直行」會沿座標軸畫出這些分量,並各自標上對應的乘積。

橫列×直行:一般公式與預設矩陣的第一直行
(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。

相關概念

延伸閱讀: 維基百科: Matrix multiplication (英文); OpenStax, College Algebra 2e, 7.5 Matrices and Matrix Operations (英文).