Evanalysis
3.1嵌入式互动预计阅读时间: 11 分钟

3.1 矩阵乘法与单位矩阵

理解何时可以做矩阵乘法、行乘列规则怎样运作,以及单位矩阵为何对方程组与逆矩阵重要。

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

为什么矩阵乘法比加法微妙

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

定义

矩阵乘积何时有定义

AAm×nm \times n 矩阵,BBn×pn \times p 矩阵,则乘积 AB 有定义,且结果是 m×pm \times p 矩阵。

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

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

行乘列规则

定义

矩阵乘法

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

AB(i,k) 元素为

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

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

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

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

例题

细算一个矩阵乘积

A=[1231],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,所以 AB 有定义。其元素为

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

因此

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

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

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

A=[121315],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+2x2x33x1x2+5x3].Ax = \begin{bmatrix} x_1 + 2x_2 - x_3 \\ 3x_1 - x_2 + 5x_3 \end{bmatrix}.

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

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

定义

单位矩阵

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

例如

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=[2143],A = \begin{bmatrix} 2 & -1 \\ 4 & 3 \end{bmatrix},

AI2=[2143][1001]=[2143].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 的第二列。

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

乘法一般不交换

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

ABBAAB \ne 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 的对应列向量。

矩阵乘法其实表示复合

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

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

(AB)x.(AB)x.

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

定理

结合律对应重复复合

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

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

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

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

RnR^n 中,eke_k 是第 k 个位置等于 1、其余位置都为 0 的向量。 如果 AAm×nm \times n 矩阵,那么 AekAe_k 就恰好是 AA 的第 k 列。

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

同一个 sanity check 也适用于零矩阵。如果右边矩阵每一列都是零向量,那么乘积 的每一列也都会变成零向量,所以任何大小相容的 A0 都一定是零矩阵。

最先要记住的代数法则

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

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

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).

零矩阵是最简单的 sanity check。若 0 是大小相容的零矩阵,就有

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

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

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

例题

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

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

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

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

所以矩阵乘法与实数乘法不同:AB=0AB = 0 并不推出 A=0A = 0B=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

证明

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

常见错误

常见错误

矩阵乘法不是逐项相乘

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

常见错误

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

AA2×32 \times 3BB3×43 \times 4,则 AB 有定义,但 BA 没有。不要自动把顺序反过来。

快速检查

快速检查

AA2×32 × 3BB3×53 × 5,那么 AB 的大小是什么?

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

解答

答案

快速检查

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

用一句话回答。

解答

答案

快速检查

如果 BB 的列向量是 b1b_1b2b_2,怎样读 AB 的各列?

请用列的观点回答。

解答

答案

练习

快速检查

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

x 看成列向量来回答。

解答

引导解答

快速检查

为什么有时 AB 有定义,但 BA 却没有定义?

请用内侧大小条件作答。

解答

引导解答

相关笔记

本节建立在 2.1 矩阵基础 之上。 下一节可读 3.2 转置与特殊矩阵, 或直接跳到 5.1 可逆矩阵

本节掌握 checkpoint

要完成这一节 checkpoint,需要把每一题答对。 答对进度: 0%.

技能点: matrix-multiplication, dimensions

若 A 是 2×3 而 B 是 3×4,AB 的大小是什么?

已用尝试次数: 0

剩余尝试次数: 不限尝试次数

预览不会消耗尝试次数。

提交会记录一次正式评分尝试。

技能点: matrix-multiplication, row-by-column

设 A = [[1,2],[3,4]]、B = [[0,5],[1,-1]]。填空:AB 的 (1,2) 元素是 ____。

已用尝试次数: 0

剩余尝试次数: 不限尝试次数

预览不会消耗尝试次数。

提交会记录一次正式评分尝试。

输入格式提示: 请输入一个纯量。

技能点: identity-matrix, matrix-multiplication

哪一项最能描述单位矩阵的作用?

已用尝试次数: 0

剩余尝试次数: 不限尝试次数

预览不会消耗尝试次数。

提交会记录一次正式评分尝试。

本单元重点词汇