本节目标:按行乘列算出矩阵乘积,说清乘法为什么这样定义、以及哪几条运算律在矩阵里不再成立。
方程组写成 A x = b Ax=b A x = b
上一课把矩阵的加法与数乘定完了,也立起了一个式子:线性方程组的常数项列向量恰好是各系数列向量的线性组合时,方程组才有解。这一课补上最后一块拼图——乘法。有了它,一整页的方程组可以压成四个字符。
先看一个方程含多个未知量的情形,如 2 x 1 + x 2 + 3 x 3 = 5 2x_1+x_2+3x_3=5 2 x 1 + x 2 + 3 x 3 = 5 。把它和一元一次方程 a x = b ax=b a x = b 摆在一起对比:右边都是常数,左边都是「系数乘未知量再相加」。要让左边也长成「一个对象乘另一个对象」的样子,就得先回答一个技术问题:一行数怎么乘一列数。
教材的答案是把乘积规定为「对应位置相乘再相加」:令
A = [ 2 1 3 ] , x = [ x 1 x 2 x 3 ] , A x = [ 2 1 3 ] [ x 1 x 2 x 3 ] = 2 x 1 + x 2 + 3 x 3 A=\begin{bmatrix}2 & 1 & 3\end{bmatrix},\qquad
x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix},\qquad
Ax=\begin{bmatrix}2 & 1 & 3\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=2x_1+x_2+3x_3
A = [ 2 1 3 ] , x = ⎣ ⎡ x 1 x 2 x 3 ⎦ ⎤ , A x = [ 2 1 3 ] ⎣ ⎡ x 1 x 2 x 3 ⎦ ⎤ = 2 x 1 + x 2 + 3 x 3
这样 2 x 1 + x 2 + 3 x 3 = 5 2x_1+x_2+3x_3=5 2 x 1 + x 2 + 3 x 3 = 5 就写成 A x = 5 Ax=5 A x = 5 ,与 a x = b ax=b a x = b 的形状一致。行向量与列向量按这种方式相乘,结果是一个数,称为数量积(内积)。
把这一步推广到 m m m 个方程。定义 m × n m\times n m × n 矩阵 A = ( a i j ) A=(a_{ij}) A = ( a i j ) 与 n n n 维列向量 x x x 的乘积 A x Ax A x 为一个 m m m 维列向量,它的第 i i i 个分量等于 A A A 的第 i i i 个行向量与 x x x 的数量积:
A x = [ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 n x n a 2 1 x 1 + a 2 2 x 2 + ⋯ + a 2 n x n ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n ] Ax=
\begin{bmatrix}
a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n\\
a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n\\
\vdots\\
a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n
\end{bmatrix}
A x = ⎣ ⎢ ⎢ ⎡ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 n x n a 2 1 x 1 + a 2 2 x 2 + ⋯ + a 2 n x n ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n ⎦ ⎥ ⎥ ⎤
于是线性方程组(2.1.1)就成了一行矩阵方程
A x = b Ax=b
A x = b
把 A A A 按列拆开、记第 j j j 列为 A j A_j A j ,A x Ax A x 还有另一种读法,这一读法上一课已经用过:
A x = x 1 A 1 + x 2 A 2 + ⋯ + x n A n Ax=x_1A_1+x_2A_2+\cdots+x_nA_n
A x = x 1 A 1 + x 2 A 2 + ⋯ + x n A n
左端是矩阵乘列向量,右端是 A A A 的各列向量的一个线性组合,组合的系数正是未知量。两种读法算的是同一件事,第一种适合手算,第二种把「方程组有解」翻译成「b b b 能由系数列向量线性表出」,第 4 章要用的就是后一种。
A A A 能与 x x x 相乘的条件是 A A A 的列数等于 x x x 的行数,乘积 A x Ax A x 是 m m m 维列向量——行数跟着左矩阵走。
行乘列:一个元素怎么算
第二个因子从一列推广到多列,就得到一般的矩阵乘法:若 A A A 与 B B B 的每个列向量都能相乘,则顺次以这些乘积为列的矩阵称为 A A A 与 B B B 的乘积,记为 A B AB A B 。写成元素层面的规则:
A B AB A B 有意义的条件是 A A A 的列数等于 B B B 的行数 ;
若 A A A 是 m × k m\times k m × k 矩阵、B B B 是 k × n k\times n k × n 矩阵,则 D = A B D=AB D = A B 是 m × n m\times n m × n 矩阵——行数取自左矩阵,列数取自右矩阵 ;
D D D 的第 i i i 行第 j j j 列元素等于 A A A 的第 i i i 个行向量与 B B B 的第 j j j 个列向量的对应分量乘积之和:
d i j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i k b k j d_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots+a_{ik}b_{kj}
d i j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i k b k j
这条规则一次只算出一个数:左矩阵取第 i i i 行、右矩阵取第 j j j 列,算出的数就填在乘积的第 i i i 行第 j j j 列。位置由「取的是哪一行、哪一列」定,不必另外记口诀。
(本节配图:乘积中的一个元素由左矩阵一行与右矩阵一列确定)
算例:设
A = [ 1 0 2 − 1 3 0 ] , B = [ 1 2 0 1 3 1 ] A=\begin{bmatrix}1 & 0 & 2\\-1 & 3 & 0\end{bmatrix},\qquad
B=\begin{bmatrix}1 & 2\\0 & 1\\3 & 1\end{bmatrix}
A = [ 1 − 1 0 3 2 0 ] , B = ⎣ ⎡ 1 0 3 2 1 1 ⎦ ⎤
A A A 是 2 × 3 2\times 3 2 × 3 矩阵、B B B 是 3 × 2 3\times 2 3 × 2 矩阵,A A A 的列数 3 3 3 等于 B B B 的行数 3 3 3 ,乘积有意义,且 A B AB A B 是 2 × 2 2\times 2 2 × 2 矩阵。四个元素逐个算:
A B = [ 1 ⋅ 1 + 0 ⋅ 0 + 2 ⋅ 3 1 ⋅ 2 + 0 ⋅ 1 + 2 ⋅ 1 ( − 1 ) ⋅ 1 + 3 ⋅ 0 + 0 ⋅ 3 ( − 1 ) ⋅ 2 + 3 ⋅ 1 + 0 ⋅ 1 ] = [ 7 4 − 1 1 ] AB=
\begin{bmatrix}
1\cdot 1+0\cdot 0+2\cdot 3 & 1\cdot 2+0\cdot 1+2\cdot 1\\
(-1)\cdot 1+3\cdot 0+0\cdot 3 & (-1)\cdot 2+3\cdot 1+0\cdot 1
\end{bmatrix}
=\begin{bmatrix}7 & 4\\-1 & 1\end{bmatrix}
A B = [ 1 ⋅ 1 + 0 ⋅ 0 + 2 ⋅ 3 ( − 1 ) ⋅ 1 + 3 ⋅ 0 + 0 ⋅ 3 1 ⋅ 2 + 0 ⋅ 1 + 2 ⋅ 1 ( − 1 ) ⋅ 2 + 3 ⋅ 1 + 0 ⋅ 1 ] = [ 7 − 1 4 1 ]
对照行乘列的规则看这一步:7 7 7 是第一行乘第一列,4 4 4 是第一行乘第二列,− 1 -1 − 1 是第二行乘第一列,1 1 1 是第二行乘第二列。
若把 B B B 的两列看成 b 1 , b 2 b_1,b_2 b 1 , b 2 ,A B AB A B 的两列正好是 A b 1 Ab_1 A b 1 与 A b 2 Ab_2 A b 2 :
A b 1 = [ 1 0 2 − 1 3 0 ] [ 1 0 3 ] = [ 7 − 1 ] , A b 2 = [ 1 0 2 − 1 3 0 ] [ 2 1 1 ] = [ 4 1 ] Ab_1=\begin{bmatrix}1 & 0 & 2\\-1 & 3 & 0\end{bmatrix}\begin{bmatrix}1\\0\\3\end{bmatrix}=\begin{bmatrix}7\\-1\end{bmatrix},\qquad
Ab_2=\begin{bmatrix}1 & 0 & 2\\-1 & 3 & 0\end{bmatrix}\begin{bmatrix}2\\1\\1\end{bmatrix}=\begin{bmatrix}4\\1\end{bmatrix}
A b 1 = [ 1 − 1 0 3 2 0 ] ⎣ ⎡ 1 0 3 ⎦ ⎤ = [ 7 − 1 ] , A b 2 = [ 1 − 1 0 3 2 0 ] ⎣ ⎡ 2 1 1 ⎦ ⎤ = [ 4 1 ]
所以 A B = A ( b 1 , b 2 ) = ( A b 1 , A b 2 ) AB=A(b_1,b_2)=(Ab_1,Ab_2) A B = A ( b 1 , b 2 ) = ( A b 1 , A b 2 ) :右矩阵拆成几列,乘积就是左矩阵分别乘这几列再拼回去。手算时按这个办法一列一列地做,比逐个元素瞄位置更不容易错位。
(本节配图:把乘法写成元素层面的等式,逐项对着算)
(本节配图:矩阵乘列向量时每一行各得一个分量)
练习(L1)
1. 教材把 A x Ax A x 的第 i i i 个分量规定为 A A A 的第 i i i 行与 x x x 的对应分量乘积之和。
这样规定最直接的好处是什么?
A. 让 A x = b Ax=b A x = b 与原方程组完全等价
B. 让两个矩阵的对应元素能逐个相乘相加
C. 让任意两个矩阵不用看维度就能相乘
D. 让乘法的结果与两个矩阵的先后顺序无关
参考答案 答案:A 定义成行乘列,是为了让 $Ax$ 的第 $i$ 个分量正好还原出第 $i$ 个方程的左边。对应元素逐个相乘(Hadamard 积)做不到这一点,形状也常常对不上。
2. 设 A A A 是 2 × 3 2\times 3 2 × 3 矩阵、B B B 是 3 × 3 3\times 3 3 × 3 矩阵。下面哪个说法对?
A. A B AB A B 是 2 × 3 2\times3 2 × 3 ;B A BA B A 是 3 × 3 3\times3 3 × 3
B. A B AB A B 是 2 × 3 2\times3 2 × 3 ;B A BA B A 写不出来,维度不合
C. A B AB A B 是 3 × 3 3\times3 3 × 3 ;B A BA B A 是 2 × 2 2\times2 2 × 2
D. A B AB A B 写不出来,维度不合;B A BA B A 是 3 × 3 3\times3 3 × 3
参考答案 答案:B 相乘条件是左矩阵的列数等于右矩阵的行数:$A$ 的列数 $3$ 等于 $B$ 的行数 $3$,所以 $AB$ 是 $2\times3$ 矩阵;$B$ 的列数 $3$ 不等于 $A$ 的行数 $2$,所以 $BA$ 写不出来。
::: warn 最容易顺手的错法
把两个矩阵的对应元素逐个相乘。对上面这一对 A , B A,B A , B 硬算会得出一张 2 × 3 2\times 3 2 × 3 的结果表,而 A B AB A B 是 2 × 2 2\times 2 2 × 2 矩阵——连形状都不对。对应元素相乘是另一种运算(Hadamard 积),与矩阵乘法无关。
:::
三条不成立的运算律
定义完就要检查:实数里那些顺手的法则哪些还活着。先看不满足交换律。取
A = [ 1 2 3 4 ] , B = [ 0 1 1 0 ] A=\begin{bmatrix}1 & 2\\3 & 4\end{bmatrix},\qquad
B=\begin{bmatrix}0 & 1\\1 & 0\end{bmatrix}
A = [ 1 3 2 4 ] , B = [ 0 1 1 0 ]
两个乘法都有意义,都是 2 × 2 2\times 2 2 × 2 矩阵,算出来却不同:
A B = [ 1 2 3 4 ] [ 0 1 1 0 ] = [ 2 1 4 3 ] , B A = [ 0 1 1 0 ] [ 1 2 3 4 ] = [ 3 4 1 2 ] AB=\begin{bmatrix}1 & 2\\3 & 4\end{bmatrix}\begin{bmatrix}0 & 1\\1 & 0\end{bmatrix}=\begin{bmatrix}2 & 1\\4 & 3\end{bmatrix},\qquad
BA=\begin{bmatrix}0 & 1\\1 & 0\end{bmatrix}\begin{bmatrix}1 & 2\\3 & 4\end{bmatrix}=\begin{bmatrix}3 & 4\\1 & 2\end{bmatrix}
A B = [ 1 3 2 4 ] [ 0 1 1 0 ] = [ 2 4 1 3 ] , B A = [ 0 1 1 0 ] [ 1 3 2 4 ] = [ 3 1 4 2 ]
换顺序以后结果不一样,这就是矩阵乘法不满足交换律的原样:A B = B A AB=BA A B = B A 对一般的方阵并不成立,写乘积时必须分清左右。
交换顺序的后果还不止「结果不同」。回到上一节那一对矩阵 A = [ 1 0 2 − 1 3 0 ] A=\begin{bmatrix}1&0&2\\-1&3&0\end{bmatrix} A = [ 1 − 1 0 3 2 0 ] 、B = [ 1 2 0 1 3 1 ] B=\begin{bmatrix}1&2\\0&1\\3&1\end{bmatrix} B = ⎣ ⎡ 1 0 3 2 1 1 ⎦ ⎤ :A B AB A B 是 2 × 2 2\times 2 2 × 2 矩阵,而 B A BA B A 的相乘条件是 B B B 的列数 2 2 2 等于 A A A 的行数 2 2 2 ,成立,B A BA B A 是 3 × 3 3\times 3 3 × 3 矩阵。两个乘积不同型,比较大小或是否相等都无从谈起。若把 A A A 换成 3 × 3 3\times 3 3 × 3 方阵,则 A B AB A B 有意义而 B A BA B A 无意义——连第二个乘积都写不出来。
第二件要检查的是消去律。取
A = [ 1 1 1 1 ] , B = [ 1 − 1 1 − 1 ] , C = [ − 1 1 − 1 1 ] A=\begin{bmatrix}1 & 1\\1 & 1\end{bmatrix},\qquad
B=\begin{bmatrix}1 & -1\\1 & -1\end{bmatrix},\qquad
C=\begin{bmatrix}-1 & 1\\-1 & 1\end{bmatrix}
A = [ 1 1 1 1 ] , B = [ 1 1 − 1 − 1 ] , C = [ − 1 − 1 1 1 ]
算三个乘积:
A B = [ 2 − 2 2 − 2 ] , A C = [ − 2 2 − 2 2 ] , B C = [ − 2 2 − 2 2 ] AB=\begin{bmatrix}2 & -2\\2 & -2\end{bmatrix},\qquad
AC=\begin{bmatrix}-2 & 2\\-2 & 2\end{bmatrix},\qquad
BC=\begin{bmatrix}-2 & 2\\-2 & 2\end{bmatrix}
A B = [ 2 2 − 2 − 2 ] , A C = [ − 2 − 2 2 2 ] , B C = [ − 2 − 2 2 2 ]
A B ≠ A C AB\neq AC A B ≠ A C 说明 B ≠ C B\neq C B ≠ C 与 A B = A C AB=AC A B = A C 并不冲突;再看 B C BC B C ,两个非零矩阵相乘得到了零矩阵。于是有两条反例,都要背下来:
若 A B = O AB=O A B = O ,推不出 A = O A=O A = O 或 B = O B=O B = O ;
由 A B = A C AB=AC A B = A C 且 A ≠ O A\neq O A ≠ O ,推不出 B = C B=C B = C 。
这两条之所以值得单独记,是因为它们正好卡住「两边同时除以 A A A 」这种顺手动作:矩阵没有除法,第 9 课讲的逆矩阵也只对可逆矩阵才允许消去。
练习(L3)
1. 设 A = ( 2 1 0 3 ) A=\begin{pmatrix}2 & 1\\0 & 3\end{pmatrix} A = ( 2 0 1 3 ) ,B = ( 1 0 2 4 ) B=\begin{pmatrix}1 & 0\\2 & 4\end{pmatrix} B = ( 1 2 0 4 ) 。
某同学的解答有两处错误:
① 他把两个矩阵对应位置的元素逐个相乘,
得到 ( 2 0 0 1 2 ) \begin{pmatrix}2 & 0\\0 & 12\end{pmatrix} ( 2 0 0 1 2 ) ,说这就是 A B AB A B ;
② 他又说因为 A B = B A AB=BA A B = B A ,所以 B A BA B A 也是这张表。
指出两处错误的根因,写出 A B AB A B 与 B A BA B A 的正确结果,
再各给一句以后算的时候怎么避开。
参考答案 根因一:把矩阵乘法当成了「对应元素逐个相乘」——那是 Hadamard 积。 $AB$ 的第 $i$ 行第 $j$ 列必须是 $A$ 的第 $i$ 行与 $B$ 的第 $j$ 列 对应相乘再相加;$B$ 有两列,就要做两次行乘列、算出两列数。 正确结果: $AB=\begin{pmatrix}4 & 4\\6 & 12\end{pmatrix}$, $BA=\begin{pmatrix}2 & 1\\4 & 14\end{pmatrix}$。 根因二:乘法不满足交换律,$AB=BA$ 对一般的方阵不成立。 这里 $BA$ 的两列是由 $B$ 的两列参与算出的,与 $AB$ 不同, 不能凭一句话把 $AB$ 的结果抄给 $BA$。 怎么避开:算之前先把两边的维度写在纸角核对 (这里 $2=2$,两个乘积都合法,正因如此更容易顺手写错); 每算一个元素都重新「左取一行、右取一列」,两个乘积各算一遍。
判分要点:必须同时做到三点才算通过:
① 点出根因是把乘法当成了对应元素逐个相乘(只说算错了不算);
② $AB=\begin{pmatrix}4 & 4\\6 & 12\end{pmatrix}$ 四个元素全对;
③ 指出 $AB=BA$ 不成立,并给出 $BA=\begin{pmatrix}2 & 1\\4 & 14\end{pmatrix}$。
部分通过:结论对但说不出根因,或 B A BA B A 是照 A B AB A B 抄的。
不通过:A B AB A B 仍按对应元素逐个相乘来算。
结合律与分配律仍然成立
不成立的只有上面那几条,乘法该有的代数法则大部分还在。对使乘法有意义的矩阵,有
结合律 ( A B ) C = A ( B C ) (AB)C=A(BC) ( A B ) C = A ( B C ) ;
分配律 A ( B + C ) = A B + A C A(B+C)=AB+AC A ( B + C ) = A B + A C ,( A + B ) C = A C + B C (A+B)C=AC+BC ( A + B ) C = A C + B C ;
数与乘积的结合 λ ( A B ) = ( λ A ) B = A ( λ B ) \lambda(AB)=(\lambda A)B=A(\lambda B) λ ( A B ) = ( λ A ) B = A ( λ B ) 。
分配律与第三条的验证方式与上一课的性质一样,逐个元素对一遍即可;结合律值得单独算一遍。取
A = [ 1 2 ] , B = [ 1 0 0 1 ] , C = [ 3 4 ] A=\begin{bmatrix}1 & 2\end{bmatrix},\qquad
B=\begin{bmatrix}1 & 0\\0 & 1\end{bmatrix},\qquad
C=\begin{bmatrix}3\\4\end{bmatrix}
A = [ 1 2 ] , B = [ 1 0 0 1 ] , C = [ 3 4 ]
先算左边:A B = [ 1 2 ] [ 1 0 0 1 ] = [ 1 2 ] AB=\begin{bmatrix}1 & 2\end{bmatrix}\begin{bmatrix}1&0\\0&1\end{bmatrix}=\begin{bmatrix}1 & 2\end{bmatrix} A B = [ 1 2 ] [ 1 0 0 1 ] = [ 1 2 ] ,故 ( A B ) C = 1 ⋅ 3 + 2 ⋅ 4 = 1 1 (AB)C=1\cdot 3+2\cdot 4=11 ( A B ) C = 1 ⋅ 3 + 2 ⋅ 4 = 1 1 ;再算右边:B C = [ 3 4 ] BC=\begin{bmatrix}3\\4\end{bmatrix} B C = [ 3 4 ] ,故 A ( B C ) = [ 1 2 ] [ 3 4 ] = 1 1 A(BC)=\begin{bmatrix}1 & 2\end{bmatrix}\begin{bmatrix}3\\4\end{bmatrix}=11 A ( B C ) = [ 1 2 ] [ 3 4 ] = 1 1 。两侧相等。
结合律让连乘积可以省掉括号写成 A B C ABC A B C ,也让「先把右边两个乘起来」这种算法合法。矩阵乘法的实际来历正落在这条上:设 y y y 是 x x x 的线性函数、z z z 又是 y y y 的线性函数,写成矩阵式就是 y = B x y=Bx y = B x 、z = A y z=Ay z = A y ,代入得
z = A ( B x ) = ( A B ) x z=A(Bx)=(AB)x
z = A ( B x ) = ( A B ) x
先把两个系数矩阵乘出来,再由一次乘法直接给出 z z z 与 x x x 的关系。教材在乘法之后专门用这个例子说明结合律的用法。
单位矩阵、方幂与多项式
方阵是乘法里最重要的情形,因为只有方阵才能自己乘自己。
主对角线上元素全为 1 1 1 、其余元素全为 0 0 0 的 n n n 阶方阵称为 n n n 阶单位矩阵,记为 E E E :
E = [ 1 0 0 1 ] E=\begin{bmatrix}1 & 0\\0 & 1\end{bmatrix}
E = [ 1 0 0 1 ]
它扮演实数乘法里 1 1 1 的角色:对任意 n n n 阶矩阵 A A A ,都有 E A = A E = A EA=AE=A E A = A E = A ,左乘右乘都成立。例如 E = [ 1 0 0 1 ] E=\begin{bmatrix}1&0\\0&1\end{bmatrix} E = [ 1 0 0 1 ] 与 A = [ 1 2 3 4 5 6 ] A=\begin{bmatrix}1&2&3\\4&5&6\end{bmatrix} A = [ 1 4 2 5 3 6 ] 相乘(注意 A A A 是 2 × 3 2\times 3 2 × 3 ,E E E 是 2 2 2 阶)可得 E A = A EA=A E A = A 。
设 A A A 是 n n n 阶矩阵,k k k 个 A A A 相乘有意义,称为 A A A 的 k k k 次幂,记为 A k A^k A k ,并约定 A 0 = E A^0=E A 0 = E 。因为乘法不满足交换律,指数法则只在同一个矩阵的幂之间成立:A m A k = A m + k A^mA^k=A^{m+k} A m A k = A m + k ;对两个不同的方阵则有
(AB)^k\neq A^kB^k\quad(A,B\ \text{皆为方阵})
形如
f ( A ) = A m + a 1 A m − 1 + ⋯ + a m − 1 A + a m E f(A)=A^m+a_1A^{m-1}+\cdots+a_{m-1}A+a_mE
f ( A ) = A m + a 1 A m − 1 + ⋯ + a m − 1 A + a m E
的式子称为矩阵 A A A 的多项式,就是把普通多项式 f ( λ ) f(\lambda) f ( λ ) 中 λ \lambda λ 换成 A A A 、常数项换成 a m E a_mE a m E 。多项式的加、乘与因式分解都能照常做,这是整理关系式和算幂时最常用的一步。设
A = [ 2 1 1 1 ] A=\begin{bmatrix}2 & 1\\1 & 1\end{bmatrix}
A = [ 2 1 1 1 ]
乘两次得 A 2 = [ 5 3 3 2 ] A^2=\begin{bmatrix}5 & 3\\3 & 2\end{bmatrix} A 2 = [ 5 3 3 2 ] ,于是
A^2-3A+E=O,\qquad\text{即}\qquad A^2=3A-E
有了这个等式,算 A 3 A^3 A 3 就不必再乘两次:
A 3 = A ⋅ A 2 = A ( 3 A − E ) = 3 A 2 − A = 3 ( 3 A − E ) − A = 8 A − 3 E = [ 1 3 8 8 5 ] A^3=A\cdot A^2=A(3A-E)=3A^2-A=3(3A-E)-A=8A-3E=\begin{bmatrix}13 & 8\\8 & 5\end{bmatrix}
A 3 = A ⋅ A 2 = A ( 3 A − E ) = 3 A 2 − A = 3 ( 3 A − E ) − A = 8 A − 3 E = [ 1 3 8 8 5 ]
反过来,把 A 2 − 3 A + E = O A^2-3A+E=O A 2 − 3 A + E = O 移项整理成
( A − E ) ( A − 2 E ) = E (A-E)(A-2E)=E
( A − E ) ( A − 2 E ) = E
就直接读出一个结论:E E E 能写成 A − E A-E A − E 与 A − 2 E A-2E A − 2 E 的乘积。第 9 课专门处理「一个矩阵乘另一个矩阵得 E E E 」这件事,这里先用关系式把幂降下来。
练习(L2)
1. 设 A = ( 3 2 1 1 ) A=\begin{pmatrix}3 & 2\\1 & 1\end{pmatrix} A = ( 3 1 2 1 ) ,E E E 是二阶单位矩阵。
① 算出 A 2 A^2 A 2 ,整理成 A 2 = p A + q E A^2=pA+qE A 2 = p A + q E ,写出 p p p 与 q q q 。
② 不连乘三次,用 ① 的关系式把 A 3 A^3 A 3 写成 s A + t E sA+tE s A + t E ,
写出 s s s 与 t t t 。
③ 把 ① 的关系式移项,整理成「A A A 乘某个矩阵等于 E E E 」
的形式,写出那个矩阵并乘开验证。
参考答案 ① $A^2=\begin{pmatrix}11 & 8\\4 & 3\end{pmatrix}$。 对照 $pA+qE=\begin{pmatrix}3p+q & 2p\\p & p+q\end{pmatrix}$: 由 $2p=8$ 得 $p=4$,再由 $p+q=3$ 得 $q=-1$。 所以 $A^2=4A-E$,也就是 $A^2-4A+E=O$。 ② 拿关系式降幂: $A^3=A\cdot A^2=A(4A-E)=4A^2-A$ $=4(4A-E)-A=15A-4E$, 所以 $s=15$、$t=-4$,且 $A^3=\begin{pmatrix}41 & 30\\15 & 11\end{pmatrix}$。 ③ 移项得 $A^2-4A=-E$,即 $A(4E-A)=E$, 那个矩阵是 $4E-A=\begin{pmatrix}1 & -2\\-1 & 3\end{pmatrix}$。 乘开验证:$A(4E-A)=4A-A^2=4A-(4A-E)=E$。
判分要点:三小问各判一条:
① $A^2$ 四个元素全对,且 $p=4$、$q=-1$;
② 用到了 ① 的关系式(先写成 $A\cdot A^2$ 再代入),
结果 $s=15$、$t=-4$;
③ 写成 $A(4E-A)=E$ 并乘开验证过。
写成 $(4E-A)A=E$ 同样算对($A$ 与 $A^2$ 可交换)。
部分通过:结果都对,但 ② 是硬乘三次得来的(没用关系式)。
不通过:把 A 3 A^3 A 3 当成逐个元素求三次方。
教材里的两个应用
教材在乘法之后给了两类完整计算,都属于把「同一套运算要对很多组数据做」的表格整理成一次乘法。
经济学中的一次乘法:某地区三个公司各生产四种产品,把各公司的日产量排成矩阵 A A A 、把四种产品的单价与单位利润并排成矩阵 B B B ,则各公司的总收入与总利润恰好是乘积 A B AB A B 的各个元素——B B B 的每一列对应一项要算的合计,A B AB A B 的每一列对应这项合计的结果。教材用表 2.1–2.3 把三张表算成一个乘积,得到三家公司的总收入与总利润。
莱斯利矩阵:把种群按生命阶段分成几组,各阶段的一年存活率与年产卵量排成方阵 L L L ,若用列向量 x k x_k x k 记第 k k k 年各阶段的种群数量,则
x_{k+1}=Lx_k,\qquad\text{从而}\qquad x_k=L^kx_0
这种形式的矩阵叫莱斯利矩阵,相应的模型叫莱斯利种群模型。教材用它预测海龟种群:初始各阶段数量为 2 0 0 0 0 0 , 3 0 0 0 0 0 , 5 0 0 , 1 5 0 0 200000,300000,500,1500 2 0 0 0 0 0 , 3 0 0 0 0 0 , 5 0 0 , 1 5 0 0 ,一年后即 L x 0 Lx_0 L x 0 ,十年、二十五年、五十年的数量由 L k x 0 L^kx_0 L k x 0 依次算出。
练习(L4)
1. 甲、乙两厂各生产 P 1 , P 2 , P 3 P_1,P_2,P_3 P 1 , P 2 , P 3 三种产品。
日产量矩阵 A = ( 2 1 3 1 4 1 ) A=\begin{pmatrix}2 & 1 & 3\\1 & 4 & 1\end{pmatrix} A = ( 2 1 1 4 3 1 ) ,
第 1 行是甲厂、第 2 行是乙厂,列依次对应三种产品。
单价与单位利润排成 B = ( 1 0 2 2 0 5 1 0 1 ) B=\begin{pmatrix}10 & 2\\20 & 5\\10 & 1\end{pmatrix} B = ⎝ ⎛ 1 0 2 0 1 0 2 5 1 ⎠ ⎞ ,
第 1 列是单价(元)、第 2 列是单位利润(元)。
① 乘积 A B AB A B 一次算出了什么?写出它的形状,
再说 B A BA B A 算出来是不是同一件事。
② 写出 A B AB A B ,并指出哪两个元素分别是乙厂的
总收入与总利润。
参考答案 ① $A$ 是 $2\times3$、$B$ 是 $3\times2$,左的列数等于右的行数, 所以 $AB$ 是 $2\times2$ 矩阵:第 1 行甲厂、第 2 行乙厂, 第 1 列总收入、第 2 列总利润—— 一次乘法把两家厂的两项合计都算出来了。 $BA$ 也写得出来($B$ 的列数 $2$ 等于 $A$ 的行数 $2$), 但它是 $3\times3$ 矩阵,行与列都按产品编号走, 得到的不是「每家厂的总收入与总利润」,不是同一件事。 ② 第 2 行第 1 列 $=1\cdot10+4\cdot20+1\cdot10=100$, 第 2 行第 2 列 $=1\cdot2+4\cdot5+1\cdot1=23$; 同样算第 1 行,得 $AB=\begin{pmatrix}70 & 12\\100 & 23\end{pmatrix}$。 乙厂是第 2 行:$100$ 是乙厂的总收入(元), $23$ 是乙厂的总利润(元)。
判分要点:三档判据:
① 说出 $AB$ 是 $2\times2$,每行一家厂、两列分别是总收入与总利润,
并指出 $BA$ 是 $3\times3$、行与列都按产品编号走,不是同一件事。
② $AB=\begin{pmatrix}70 & 12\\100 & 23\end{pmatrix}$ 四个元素全对。
③ 指认乙厂那一行:$100$ 是总收入、$23$ 是总利润。
部分通过:元素算对但把两项合计说反(把 1 0 0 100 1 0 0 当成利润)。
不通过:把 A B AB A B 的形状说成 3 × 3 3\times3 3 × 3 ,或认为 B A BA B A 是同一件事。
::: practice 上手做 | 第 1 步 · 三次乘法各手算一遍
取 A = [ 1 2 3 0 ] A=\begin{bmatrix}1 & 2\\3 & 0\end{bmatrix} A = [ 1 3 2 0 ] 、B = [ 0 1 1 − 1 ] B=\begin{bmatrix}0 & 1\\1 & -1\end{bmatrix} B = [ 0 1 1 − 1 ] 、X = [ 1 2 ] X=\begin{bmatrix}1\\2\end{bmatrix} X = [ 1 2 ] ,在同一张纸上依次完成五步:
算 A X AX A X ,写出结果;再把 A X AX A X 按「A A A 的列向量的线性组合」重新写一遍,核对两种算法得到同一个列向量。
算 A B AB A B 。
算 B A BA B A ,与第 2 步的结果比较,写出 A B − B A AB-BA A B − B A 。
取 Y = B X Y=BX Y = B X ,再算 A Y AY A Y ;然后算 ( A B ) X (AB)X ( A B ) X ,核对 A Y AY A Y 与 ( A B ) X (AB)X ( A B ) X 相同。
取 C = [ 1 − 1 1 − 1 ] C=\begin{bmatrix}1 & -1\\1 & -1\end{bmatrix} C = [ 1 1 − 1 − 1 ] 、D = [ 1 1 1 1 ] D=\begin{bmatrix}1 & 1\\1 & 1\end{bmatrix} D = [ 1 1 1 1 ] ,算 C D CD C D ,用这个结果解释「A B = O AB=O A B = O 为什么推不出 A = O A=O A = O 或 B = O B=O B = O 」。
五步做完,把最容易出错的三个位置在纸上标出来:相乘条件的维度有没有先确认、乘积的每个元素有没有对齐行列位置、交换 A A A 与 B B B 的顺序以后有没有重新算一遍。
:::
本课的动手任务在 矩阵乘法任务单 :五个手算任务,期望答案与自查清单分开放。
::: note 用 Python 验算
手算完可以把结果对着 numpy 核一遍,把这一段当验算器用,手算仍然要自己走一遍:
1 2 3 4 5 6 7 8 9 10 11 12 import numpy as npA = np.array([[1 , 2 ], [3 , 0 ]]) B = np.array([[0 , 1 ], [1 , -1 ]]) X = np.array([[1 ], [2 ]]) C = np.array([[1 , -1 ], [1 , -1 ]]) D = np.array([[1 , 1 ], [1 , 1 ]]) print (A @ X) print (A @ B, B @ A) print (A @ (B @ X)) print (C @ D)
:::
这一课要记住的
乘法按「左取一行、右取一列,对应相乘再相加」定义,条件是左矩阵的列数等于右矩阵的行数;乘积的行数取自左矩阵、列数取自右矩阵。
这样定义的目的就是让线性方程组写成 A x = b Ax=b A x = b ,而 A x Ax A x 也等于 A A A 的列向量的线性组合。
交换律与消去律都不成立:A B ≠ B A AB\neq BA A B ≠ B A 是常态,A B = O AB=O A B = O 时两个因子都可以非零,A B = A C AB=AC A B = A C 且 A ≠ O A\neq O A ≠ O 推不出 B = C B=C B = C 。
结合律、分配律、数乘的结合律成立;方阵有单位矩阵 E E E 、方幂与矩阵多项式,( A B ) k ≠ A k B k (AB)^k\neq A^kB^k ( A B ) k ≠ A k B k 。
::: warn 期末最容易丢分的三处
把矩阵乘法当成对应元素逐个相乘:先看形状对不对,再看数值对不对。
不看维度就相乘:写 A B AB A B 之前先确认左矩阵的列数等于右矩阵的行数。
在没写清前提的地方消去 A A A :下一步要用消去律,就先确认 A A A 能否消去。
:::
练习(L1)
1. 设 A , B , C A,B,C A , B , C 都是同阶方阵,题中出现的乘积都有意义。
下面哪个说法对?
A. ( A B ) C = A ( B C ) (AB)C=A(BC) ( A B ) C = A ( B C ) 恒成立,A B = B A AB=BA A B = B A 不一定
B. A B = B A AB=BA A B = B A 恒成立,( A B ) C = A ( B C ) (AB)C=A(BC) ( A B ) C = A ( B C ) 不一定
C. 只要 A B = O AB=O A B = O ,就一定 A = O A=O A = O 或 B = O B=O B = O
D. 由 A B = A C AB=AC A B = A C 且 A ≠ O A\ne O A ≠ O 就能推出 B = C B=C B = C
参考答案 答案:A $(AB)C=A(BC)$ 是结合律,对使乘法有意义的矩阵都成立。$AB=BA$ 一般不成立;$AB=O$ 推不出谁为零;$AB=AC$ 也不能两边消去 $A$——这三条的反例都在本节正文里。要用消去律之前,先确认 $A$ 消得掉。
::: related
::: resources