Evanalysis
3.2预计阅读时间: 27 分钟

3.2 矩阵乘法、单位矩阵与线性方程组

理解何时可以做矩阵乘法、行乘列规则和单位矩阵如何运作,以及矩阵乘法如何表示线性方程组。

课程目录

矩阵乘法是第一个真正把“行”与“列”结合起来的矩阵运算。它也是矩阵之所以 能表达复合、线性方程组与逆矩阵的核心原因。所以这条规则不能只靠死记;你 要明白每一步的大小条件到底在做什么。

动机

矩阵加法与数乘都是逐项进行。矩阵乘法则不同:输出中的一个元素,是由左边 矩阵的一整行与右边矩阵的一整列共同决定。

这个大小条件也有结构上的原因。一个 n×pn \times p 矩阵把具有 pp 个元素的 向量送到具有 nn 个元素的向量,而一个 m×nm \times n 矩阵恰好可以接收这个 结果,再把它送到具有 mm 个元素的向量。因此先做 BB、再做 AA 的复合作用 大小为 m×pm \times p,正好就是 ABAB 的大小。相同的内侧维数表示两个作用能够 衔接,外侧维数则记录复合作用的输入与输出。

定义

矩阵乘积何时有定义

若 AA 是 m×nm \times n 矩阵,BB 是 n×pn \times p 矩阵,则乘积 ABAB 有定义,且结果是 m×pm \times p 矩阵。

若 AA 的列数不等于 BB 的行数,则 ABAB 未定义。

内侧大小必须配对;外侧大小则给出结果矩阵的大小。

行乘列规则

定义

矩阵乘法

设 A=[aij]A = [a_{ij}] 是 m×nm \times n 矩阵,B=[bjk]B = [b_{jk}] 是 n×pn \times p 矩阵。

则 ABAB 的 (i,k)(i,k) 元素为

(AB)ik=ai1b1k+ai2b2k+⋯+ainbnk.(AB)_{ik} = a_{i1}b_{1k} + a_{i2}b_{2k} + \cdots + a_{in}b_{nk}.

也就是说,输出中的一个元素,是 AA 的第 ii 行与 BB 的第 kk 列按位相 乘后再相加。

这个定义同时说明三件事:

  • 矩阵乘法不是逐项相乘;
  • 内侧大小必须吻合;
  • 一个输出元素会用到整行与整列中所有对应位置。

例题

细算一个矩阵乘积

令

A=[123−1],B=[4051].A = \begin{bmatrix} 1 & 2 \\ 3 & -1 \end{bmatrix}, \qquad B = \begin{bmatrix} 4 & 0 \\ 5 & 1 \end{bmatrix}.

由于两者都是 2×22 \times 2,所以 ABAB 有定义。其元素为

(AB)11=1⋅4+2⋅5=14,(AB)_{11} = 1 \cdot 4 + 2 \cdot 5 = 14,(AB)12=1⋅0+2⋅1=2,(AB)_{12} = 1 \cdot 0 + 2 \cdot 1 = 2,(AB)21=3⋅4+(−1)⋅5=7,(AB)_{21} = 3 \cdot 4 + (-1) \cdot 5 = 7,(AB)22=3⋅0+(−1)⋅1=−1.(AB)_{22} = 3 \cdot 0 + (-1) \cdot 1 = -1.

因此

AB=[1427−1].AB = \begin{bmatrix} 14 & 2 \\ 7 & -1 \end{bmatrix}.

矩阵乘向量就是方程组语言

若 xx 是列向量,那么 AxAx 只是矩阵乘法的特例,但它刚好把线性方程组的左 边全部打包起来。

对

A=[12−13−15],x=[x1x2x3],A = \begin{bmatrix} 1 & 2 & -1 \\ 3 & -1 & 5 \end{bmatrix}, \qquad x = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix},

有

Ax=[x1+2x2−x33x1−x2+5x3].Ax = \begin{bmatrix} x_1 + 2x_2 - x_3 \\ 3x_1 - x_2 + 5x_3 \end{bmatrix}.

所以 Ax=bAx = b 并不是纯粹缩写,而是把整个方程组写成一个矩阵乘积。

逐行读出 Ax 对应的方程

下面的图解保留同一个符号化的 2×32 \times 3 乘 3×13 \times 1 乘积,同时把 AA 的每一行读成 Ax=bAx = b 里的方程。它的角色是连接上面的公式和本页稍后的可编辑乘法工具。

把矩阵乘积读成方程

观看行乘列乘法如何把 Ax = b 变成完整方程组:每一行读出一条方程。

  1. 先检查大小

    2 x 3 矩阵可以乘 3 x 1 向量,因为 A 的每一行刚好有三个元素与 x 配对。

  2. 读第 1 行

    第一个输出元素是 A 的第 1 行与 x 配对:a11*x1 + a12*x2 + a13*x3。

  3. 设成 b1

    当 Ax = b,这个第一输出元素就成为方程组的第一条方程。

  4. 读第 2 行

    第 2 行给出第二条方程:a21*x1 + a22*x2 + a23*x3 = b2。

  5. 叠成方程组

    Ax = b 就是把所有按行读出的方程上下叠起,再用一条矩阵方程写出。

  6. 推广到 AB

    若 B = [u v],则 AB = [Au Av]。一般矩阵乘积就是多个 Ax 式乘积并排。

行乘列规则解释了为什么一条紧凑的 Ax = b 可以保存整个线性方程组。A 的每一行提供一条方程;完整乘积 AB 则对 B 的每一列重复同一想法。

单位矩阵是刻意“什么也不改变”的矩阵

定义

单位矩阵

对每个正整数 nn,InI_n 表示 n×nn \times n 单位矩阵:主对角线上全是 11, 其余位置全是 00。

例如

I2=[1001],I3=[100010001].I_2 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \qquad I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}.

单位矩阵之所以重要,是因为它对任何大小相容的矩阵都不起改变作用:

AIn=A,ImA=A.AI_n = A, \qquad I_m A = A.

例题

为什么乘上单位矩阵不会改变矩阵

若

A=[2−143],A = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix},

则

AI2=[2−143][1001]=[2−143].AI_2 = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix}.

因为 I2I_2 的第一列会抽出 AA 的第一列,第二列会抽出 AA 的第二列。

这正是往后定义逆矩阵的原因:若 A−1A^{-1} 存在,就要求 AA−1=IAA^{-1} = I。

看行乘列规则与单位矩阵的作用

下面的图解分别展示本节最重要的两个机制:ABAB 的一个元素由一行与一列计算出来,而乘上单位矩阵会保留相容的行或列。比较这些情况后,再用下面的互动工具自己选择不同输出位置。

矩阵乘积与单位矩阵

观看一个矩阵乘积元素如何由行列求和形成,再看单位矩阵为什么会保留原本的行与列。

  1. 大小入口

    2 x 3 矩阵可以乘 3 x 2 矩阵,因为内侧大小匹配。外侧大小决定 AB 是 2 x 2 矩阵。

  2. 一个元素

    左上角输出元素使用 A 的第 1 行与 B 的第 1 列:c11 = 1*4 + 2*5 + (-1)*6 = 8。

  3. 整个乘积

    对每个输出格重复行乘列规则。乘积不是把对应位置逐格相乘而成。

  4. 右边单位矩阵

    在 A I_n = A 中,I_n 的列会选出 A 的各列,所以右乘单位矩阵保持 A 不变。

  5. 左边单位矩阵

    在 I_m A = A 中,I_m 的行会选出 A 的各行,所以左乘单位矩阵也保持 A 不变。

  6. 次序提醒

    单位矩阵是特殊情形。一般而言,AB 与 BA 回答的是不同的行列问题,不必相等。

矩阵乘积由相容的内侧大小决定是否有定义。每个输出元素都是行列求和,而单位矩阵会保持相容矩阵不变,因为它的行和列会选回原本的行与列。

乘法一般不交换

线性代数最早令学生不习惯的地方之一,就是

AB≠BAAB \ne BA

一般而言就是如此。

有时两个乘积都定义,但结果不同;有时其中一个有定义,另一个根本未定义。 所以次序同时影响“能不能做”与“做出来是什么”。

反例模式

大小相容并不保证交换

“任意两个同样大小的方阵都满足 AB=BAAB=BA”是错误命题,即使两种次序的乘积都有定义且大小相同。取

A=[1234],B=[0001].A=\begin{bmatrix}1&2\\3&4\end{bmatrix},\qquad B=\begin{bmatrix}0&0\\0&1\end{bmatrix}.

两者都是 2×22\times2 实矩阵,满足所提命题的假设。直接按行乘列计算,得到

AB=[0204],BA=[0034].AB=\begin{bmatrix}0&2\\0&4\end{bmatrix},\qquad BA=\begin{bmatrix}0&0\\3&4\end{bmatrix}.

例如,(AB)12=1⋅0+2⋅1=2(AB)_{12}=1\cdot0+2\cdot1=2,但 (BA)12=0⋅2+0⋅4=0(BA)_{12}=0\cdot2+0\cdot4=0。只要一对对应元素不同,就足以证明 AB≠BAAB\ne BA。失败的结构原因是:右乘这个 BB 会保留第二列、把第一列归零;左乘它则保留第二行、把第一行归零。

一个正确的修订是:方阵与同样大小的单位矩阵的任意标量倍都可交换。事实上,若 B=cIB=cI,则 AB=A(cI)=cA=(cI)A=BAAB=A(cI)=cA=(cI)A=BA。对于任意方阵,交换性需要另行论证;大小相容只保证乘法有定义,并不保证因子可以调换。

下面的图可以帮你直接看到:一个输出元素,是如何由一行与一列构成的。

边读边试

跟着看一格矩阵乘法

互动工具会在你改变 A 与 B 的元素时,即时更新 AB 的每一格。

结果

89
34

8 = 1×2 + 2×3

用列的观点去读乘积

除了逐格计算之外,矩阵乘法还有另一种非常重要的读法。

如果把 BB 的列写成

B=[b1 b2 ⋯ bp],B = [b_1\ b_2\ \cdots\ b_p],

那么就有

AB=[Ab1 Ab2 ⋯ Abp].AB = [Ab_1\ Ab_2\ \cdots\ Ab_p].

也就是说,乘积的每一列,都可以理解成 AA 乘上 BB 的对应列向量。

例题

逐列读取同一个乘积

令

A=[123−1],B=[4051].A = \begin{bmatrix} 1 & 2 \\ 3 & -1 \end{bmatrix}, \qquad B = \begin{bmatrix} 4 & 0 \\ 5 & 1 \end{bmatrix}.

把 BB 的两列记为

b1=[45],b2=[01].b_1 = \begin{bmatrix} 4 \\ 5 \end{bmatrix}, \qquad b_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}.

那么

Ab1=[147],Ab2=[2−1].Ab_1 = \begin{bmatrix} 14 \\ 7 \end{bmatrix}, \qquad Ab_2 = \begin{bmatrix} 2 \\ -1 \end{bmatrix}.

因此

AB=[1427−1].AB = \begin{bmatrix} 14 & 2 \\ 7 & -1 \end{bmatrix}.

这与逐项使用行乘列规则所得的答案相同。列的观点强调的是:一个矩阵乘积把 多个矩阵乘向量的运算并列地组合在一起。

矩阵乘法其实表示复合

矩阵乘法不是随手规定出来的公式,而是用来表达线性映射复合的规则。

如果向量 xx 先被送到 BxBx,再将结果送到 A(Bx)A(Bx),那么整体作用就是

(AB)x.(AB)x.

所以内侧大小一定要匹配,因为第一个变换的输出,必须是第二个变换可以接收 的输入。

定理

结合律对应重复复合

只要相关乘积有定义,就有

A(BC)=(AB)C.A(BC) = (AB)C.

所以一串矩阵乘积可以改变分组方式,而不改变最后的线性变换。

这并不表示可以改变因子的次序。结合律只允许改变括号,而不允许重新排列因子。

例题

可以改变括号,但不能改变次序

设 AA 是 2×32 \times 3 矩阵,BB 是 3×43 \times 4 矩阵,CC 是 4×24 \times 2 矩阵。

此时 ABAB 与 BCBC 都有定义,所以 (AB)C(AB)C 与 A(BC)A(BC) 都有意义;结合律说明 它们相等。更具体地说,ABAB 的大小是 2×42 \times 4,所以 (AB)C(AB)C 的大小是 2×22 \times 2;BCBC 的大小是 3×23 \times 2,所以 A(BC)A(BC) 也是 2×22 \times 2。

但是 BABA 根本没有定义,因为它的两个内侧维数 44 与 22 不相等。因此矩阵 乘法具有结合律,却一般不具有交换律。

标准基向量解释为什么列的观点这么自然

在 Rn\mathbb{R}^n 中,eke_k 是第 kk 个位置等于 11、其余位置都为 00 的向量。 如果 AA 是 m×nm \times n 矩阵,那么 AekAe_k 就恰好是 AA 的第 kk 列。

因此单位矩阵一点都不神秘。InI_n 的各列就是 e1,e2,…,ene_1, e_2, \ldots, e_n,所以 右乘 InI_n,其实就是逐列把 AA 自己原封不动地重建出来。

同样的基本检验也适用于零矩阵。如果右边矩阵每一列都是零向量,那么乘积 的每一列也都会变成零向量,所以任何大小相容的 A0A0 都一定是零矩阵。

定理

矩阵由它对向量的作用唯一确定

设 AA 与 BB 都是 m×nm \times n 矩阵。若

Ax=Bx对每个 x∈Rn,Ax=Bx \qquad \text{对每个 } x\in\mathbb{R}^n,

则 A=BA=B。

证明

利用标准基证明

对每个 k=1,…,nk=1,\ldots,n,把标准基向量 eke_k 代入假设,得到 Aek=BekAe_k=Be_k。 其中 AekAe_k 是 AA 的第 kk 列,而 BekBe_k 是 BB 的第 kk 列。因此两个 矩阵的第 kk 列对每个 kk 都相同。它们的所有列、因而所有元素都相同,故 A=BA=B。

“对每个 xx”是不可缺少的条件。两个不同矩阵可以在某一个向量上作用相同; 例如,两者都会把零向量送到零向量。上面的证明还给出更强的检验方法:无须 逐一检查所有向量,只要检查 nn 个标准基向量,就能逐列确定整个矩阵。

最先要记住的代数法则

当乘法有定义之后,下一步就要问:它和你已经熟悉的其他矩阵运算如何配合。

只要大小相容,矩阵乘法满足

A(B+C)=AB+AC,(A+B)C=AC+BC,A(B + C) = AB + AC, \qquad (A + B)C = AC + BC,

而纯量也可以移进移出:

(cA)B=c(AB)=A(cB).(cA)B = c(AB) = A(cB).

零矩阵提供最直接的基本检验。若 00 是大小相容的零矩阵,就有

A0=0,0A=0.A0 = 0, \qquad 0A = 0.

原因是:行乘列时只要其中一边全是零,所有输出元素都只能是零。

这些法则虽然基础,但后面谈逆矩阵、分块矩阵计算和更长乘积推理时都会默认使 用。如果不把它们明确掌握,后面的长计算会很难核对。

未知元素与因子的次序

含有未知元素的乘积把三个要点连在一起:相容的大小、决定每个输出元素的 行与列,以及因子的次序。先用这些结构信息建立关系,再求解所得的标量方程。

例题

由部分已知乘积反推出未知数

令

A=[12131021],B=[ab11ba12].A = \begin{bmatrix} 1 & 2 & 1 & 3 \\ 1 & 0 & 2 & 1 \end{bmatrix}, \qquad B = \begin{bmatrix} a & b \\ 1 & 1 \\ b & a \\ 1 & 2 \end{bmatrix}.

假设

AB=[1c3d].AB = \begin{bmatrix} 1 & c \\ 3 & d \end{bmatrix}.

乘积有定义,因为 AA 是 2×42 \times 4,BB 是 4×24 \times 2,所以 ABAB 必定是 2×22 \times 2。只计算需要比较的元素,可得

AB=[a+b+5a+b+8a+2b+12a+b+2].AB = \begin{bmatrix} a+b+5 & a+b+8 \\ a+2b+1 & 2a+b+2 \end{bmatrix}.

把第一列与已知矩阵比较,得到

a+b+5=1,a+2b+1=3.a+b+5=1, \qquad a+2b+1=3.

因此

a+b=−4,a+2b=2.a+b=-4, \qquad a+2b=2.

第二条减第一条得到 b=6b=6,再代入得到 a=−10a=-10。余下元素是

c=a+b+8=4,d=2a+b+2=−12.c=a+b+8=4, \qquad d=2a+b+2=-12.

这类题目的重点,不是把所有元素都盲目乘出来,而是抽出已知乘积元素所强制 的少数方程。

例题

展开乘积时不要假设矩阵可交换

令 AA 与 BB 是同大小方阵。则

(5A−B)(2A+3B)=5A(2A+3B)−B(2A+3B).(5A-B)(2A+3B) = 5A(2A+3B)-B(2A+3B).

继续分配右边因子:

5A(2A+3B)−B(2A+3B)=10A2+15AB−2BA−3B2.5A(2A+3B)-B(2A+3B) =10A^2+15AB-2BA-3B^2.

中间两项是 15AB15AB 与 −2BA-2BA。除非已知 AB=BAAB=BA,否则不能把它们合并成 13AB13AB。

同一个警告也解释了常见错误:

(A+B)(A−B)=A2−AB+BA−B2.(A+B)(A-B) =A^2-AB+BA-B^2.

只有在额外知道 AB=BAAB=BA 时,这才等于 A2−B2A^2-B^2。实数代数会遮住这个问题, 因为实数乘法可交换;矩阵代数不会。

例题

零乘积不代表其中一个因子必定为零

令

A=[1−1],B=[11].A = \begin{bmatrix} 1 & -1 \end{bmatrix}, \qquad B = \begin{bmatrix} 1 \\ 1 \end{bmatrix}.

两个矩阵都不是零矩阵,但

AB=[1⋅1+(−1)⋅1]=[0].AB = \begin{bmatrix} 1 \cdot 1 + (-1) \cdot 1 \end{bmatrix} = \begin{bmatrix} 0 \end{bmatrix}.

所以矩阵乘法与实数乘法不同:AB=0AB = 0 并不推出 A=0A = 0 或 B=0B = 0。

定理

单位矩阵是唯一的

如果 EE 是一个 n×nn \times n 矩阵,而且对每个相容的 n×nn \times n 矩阵 AA 都满足

EA=AandAE=A,EA = A \qquad \text{and} \qquad AE = A,

那么就一定有 E=InE = I_n。

证明

为什么不可能存在第二个单位矩阵

取 A=InA = I_n。由 EE 的性质得到 EIn=InEI_n = I_n。但任何矩阵右乘 InI_n 都保 持不变,所以 EIn=EEI_n = E。因此 E=InE = I_n。

常见错误

常见错误

矩阵乘法不是逐项相乘

(AB)ik(AB)_{ik} 不是 aikbika_{ik}b_{ik}。它来自 AA 的第 ii 行与 BB 的第 kk 列。

常见错误

一个方向可乘,不代表反方向也可乘

若 AA 是 2×32 \times 3、BB 是 3×43 \times 4,则 ABAB 有定义,但 BABA 没有。不要自动把顺序反过来。

常见错误

列的观点是看右边因子的列

如果 B=[b1 b2]B=[b_1\ b_2],则 AB=[Ab1 Ab2]AB=[Ab_1\ Ab_2]。乘积的各列是 AA 的列的线性 组合,而权重来自 BB 的对应列。不要写成 AB=[a1b1 a2b2]AB=[a_1b_1\ a_2b_2];这并不 符合矩阵乘法的定义。

常见错误

二项式公式需要可交换假设

公式 (A+B)2=A2+2AB+B2(A+B)^2=A^2+2AB+B^2 对矩阵不是自动成立。真正展开是

(A+B)2=A2+AB+BA+B2.(A+B)^2=A^2+AB+BA+B^2.

只有在 AB=BAAB=BA 时,才可以把中间两项合并。

总结

若 AA 的大小为 m×nm \times n、BB 的大小为 n×pn \times p,则 ABAB 的大小 为 m×pm \times p;内侧维数不相等时,乘积没有定义。每个元素由 AA 的一行 与 BB 的一列计算,而列公式 AB=[Ab1 ⋯ Abp]AB=[Ab_1\ \cdots\ Ab_p] 则把同一运算理解为 多个矩阵乘向量的运算。因此,Ax=bAx=b 正好能把一个线性方程组写成一个对象。

单位矩阵不会改变大小相容的矩阵。矩阵乘法满足结合律与分配律,但结合律只允许 改变括号,并不允许调换因子;一般而言,AB≠BAAB\ne BA。最后,等式 Aek=col⁡k(A)Ae_k=\operatorname{col}_k(A) 表明矩阵对标准基的作用会逐列确定这个矩阵。 所以若对每个 x∈Rnx\in\mathbb{R}^n 都有 Ax=BxAx=Bx,则必有 A=BA=B。

快速检查

思考检查

若 AA 是 2×32 \times 3、BB 是 3×53 \times 5,那么 ABAB 的大小是什么?

先检查内侧大小,再读外侧大小。

解答 · 答案

ABAB 有定义,而且大小是 2×52 \times 5。

思考检查

把一个大小相容的矩阵乘上 InI_n,会发生什么?

用一句话回答。

解答 · 答案

矩阵保持不变。

思考检查

如果 BB 的列向量是 b1b_1 和 b2b_2,怎样读 ABAB 的各列?

请用列的观点回答。

解答 · 答案

ABAB 的各列分别是 Ab1Ab_1 和 Ab2Ab_2。

思考检查

展开 (5A−B)(2A+3B)(5A-B)(2A+3B) 时,BABA 的系数是多少?

请把 ABAB 与 BABA 当作不同项处理。

解答 · 答案

BABA 的系数是 −2-2,因为该项来自 −B(2A)-B(2A)。

练习

思考检查

为什么 Ax=bAx = b 可以同时代表多条方程?

请在答案中使用“行”这个字。

解答 · 答案

因为 AA 的每一行与列向量 xx 配对后都会产生一条方程,所以 AxAx 会把整个方程组一起打包。

思考检查

为什么 Ax=0Ax = 0 不论 AA 是什么,都至少有一个解?

把 xx 看成列向量来回答。

解答 · 引导解答

取零向量 x=0x = 0。由于 A0A0 的每个元素都是把 00 的元素做线性组合,所 以全部都是 00。因此 A0=0A0 = 0,齐次系统永远至少有平凡解。

思考检查

为什么有时 ABAB 有定义,但 BABA 却没有定义?

请用内侧大小条件作答。

解答 · 引导解答

ABAB 有定义,要求 AA 的列数等于 BB 的行数;而 BABA 有定义,要求 BB 的列数等于 AA 的行数。这两个条件不同,所以一个方向可以做,反方向 未必可以做。

思考检查

令 AA、BB 为上面含未知数例题中的矩阵。若 ABAB 的第一列是 [1,3]T[1,3]^T,求 aa 和 bb。

只使用第一列给出的方程。

解答 · 引导解答

ABAB 的第一列给出

a+b+5=1,a+2b+1=3.a+b+5=1, \qquad a+2b+1=3.

所以

a+b=−4,a+2b=2.a+b=-4, \qquad a+2b=2.

相减得 b=6b=6,再代入 a+b=−4a+b=-4 得 a=−10a=-10。

思考检查

如果 AA 的第一行是 (4,−1,2)(4, -1, 2),而 x=(x1,x2,x3)Tx = (x_1, x_2, x_3)^T,那么 AxAx 的第一个元素是什么?

请直接用行乘列规则写出。

解答 · 引导解答

第一个元素是 4x1−x2+2x34x_1 - x_2 + 2x_3。

相关笔记

本节建立在 2.1 矩阵基础 之上。 下一节可读 3.3 转置、对称矩阵与反对称矩阵, 或直接跳到 5.1 可逆矩阵。

练习

先自行作答,再检查答案。你可以修改后重试。

加载中…

本单元重点词汇