© 2015-2020 Jacob Ström、Kalle Åström 与 Tomas Akenine-Möller

正在加载并构建本章……

第 6 章:矩阵





让我们进入矩阵的世界。
6.1 引言


矩阵是处理数据的强大工具。正如交互式图解 6.1 所示,矩阵能够以不同方式变换图像。 介绍完相关理论后,我们还会回到这个例子。
交互式图解 6.1: 图像中的每个像素(pixel,即 picture element“图像元素”的缩写)都包含三个颜色分量: 红色分量 $r$、绿色分量 $g$ 和蓝色分量 $b$。因此,每个像素都可表示为一个 (列)向量 $\vc{p} = \left( \begin{smallmatrix} r \\ g \\ b \end{smallmatrix} \right)$。 图注下方的 $\mx{M}$ 是一个 $3\times 3$ 矩阵。它左乘左侧图像中每个像素的颜色向量 $\vc{p}$,得到右侧图像中的新颜色;改变 $\mx{M}$ 的元素,右侧图像也随之改变。 你可以试试以下矩阵: $\left( \begin{smallmatrix} 1 & 1 & 1 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end{smallmatrix} \right)$、 $\left( \begin{smallmatrix} 0.3 & 0.6 & 0.1 \\ 0.3 & 0.6 & 0.1\\ 0.3 & 0.6 & 0.1 \end{smallmatrix} \right)$, 以及 $\left( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{smallmatrix} \right)$,当然也可以自行构造矩阵。
交互式图解 6.1: 图像中的每个像素(pixel,即 picture element“图像元素”的缩写)都包含三个颜色分量: 红色分量 $\hid{r}$、绿色分量 $\hid{g}$ 和蓝色分量 $\hid{b}$。因此,每个像素都可表示为一个 (列)向量 $\hid{\vc{p} = \left( \begin{smallmatrix} r \\ g \\ b \end{smallmatrix} \right)}$。 图注下方的 $\hid{\mx{M}}$ 是一个 $\hid{3\times 3}$ 矩阵。它左乘左侧图像中每个像素的颜色向量 $\hid{\vc{p}}$,得到右侧图像中的新颜色;改变 $\hid{\mx{M}}$ 的元素,右侧图像也随之改变。 你可以试试以下矩阵: $\hid{\left( \begin{smallmatrix} 1 & 1 & 1 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end{smallmatrix} \right)}$、 $\hid{\left( \begin{smallmatrix} 0.3 & 0.6 & 0.1 \\ 0.3 & 0.6 & 0.1\\ 0.3 & 0.6 & 0.1 \end{smallmatrix} \right)}$, 以及 $\hid{\left( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{smallmatrix} \right)}$,当然也可以自行构造矩阵。
矩阵 $\mx{M}$:
第 6.10 节中,我们会再次讨论这个导论例子。 现在先从矩阵的定义入手,再来看它有哪些用法。
6.2 定义


正如第 5 章所见,一个典型的线性方程组可以写成
\begin{equation} \begin{cases} \begin{array}{rrrl} 2 & \!\!\!\!\!\! x_1 + 4 &\!\!\!\!\!\!\!x_2 - 2 &\!\!\!\!\!\!x_3 = \hid{-}16, \\ - & \!\!\!\!\!\! x_1 - 7 &\!\!\!\!\!\!x_2 + 2 &\!\!\!\!\!\!x_3 = -27, \\ & 3 &\!\!\!\!\!\!x_2 - 6 &\!\!\!\!\!\!x_3 = -21. \\ \end{array} \end{cases} \end{equation} (6.1)
等号左边有若干常数,分别与 $x_1$、$x_2$ 或 $x_3$ 相乘。我们可以把这些常数抽取出来, 放入一种称为矩阵的结构中。 对式 (6.1),得到
\begin{equation} \left(\begin{array}{rrr} 2 & 4 & -2 \\ -1 & -7 & 2 \\ 0 & 3 & -6 \end{array}\right) . \end{equation} (6.2)
可以看到,这组数的外面括着一对大圆括号。上面矩阵的大小为 $3\times 3$, 即 3 行 3 列。一般而言,矩阵可以具有任意大小。 由此得到下面的定义。

定义 6.1: 矩阵
矩阵 $\mx{A}$ 是由标量 $a_{ij}$ 排成的二维阵列,含 $r$ 行、$c$ 列,例如
\begin{equation} \left( \begin{array}{cccc} a_{11} & a_{12} & \dots & a_{1c} \\ a_{21} & a_{22} & \dots & a_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ a_{r1} & a_{r2} & \dots & a_{rc} \end{array} \right). \end{equation} (6.3)
该矩阵的大小为 $r \times c$,即行数乘列数。 若 $r=c$,则称其为方阵。 矩阵 $\mx{A}$ 的元素可简记为 $[ a_{ij} ]$;如后文所见,这种记法便于描述矩阵运算。
矩阵用粗体大写字母表示,例如 $\mx{A}$;与此前一样,标量用小写斜体字母 $a_{ij}$ 表示, 其中 $i$ 是该元素所在的行,$j$ 是所在的列。 有时单独取出一列或一行标量会很方便。对 $r \times c$ 矩阵 $\mx{A}$, 共有 $r$ 个不同的行向量和 $c$ 个不同的列向量。 矩阵 $\mx{A}$ 的列向量
\begin{align} \mx{A}=& \left( \begin{array}{rrr} 2 & 4 & -2 \\ -1 & -7 & 2 \\ 0 & 3 & -6 \end{array} \right) = \left( \begin{array}{ccc} \vert & \vert & \vert \\ \vc{a}_{,1} & \vc{a}_{,2} & \vc{a}_{,3} \\ \vert & \vert & \vert \end{array} \right), \\ &\\ &\\ &\text{其中 } \vc{a}_{,1} = \left( \begin{array}{rrr} 2 \\ -1\\ 0 \end{array} \right), \ \ \vc{a}_{,2} = \left( \begin{array}{rrr} 4 \\ -7\\ 3 \end{array} \right), \ \ \text{以及 } \vc{a}_{,3} = \left( \begin{array}{rrr} -2 \\ 2\\ -6 \end{array} \right). \end{align} (6.4)
线($\vert$)用来说明 $\vc{a}_{,i}$ 是沿矩阵上下方向延伸的列向量。 相应的行向量
\begin{align} \mx{A}=& \left( \begin{array}{rrr} 2 & 4 & -2 \\ -1 & -7 & 2 \\ 0 & 3 & -6 \end{array} \right) = \left( \begin{array}{c} -\,\,\, \vc{a}_{1,}^\T - \\ -\,\,\, \vc{a}_{2,}^\T - \\ -\,\,\, \vc{a}_{3,}^\T - \end{array} \right), \\ &\text{其中 } \vc{a}_{1,} = \left( \begin{array}{rrr} 2 \\ 4\\ -2 \end{array} \right), \ \ \vc{a}_{2,} = \left( \begin{array}{rrr} -1 \\ -7\\ 2 \end{array} \right), \ \ \text{以及 } \vc{a}_{3,} = \left( \begin{array}{rrr} 0 \\ 3\\ -6 \end{array} \right). \end{align} (6.5)
本书默认向量均为列向量,因此要将上面的 $\vc{a}_{i,}$ 转置为行向量。 横线($-$)用来说明 $\vc{a}_{i,}^\T$ 是沿矩阵左右方向延伸的行向量。 这与我们用小写粗体字母表示向量的约定一致。下面的定义概括了这种记法。

定义 6.2: 矩阵的行向量与列向量
第 $i$ 个 行向量 记作 $\vc{a}_{i,}^\T$;对于 $r\times c$ 矩阵 $\mx{A}$,它含有 $c$ 个标量元素。
第 $i$ 个 列向量 记作 $\vc{a}_{,i}$,其中含有 $r$ 个标量元素。因此,矩阵可以用向量写成以下两种形式:
\begin{equation} \mx{A} = \bigl(\vc{a}_{,1} \,\,\, \vc{a}_{,2} \,\,\,\dots\,\,\, \vc{a}_{,c}\bigr) = \left( \begin{array}{c} \vc{a}_{1,}^\T\\ \vc{a}_{2,}^\T\\ \vdots \\ \vc{a}_{r,}^\T\\ \end{array} \right). \end{equation} (6.6)
在上面的定义中,我们省略了竖线和横线(如 (6.5) 以及 (6.4) 中所示), 在式 (6.6)中不再写出。 请注意,行向量记作 $\vc{a}_{i,}^\T$,也就是把列向量 $\vc{a}_{i,}$ 转置为行向量

还有两个特殊的常量矩阵:记作 $\mx{I}$ 的单位矩阵和记作 $\mx{O}$ 的零矩阵。 前者的作用类似普通代数中的数 1,后者则类似数 0。

定义 6.3: 单位矩阵
大小为 $n \times n$ 的单位矩阵 $\mx{I}$,除从左上角延伸到右下角的主对角线上均为 1 外,其余元素全为 0,即
\begin{equation} \mx{I} = \left( \begin{array}{cccc} 1 & 0 & \dots & 0 \\ 0 & 1 & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & 1 \end{array} \right). \end{equation} (6.7)
因此,$2 \times 2$ 单位矩阵为 $\mx{I} =\bigl( \begin{smallmatrix} 1 & 0\\ 0 & 1\end{smallmatrix} \bigr)$, 而 $3\times 3$ 单位矩阵为 $\mx{I} =\Bigl( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1\end{smallmatrix} \Bigr)$。可以看到,两者都记作 $\mx{I}$。 接下来定义零矩阵。

定义 6.4: 零矩阵
零矩阵 $\mx{O}$ 的所有元素均为零。
多数情况下,$\mx{I}$ 和 $\mx{O}$ 的大小可由上下文确定;若无法确定,我们会明确说明其大小。

还要注意,若矩阵 $\mx{A}$ 只有一列,即 $c=1$,它就是一个列向量,也可直接记作向量 $\vc{a}$。 若矩阵 $\mx{B}$ 只有一行,即 $r=1$,它就是一个行向量,也可记作列向量的转置 $\vc{b}^\T$。下面给出一个 $3\times 1$ 矩阵(列向量)和一个 $1\times 3$ 矩阵(行向量),后者写成列向量的转置。
\begin{equation} \underbrace{ \mx{A} }_{3\times 1} = \left( \begin{array}{c} 3 \\ 2 \\ 6 \end{array} \right) = \underbrace{\vc{a}}_{\begin{array}{c} \text{列} \\ \text{向量} \end{array}} ,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \underbrace{ \mx{B} }_{1\times 3} = \bigl(5\,\,\, 1 \,\,\, 4\bigr) = \underbrace{ \vc{b}^\T }_{\begin{array}{c} \text{转置后的} \\ \text{列} \\ \text{向量} \end{array}} \end{equation} (6.8)
有时直接把行向量写成一行,比写成列向量的转置更自然;采用哪种写法由读者自行选择。

正如第 2 章所见,向量可以转置: 列向量转置后成为行向量,反之亦然。矩阵同样可以转置,定义如下。

定义 6.5: 矩阵转置
$r\times c$ 矩阵 $\mx{A}=[a_{ij}]$ 的转置记作 $\mx{A}^\T$(大小为 $c\times r$), 它把 $\mx{A}$ 的列变为 $\mx{A}^\T$ 的行(等价地,把行变为列)。 用矩阵简记法可表示为
\begin{equation} \mx{A}^\T = [a_{ji}]. \end{equation} (6.9)
注意,下标顺序由 $ij$ 变为 $ji$。
若一个方阵沿主对角线(从左上到右下)翻折后保持不变,则称其为对称矩阵。定义如下。

定义 6.6: 对称矩阵
若方阵满足 $\mx{A}=\mx{A}^\T$,则称其为对称矩阵。
下面给出几个矩阵转置的例子。

例 6.1: 矩阵转置
设有以下矩阵:
\begin{equation} \mx{A}= \left( \begin{array}{rrr} 1 & 6 & 5 \\ 6 & 2 & 4 \\ 5 & 4 & 3 \end{array} \right) ,\spc\spc \mx{B}= \left( \begin{array}{rr} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{array} \right) ,\spc\spc \mx{C}=\bigl(1\,\,\, 2\,\,\, 3 \bigr). \end{equation} (6.10)
它们的转置分别为
\begin{equation} \mx{A}^\T= \left( \begin{array}{rrr} 1 & 6 & 5 \\ 6 & 2 & 4 \\ 5 & 4 & 3 \end{array} \right) ,\spc\spc \mx{B}^\T= \left( \begin{array}{rrr} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right) ,\spc\spc \mx{C}^\T= \left( \begin{array}{c} 1 \\ 2 \\ 3 \end{array} \right) \end{equation} (6.11)
注意 $\mx{A}=\mx{A}^\T$,因此 $\mx{A}$ 是对称矩阵(定义 6.6)。 还应注意,$\mx{B}$ 的大小为 $3\times 2$,而 $\mx{B}^\T$ 的大小为 $2\times 3$;这正是转置时行变为列的结果。 最后,$\mx{C}$ 只有一行,转置后的 $\mx{C}^\T$ 则只有一列, 这与列向量转置后成为行向量完全相同。
有了这些定义,现在可以尝试从几何角度把矩阵可视化。我们所见的教材中鲜少采用这种方式, 但它在某些情形下有助于深化理解。请看交互式图解 6.2
交互式图解 6.2: 本交互式图解把 $2\times 2$ 矩阵 $\mx{A}$ 可视化为构成它的两个列向量 $\vc{a}_{,1}$ 和 $\vc{a}_{,2}$,即 $\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$。 图中的列向量可以移动。作为练习,请试着构造单位矩阵 $\bigl( \begin{smallmatrix} 1 & 0\\ 0 & 1 \end{smallmatrix} \bigr)$。 现在按前进,看看 $3\times 3$ 矩阵可以是什么样子。
交互式图解 6.2: 这里展示 $\hid{3\times 3}$ 矩阵 $\hid{\mx{A}}$ 的三个列向量:$\hid{\textcolor{#aa0000}{\vc{a}_{,1}}}$、 $\hid{\textcolor{#00aa00}{\vc{a}_{,2}}}$, 以及 $\hid{\textcolor{#0000aa}{\vc{a}_{,3}}}$。 灰色虚线只用于帮助辨认各向量在三维空间中的位置。 同样,作为练习,你可以尝试移动这些向量,使其组成单位矩阵 $\hid{\Bigl( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{smallmatrix} \Bigr)}$。 按住鼠标右键并移动鼠标,或在平板上用双指滑动,即可改变观察视角。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\textcolor{#0000aa}{\vc{a}_{,3}}$
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \\ \hid{1} \end{array}\right)$
下面介绍几种矩阵运算。
6.3 矩阵运算


矩阵有三种基本运算: 下面各小节将分别介绍。

6.3.1 矩阵的数乘



矩阵的数乘与向量的数乘(第 2.3 节)十分相似,如下所定义。

定义 6.7: 矩阵的数乘
矩阵 $\mx{A}$ 与标量 $k$ 相乘,得到与 $\mx{A}$ 大小相同的新矩阵 $\mx{S} = k \mx{A}$。
\begin{equation} \mx{S}= \left( \begin{array}{cccc} s_{11} & s_{12} & \dots & s_{1c} \\ s_{21} & s_{22} & \dots & s_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ s_{r1} & s_{r2} & \dots & s_{rc} \end{array} \right) = \left( \begin{array}{cccc} k a_{11} & k a_{12} & \dots & k a_{1c} \\ k a_{21} & k a_{22} & \dots & k a_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ k a_{r1} & k a_{r2} & \dots & k a_{rc} \end{array} \right) \end{equation} (6.12)
更紧凑地写为: $[ s_{ij} ] = k[ a_{ij} ] = [ k a_{ij} ]$。
下面给出一个矩阵数乘的简短例子。

例 6.2: 矩阵的数乘
设 $2\times 2$ 矩阵 $\mx{A}$ 为
\begin{equation} \mx{A}= \left( \begin{array}{rr} 5 & -2 \\ 3 & 8 \end{array} \right). \end{equation} (6.13)
将该矩阵乘以标量 $k=4$,得到
\begin{equation} k\mx{A}=4 \left( \begin{array}{rr} 5 & -2 \\ 3 & 8 \end{array} \right) = \left( \begin{array}{rr} 4\cdot 5 & 4\cdot (-2) \\ 4\cdot 3 & 4\cdot 8 \end{array} \right) = \left( \begin{array}{rr} 20 & -8 \\ 12 & 32 \end{array} \right). \end{equation} (6.14)

6.3.2 矩阵加法



矩阵加法也与向量加法第 2.2 节)相似。

定义 6.8: 矩阵加法
若矩阵 $\mx{A}$ 和 $\mx{B}$ 大小相同,则两者可以相加,得到同样大小的新矩阵 $\mx{S}=\mx{A} + \mx{B}$。其中每个元素 $s_{ij}$ 都是 $\mx{A}$ 与 $\mx{B}$ 中同一位置元素之和,即
\begin{equation} \mx{S}= \left( \begin{array}{cccc} s_{11} & s_{12} & \dots & s_{1c} \\ s_{21} & s_{22} & \dots & s_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ s_{r1} & s_{r2} & \dots & s_{rc} \end{array} \right) = \left( \begin{array}{cccc} a_{11}+b_{11} & a_{12}+b_{12} & \dots & a_{1c}+b_{1c} \\ a_{21}+b_{21} & a_{22}+b_{22} & \dots & a_{2c}+b_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ a_{r1}+b_{r1} & a_{r2}+b_{r2} & \dots & a_{rc}+b_{rc} \end{array} \right). \end{equation} (6.15)
更紧凑地写为: $[ s_{ij} ] = [ a_{ij} ] + [ b_{ij} ] = [ a_{ij} + b_{ij} ]$。
借助定义 6.7(矩阵的数乘)和矩阵加法的定义,我们可以很容易地计算两个矩阵之差。 $\mx{A}$ 与 $\mx{B}$ 的差矩阵 $\mx{D}$ 为
\begin{gather} \mx{D} = \mx{A} + (-1)\mx{B} = \mx{A} - \mx{B} \\ \Longleftrightarrow \\ [d_{ij}] = [a_{ij}]+ (-1)[b_{ij}] = [a_{ij}]+ [-b_{ij}] = [a_{ij} - b_{ij}], \end{gather} (6.16)
第一行中使用了数乘(乘以 $-1$)和矩阵加法。

下面给出一个矩阵加法的简短例子。

例 6.3: 矩阵加法
设有两个 $2\times 2$ 矩阵 $\mx{A}$ 和 $\mx{B}$:
\begin{equation} \mx{A}= \left( \begin{array}{rr} 5 & -2 \\ 3 & 8 \end{array} \right) \,\,\,\,\,\,\text{以及}\,\,\,\,\,\, \mx{B}= \left( \begin{array}{rr} -1 & 2 \\ 4 & -6 \end{array} \right). \end{equation} (6.17)
矩阵之和 $\mx{S}=\mx{A}+\mx{B}$ 为
\begin{equation} \mx{S}=\mx{A}+\mx{B}= \left( \begin{array}{rr} 5 & -2 \\ 3 & 8 \end{array} \right) + \left( \begin{array}{rr} -1 & 2 \\ 4 & -6 \end{array} \right) = \left( \begin{array}{rr} 5-1 & -2+2 \\ 3+4 & 8-6 \end{array} \right) = \left( \begin{array}{rr} 4 & 0 \\ 7 & 2 \end{array} \right). \end{equation} (6.18)

6.3.3 矩阵乘法



矩阵的数乘和加法都相当直观,而矩阵乘法初看起来可能并非如此。 但正如后文所见,它是一种极为强大的工具。定义如下。

定义 6.9: 矩阵乘法
若 $\mx{A}$ 是 $r \times s$ 矩阵,$\mx{B}$ 是 $s\times t$ 矩阵,则它们的积 $\mx{P}=\mx{A}\mx{B}$ 是一个 $r \times t$ 矩阵,定义为
\begin{align} \mx{P} =& \mx{A}\mx{B} = \left( \begin{array}{ccc} a_{11} & \dots & a_{1s} \\ \vdots & \ddots & \vdots \\ a_{r1} & \dots & a_{rs} \end{array} \right) \left( \begin{array}{ccc} b_{11} & \dots & b_{1t} \\ \vdots & \ddots & \vdots \\ b_{s1} & \dots & b_{st} \end{array} \right)\\ &\\ =& \left( \begin{array}{ccc} \sum_{k=1}^s a_{1k} b_{k1} & \dots & \sum_{k=1}^s a_{1k} b_{kt} \\ \vdots & \ddots & \vdots \\ \sum_{k=1}^s a_{rk} b_{k1} & \dots & \sum_{k=1}^s a_{rk} b_{kt} \end{array} \right) = \left( \begin{array}{ccc} p_{11} & \dots & p_{1t} \\ \vdots & \ddots & \vdots \\ p_{r1} & \dots & p_{rt} \end{array} \right). \end{align} (6.19)
注意,$\mx{A}$ 的列数必须等于 $\mx{B}$ 的行数,否则矩阵乘法无定义。矩阵乘法可更紧凑地写成 $\bigl[p_{ij}\bigr]=\Bigl[\sum_{k=1}^s a_{ik}b_{kj}\Bigr]$。
可以用下面的规则方便地记住乘积矩阵的大小:
\begin{equation} (r \times \bcancel{s})\, (\bcancel{s} \times t) \longrightarrow (r \times t), \end{equation} (6.20)
即只保留第一个因子的行数 $r$ 和第二个因子的列数 $t$; 第一个因子的列数 $s$ 必须等于第二个因子的行数 $s$。

乘积中的求和 $\sum_{k=1}^s a_{ik} b_{kj}$ 很像标准正交下的点积定义 3.4)。因此,利用定义 6.2,矩阵乘法可以用 $\mx{A}$ 的行向量与 $\mx{B}$ 的列向量表示为
\begin{align} \mx{P} = \mx{A}\mx{B} &= \left( \begin{array}{c} -\,\,\, \vc{a}_{1,}^\T - \\ \textcolor{#cc0000}{-}\,\,\, \textcolor{#cc0000}{\vc{a}_{2,}^\T} \textcolor{#cc0000}{-} \\ \vdots \\ -\,\,\, \vc{a}_{r,}^\T - \end{array} \right) \left( \begin{array}{ccccc} \vert & \vert & \textcolor{#cc0000}{\vert} & & \vert \\ \vc{b}_{,1} & \vc{b}_{,2} & \textcolor{#cc0000}{\vc{b}_{,3}} & \dots & \vc{b}_{,t} \\ \vert & \vert & \textcolor{#cc0000}{\vert} & & \vert \end{array} \right) \\ &\\ &= \left( \begin{array}{ccccc} \vc{a}_{1,}\cdot \vc{b}_{,1} & \vc{a}_{1,}\cdot \vc{b}_{,2} & \vc{a}_{1,}\cdot \vc{b}_{,3} & \dots & \vc{a}_{1,}\cdot \vc{b}_{,t} \\ \vc{a}_{2,}\cdot \vc{b}_{,1} & \vc{a}_{2,}\cdot \vc{b}_{,2} & \textcolor{#cc0000}{\vc{a}_{2,}\cdot \vc{b}_{,3}} & \dots & \vc{a}_{2,}\cdot \vc{b}_{,t} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \vc{a}_{r,}\cdot \vc{b}_{,1} & \vc{a}_{r,}\cdot \vc{b}_{,2} & \vc{a}_{r,}\cdot \vc{b}_{,3} & \dots & \vc{a}_{r,}\cdot \vc{b}_{,t} \\ \end{array} \right). \end{align} (6.21)
从上面标红的向量可以看出,$\mx{P}$ 第 $i$ 行第 $j$ 列的元素, 等于 $\mx{A}$ 的第 $i$ 个行向量与 $\mx{B}$ 的第 $j$ 个列向量点积,即
\begin{equation} [p_{ij}] = \Biggl[\sum_{k=1}^s a_{ik} b_{kj}\Biggr] = \bigl[ \vc{a}_{i,} \cdot \vc{b}_{,j} \bigr], \end{equation} (6.22)
用简记法表示。若稍微放宽矩阵的概念,把 $\vc{a}_{i,}^\T$ 看作 $1\times s$ 矩阵,把 $\vc{b}_{,j}$ 看作 $s\times 1$ 矩阵,则可将 式 (6.22) 改写成矩阵乘法,即
\begin{equation} [p_{ij}] = \Biggl[ \sum_{k=1}^s a_{ik} b_{kj} \Biggr] = \biggl[ \vc{a}_{i,}^\T \vc{b}_{,j} \biggr] = \Biggl[ \Bigl(a_1\spc a_2 \dots a_s \Bigr) \left( \begin{array}{c} b_1\\ b_2\\ \vdots\\ b_s \end{array} \right) \Biggr]. \end{equation} (6.23)

例 6.4: 矩阵乘法
本例将 $3 \times 2$ 矩阵 $\mx{M}$ 与 $2\times 3$ 矩阵 $\mx{N}$ 相乘,即
\begin{gather} \mx{M} = \left( \begin{array}{rr} 4 & 2 \\ 3 & -2 \\ 0 & -1 \end{array} \right) ,\,\,\,\,\,\, \mx{N} = \left( \begin{array}{rrr} 2 & 1 & 3 \\ -1 & 5 & 8 \\ \end{array} \right) \\ \, \\ \mx{M}\mx{N} = \left( \begin{array}{rr} \textcolor{#00aaaa}{4} & \textcolor{#00aaaa}{2} \\ \textcolor{#aaaa00}{3} & \textcolor{#aaaa00}{-2} \\ \textcolor{#aa00aa}{0} & \textcolor{#aa00aa}{-1} \end{array} \right) \left( \begin{array}{rrr} \textcolor{#cc0000}{2} & \textcolor{#00cc00}{1} & \textcolor{#0000cc}{3} \\ \textcolor{#cc0000}{-1} & \textcolor{#00cc00}{5} & \textcolor{#0000cc}{8} \\ \end{array} \right) = \\ \, \\ \left( \begin{array}{rrr} \textcolor{#00aaaa}{4} \cdot \textcolor{#cc0000}{2} + \textcolor{#00aaaa}{2}\cdot (\textcolor{#cc0000}{-1}) & \textcolor{#00aaaa}{4} \cdot \textcolor{#00cc00}{1} + \textcolor{#00aaaa}{2}\cdot \textcolor{#00cc00}{5} & \textcolor{#00aaaa}{4} \cdot \textcolor{#0000cc}{3} + \textcolor{#00aaaa}{2}\cdot \textcolor{#0000cc}{8} \\ \textcolor{#aaaa00}{3} \cdot \textcolor{#cc0000}{2} + \textcolor{#aaaa00}{-2}\cdot (\textcolor{#cc0000}{-1}) & \textcolor{#aaaa00}{3} \cdot \textcolor{#00cc00}{1} + \textcolor{#aaaa00}{-2}\cdot \textcolor{#00cc00}{5} & \textcolor{#aaaa00}{3} \cdot \textcolor{#0000cc}{3} + \textcolor{#aaaa00}{-2}\cdot \textcolor{#0000cc}{8} \\ \textcolor{#aa00aa}{0} \cdot \textcolor{#cc0000}{2} + \textcolor{#aa00aa}{-1}\cdot (\textcolor{#cc0000}{-1}) & \textcolor{#aa00aa}{0} \cdot \textcolor{#00cc00}{1} + \textcolor{#aa00aa}{-1}\cdot \textcolor{#00cc00}{5} & \textcolor{#aa00aa}{0} \cdot \textcolor{#0000cc}{3} + \textcolor{#aa00aa}{-1}\cdot \textcolor{#0000cc}{8} \end{array} \right) = \\ \, \\ \left( \begin{array}{rrr} 6 & 14 & 28 \\ 8 & -7 & -7 \\ 1 & -5 & -8 \end{array} \right). \end{gather} (6.24)
为便于看清计算过程,这里给 $\mx{M}$ 的各行和 $\vc{N}$ 的各列分别着色。 乘积的大小为(见规则 (6.20)): $(3 \times \bcancel{2})\, (\bcancel{2} \times 3) \longrightarrow (3 \times 3)$,因此结果是 $3\times 3$ 矩阵。
根据定义 6.9,只有当 $\mx{M}$ 为 $r \times s$、$\mx{N}$ 为 $s\times t$ 时,乘积 $\mx{M}\mx{N}$ 才有定义。 也就是说,$\mx{M}$ 的列数 $s$ 必须等于 $\mx{N}$ 的行数 $s$,而 $r$ 和 $t$ 可取任意不小于 1 的值。 若 $t=1$,$\mx{N}$ 只有一列,与其说它是矩阵,不如说它是列向量, 如式 (6.8) 所示。因此,矩阵与向量的乘法是矩阵乘法的特殊情形。下面给出一个例子。

例 6.5: 矩阵与向量相乘
本例将 $3\times 3$ 矩阵 $\mx{M}$ 与三维向量 $\vc{v}$ 相乘,即
\begin{gather} \mx{M} = \left( \begin{array}{rrr} 1 & 0 & 2 \\ 2 & -1 & 3 \\ 4 & -2 & -3 \end{array} \right) ,\,\,\,\,\,\, \vc{v} = \left( \begin{array}{r} -4\\ 5 \\ 6 \end{array} \right) \\ \, \\ \mx{M}\vc{v} = \left( \begin{array}{rrr} \textcolor{#00aaaa}{1} & \textcolor{#00aaaa}{0} & \textcolor{#00aaaa}{2} \\ \textcolor{#aaaa00}{2} & \textcolor{#aaaa00}{-1} & \textcolor{#aaaa00}{3} \\ \textcolor{#aa00aa}{4} & \textcolor{#aa00aa}{-2} & \textcolor{#aa00aa}{-3} \end{array} \right) \left( \begin{array}{r} \textcolor{#cc0000}{-4}\\ \textcolor{#00cc00}{5} \\ \textcolor{#0000cc}{6} \end{array} \right) = \left( \begin{array}{r} \textcolor{#00aaaa}{1} \cdot (\textcolor{#cc0000}{-4}) + \textcolor{#00aaaa}{0}\cdot \textcolor{#00cc00}{5} + \textcolor{#00aaaa}{2} \cdot \textcolor{#0000cc}{6}\\ \textcolor{#aaaa00}{2} \cdot (\textcolor{#cc0000}{-4}) + \textcolor{#aaaa00}{- 1}\cdot \textcolor{#00cc00}{5} + \textcolor{#aaaa00}{3} \cdot \textcolor{#0000cc}{6}\\ \textcolor{#aa00aa}{4} \cdot (\textcolor{#cc0000}{-4}) + \textcolor{#aa00aa}{- 2}\cdot \textcolor{#00cc00}{5} + \textcolor{#aa00aa}{- 3} \cdot \textcolor{#0000cc}{6} \end{array} \right) = \left( \begin{array}{r} 8 \\ 5 \\ -44 \end{array} \right). \end{gather} (6.25)
为便于看清计算过程,这里给 $\mx{M}$ 的各行和 $\vc{v}$ 的各分量分别着色。 矩阵与向量的乘法和矩阵乘法完全相同,区别只在于第二个因子 $\vc{v}$ 只有一列。 乘积的大小为(见规则 (6.20)): $(3 \times \bcancel{3})\, (\bcancel{3} \times 1) \longrightarrow (3 \times 1)$,所以结果是一个 $3\times 1$ 矩阵,即三维列向量
注意,式 (6.1) 是一个线性方程组,可以用一个矩阵和两个向量表示为
\begin{gather} \begin{cases} \begin{array}{rrrl} 2 & \!\!\!\!\!\! x_1 + 4 &\!\!\!\!\!\!\!x_2 - 2 &\!\!\!\!\!\!x_3 = \hid{-}16 \\ - & \!\!\!\!\!\! x_1 - 7 &\!\!\!\!\!\!x_2 + 2 &\!\!\!\!\!\!x_3 = -27 \\ & 3 &\!\!\!\!\!\!x_2 - 6 &\!\!\!\!\!\!x_3 = -21 \\ \end{array} \end{cases} \\ \Longleftrightarrow \\ \underbrace{ \left( \begin{array}{rrr} 2 & 4 & -2 \\ -1 & -7 & 2 \\ 0 & 3 & -6 \end{array} \right) }_{\mx{A}} \, \underbrace{ \left( \begin{array}{c} x_1\\ x_2\\ x_3 \end{array} \right) }_{\vc{x}} = \underbrace{ \left( \begin{array}{r} -16\\ -27\\ -21 \end{array} \right) }_{\vc{b}} \\ \Longleftrightarrow \\ \mx{A} \vc{x} = \vc{b}. \end{gather} (6.26)
有了这些知识,我们便可以揭开矩阵乘法定义(定义 6.9)的来由。设有两个线性方程组
\begin{gather} \begin{cases} \begin{array}{r} z_1 = a_{11} y_1 + a_{12} y_2 \\ z_2 = a_{21} y_1 + a_{22} y_2 \end{array} \end{cases} \,\,\,\,\,\,\,\,\text{以及}\,\,\,\,\,\,\,\, \begin{cases} \begin{array}{r} y_1 = b_{11} x_1 + b_{12} x_2 \\ y_2 = b_{21} x_1 + b_{22} x_2 \end{array} \end{cases}. \end{gather} (6.27)
若想用 $x_1$、$x_2$ 而不是 $y_1$、$y_2$ 来表示 $z_1$、$z_2$,结果会怎样?代入并整理得
\begin{gather} \begin{cases} \begin{array}{r} z_1 = a_{11} (b_{11} x_1 + b_{12} x_2) + a_{12} (b_{21} x_1 + b_{22} x_2) \\ z_2 = a_{21} (b_{11} x_1 + b_{12} x_2) + a_{22} (b_{21} x_1 + b_{22} x_2) \end{array} \end{cases} \\ \Longleftrightarrow \\ \begin{cases} \begin{array}{r} z_1 = (a_{11} b_{11} + a_{12} b_{21}) x_1 + (a_{11} b_{12} + a_{12} b_{22}) x_2 \\ z_2 = (a_{21} b_{11} + a_{22} b_{21}) x_1 + (a_{21} b_{12} + a_{22} b_{22}) x_2 \end{array} \end{cases}. \end{gather} (6.28)
可以看到,$x_1$ 和 $x_2$ 前的系数正是矩阵 $\mx{A}$ 与 $\mx{B}$ 相乘所得的各项。式 (6.27)(6.28) 均可写成矩阵—向量形式:
\begin{gather} \vc{z}=\mx{A}\vc{y} \spc\spc\text{以及}\spc\spc \vc{y}=\mx{B}\vc{x} \\ \Longleftrightarrow \\ \vc{z}=\mx{A}\mx{B}\vc{x}, \end{gather} (6.29)
这便解释了矩阵乘法为何如此定义。

式 (6.21) 所示,在矩阵乘法 $\mx{A}\mx{B}$ 中,第一个因子可视为一组行向量, 第二个因子可视为一组列向量。我们刚刚看到,只要大小匹配,矩阵乘以向量仍得到向量。 因此,可以把第二个因子 $\mx{B}$ 看成一组由第一个因子 $\mx{A}$ 变换的列向量。表示为
\begin{align} \mx{P} = \mx{A}\mx{B} = \mx{A} \left( \begin{array}{ccc} \vert & & \vert \\ \vc{b}_{,1} & \dots & \vc{b}_{,t} \\ \vert & & \vert \end{array} \right) = \left( \begin{array}{ccc} \vert & & \vert \\ \mx{A}\vc{b}_{,1} & \dots & \mx{A}\vc{b}_{,t} \\ \vert & & \vert \end{array} \right). \end{align} (6.30)
也就是说,可以这样理解矩阵乘法:先取 $t$ 个列向量 $\vc{b}_{,1}\dots \vc{b}_{,t}$,逐个用 $\mx{A}$ 变换,再把所得向量依次作为乘积矩阵的列向量

下面给出一个把点积写成矩阵乘法的简单例子。

例 6.6: 把点积写成矩阵乘法
(列)向量 $\vc{v}$ 可写成只有一列的矩阵 $\mx{V}=(\vc{v})$, 因此向量 $\vc{u}$ 与 $\vc{v}$ 的点积也可以写成两个列向量(矩阵)的乘法:
\begin{gather} \vc{u} \cdot \vc{v} = \vc{u}^\T \vc{v} = \begin{pmatrix} u_1 & u_2 & \dots & u_n \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix} = \sum_{i=1}^n u_i v_i. \end{gather} (6.31)

例 6.7: 两千年前的中国问题
中国古代数学经典《九章算术》已经研究了线性方程组。 该书成书于公元前一、二世纪,其中第八章名为《方程》,收录了若干线性方程组问题。原站据此给出如下问题:

“5 只羊、4 只犬、3 只鸡、2 只兔共值 1496 钱;4 只羊、2 只犬、6 只鸡、3 只兔共值 1175 钱;3 只羊、1 只犬、7 只鸡、5 只兔共值 958 钱;2 只羊、3 只犬、5 只鸡、1 只兔共值 861 钱。问每种动物各值多少钱?”

为每种动物的价格引入变量:每只羊 $x_1$ 钱、每只犬 $x_2$ 钱、每只鸡 $x_3$ 钱、每只兔 $x_4$ 钱。四个条件可写为
\begin{equation} \begin{cases} \begin{array}{rrrrrrrl} 5 x_1 & \bfm + & \bfm 4 x_2 & \bfm + & \bfm 3 x_3 & \bfm + & \bfm 2 x_4 & \bfm = 1496, \\ 4 x_1 & \bfm + & \bfm 2 x_2 & \bfm + & \bfm 6 x_3 & \bfm + & \bfm 3 x_4 & \bfm = 1175, \\ 3 x_1 & \bfm + & \bfm x_2 & \bfm + & \bfm 7 x_3 & \bfm + & \bfm 5 x_4 & \bfm = 958, \\ 2 x_1 & \bfm + & \bfm 3 x_2 & \bfm + & \bfm 5 x_3 & \bfm + & \bfm x_4 & \bfm = 861. \\ \end{array} \end{cases} \end{equation} (6.32)
这可改写成矩阵—向量形式:
\begin{gather} \underbrace{ \begin{pmatrix} 5 & 4 & 3 & 2 \\ 4 & 2 & 6 & 3 \\ 3 & 1 & 7 & 5 \\ 2 & 3 & 5 & 1 \\ \end{pmatrix} }_{\mx{A}} \underbrace{ \begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{pmatrix} }_{\vc{x}} = \underbrace{ \begin{pmatrix} 1496 \\ 1175 \\ 958 \\ 861 \end{pmatrix} }_{\vc{y}} \\ \Longleftrightarrow \\ \mx{A}\vc{x} = \vc{y}. \end{gather} (6.33)
解此方程组即可求得 $x_1$、$x_2$、$x_3$、$x_4$。求解这类方程组正是第 5 章 高斯消元法的主题,也是《九章算术》“方程”章的主题。

下面也用高斯消元法求解该方程组。为节省篇幅,我们不写未知数, 而把等号两边放在一对大括号内,并用一条竖线隔开,得到
\begin{align} \left( \begin{array}{rrrr|r} 5 & 4 & 3 & 2 & 1496 \\ 4 & 2 & 6 & 3 & 1175 \\ 3 & 1 & 7 & 5 & 958 \\ 2 & 3 & 5 & 1 & 861 \\ \end{array} \right). \end{align} (6.34)
例 6.11 也会采用这种记法。 因为只改变了记号,高斯消元法的规则(定理 5.2)仍然适用。 例如,把第 2 行乘 5,减去第 1 行乘 4,再把结果放入第 2 行,得到
\begin{align} \left( \begin{array}{rrrr|r} 5 & 4 & 3 & 2 & 1496 \\ 0 & -6 & 18 & 7 & -109 \\ 3 & 1 & 7 & 5 & 958 \\ 2 & 3 & 5 & 1 & 861 \\ \end{array} \right). \end{align} (6.35)
接着消去最左列中的 3 和 2。把第 3 行乘 2,减去第 4 行乘 3,将结果放入第 4 行; 同时把第 1 行乘 3,减去第 3 行乘 5,将结果放入第 3 行,得到
\begin{align} \left( \begin{array}{rrrr|r} 5 & 4 & 3 & 2 & 1496 \\ 0 & -6 & 18 & 7 & -109 \\ 0 & 7 & -26 & -19 & -302 \\ 0 & -7 & -1 & 7 & -667 \\ \end{array} \right). \end{align} (6.36)
下一步消去第 2 列中的 7 与 $-7$。先把第 3、4 行相加并放入第 4 行; 再把第 2 行乘 7,加上第 3 行乘 6,将结果放入第 3 行,得到
\begin{align} \left( \begin{array}{rrrr|r} 5 & 4 & 3 & 2 & 1496 \\ 0 & -6 & 18 & 7 & -109 \\ 0 & 0 & -30 & -65 & -2575 \\ 0 & 0 & -27 & -12 & -969 \\ \end{array} \right). \end{align} (6.37)
最后,把第 3 行乘 27,减去第 4 行乘 30,得到
\begin{align} \left( \begin{array}{rrrr|r} 5 & 4 & 3 & 2 & 1496 \\ 0 & -6 & 18 & 7 & -109 \\ 0 & 0 & -30 & -65 & -2575 \\ 0 & 0 & 0 & -1395 & -40455 \\ \end{array} \right), \end{align} (6.38)
最后一行表示 $-1395 x_4 = -40455$,故 $x_4 = 29$ 钱(每只兔)。 回代依次求得 $x_3 = 23$ 钱(每只鸡)、$x_2 = 121$ 钱(每只犬),最后得到 $x_1=177$ 钱(每只羊)。
6.4 常用二维与三维矩阵


本节介绍若干常用矩阵,包括二维和三维空间中的旋转、缩放与错切矩阵;这些矩阵也可推广到更高维空间。

6.4.1 二维情形



许多场合都需要旋转,例如让一个向量与另一个向量对齐,或旋转对象以制作动画。 二维旋转矩阵很容易推导。点 $\vc{p}=(p_x,p_y)$ 可用半径 $r$ 和角度 $\theta$ 参数化为 $\vc{p}=(p_x,p_y)=(r\cos\theta, r\sin\theta)$。将 $\vc{p}$ 旋转 $\phi$ 弧度得到新向量 $\vc{q}=(r\cos(\theta+\phi), r\sin(\theta+\phi))$,可改写为
\begin{align} \vc{q}=& \begin{pmatrix} r\cos(\theta+\phi) \\ r\sin(\theta+\phi) \end{pmatrix} = \begin{pmatrix} r (\cos\theta \cos\phi - \sin\theta \sin\phi) \\ r (\sin\theta \cos\phi + \cos\theta \sin\phi) \end{pmatrix} \\ =& \underbrace{ \left(\begin{array}{rr} \cos\phi & -\sin\phi \\ \sin\phi & \cos\phi \end{array}\right) }_{\mx{R}(\phi)} \underbrace{ \begin{pmatrix} r\cos\theta \\ r\sin\theta \end{pmatrix} }_{\vc{p}}, \end{align} (6.39)
其中使用了和角公式 $\cos(\theta+\phi)=\cos\theta \cos\phi - \sin\theta \sin\phi$ 与 $\sin(\theta+\phi) = \sin\theta \cos\phi + \cos\theta \sin\phi$。我们分离出了一个 $2\times 2$ 矩阵 $\mx{R}(\phi)$,旋转后的向量 $\vc{q}$ 正是该矩阵与向量 $\vc{p}$ 的乘积,即
\begin{align} \vc{q} = \mx{R}(\phi) \vc{p}. \end{align} (6.40)
由此得到下面的定义。

定义 6.10: 二维旋转矩阵
$2\times 2$ 旋转矩阵定义为
\begin{align} \mx{R}(\phi) = & \left(\begin{array}{rr} \cos \phi & -\sin \phi \\ \sin \phi & \cos \phi \end{array}\right), \end{align} (6.41)
其中 $\phi$ 是矩阵逆时针旋转的弧度数。
交互式图解 6.3中,旋转矩阵作用于矩形的顶点,你可以改变旋转矩阵 $\mx{R}(\phi)$ 的角度 $\phi$。
$\phi=$
交互式图解 6.3: 拖动上方滑块即可应用二维旋转矩阵 $\mx{R}(\phi)$,其角度 $\phi$ 由滑块给出。 滑块最左端对应 $-\pi$ 弧度,最右端对应 $+\pi$ 弧度。旋转矩阵作用于矩形的顶点(彩色圆点),得到旋转后的顶点。 更确切地说,我们从原点(带箭头的直线交点)向矩形各顶点作向量,矩阵实际作用于这些向量。 原矩形及其顶点显示为灰色矩形与颜色较浅的圆点。
交互式图解 6.3: 拖动上方滑块即可应用二维旋转矩阵 $\hid{\mx{R}(\phi)}$,其角度 $\hid{\phi}$ 由滑块给出。 滑块最左端对应 $\hid{-\pi}$ 弧度,最右端对应 $\hid{+\pi}$ 弧度。旋转矩阵作用于矩形的顶点(彩色圆点),得到旋转后的顶点。 更确切地说,我们从原点(带箭头的直线交点)向矩形各顶点作向量,矩阵实际作用于这些向量。 原矩形及其顶点显示为灰色矩形与颜色较浅的圆点。
缩放矩阵十分简单:除对角元素外,其余元素均为零。因此,每个对角元素都是相应坐标方向上的缩放因子。

定义 6.11: 二维缩放矩阵
缩放矩阵定义为
\begin{align} \mx{S}(f_x, f_y) = & \begin{pmatrix} f_x & 0 \\ 0 & f_y \end{pmatrix}, \end{align} (6.42)
其中 $f_x$ 是 $x$ 方向的缩放因子,$f_y$ 是 $y$ 方向的缩放因子。
交互式图解 6.4展示了缩放矩阵作用于矩形的效果。
$f_x=$
$f_y=$
交互式图解 6.4: 上方两个滑块分别控制 $x$、$y$ 方向的缩放因子 $f_x$ 与 $f_y$。
交互式图解 6.4: 上方两个滑块分别控制 $\hid{x}$、$\hid{y}$ 方向的缩放因子 $\hid{f_x}$ 与 $\hid{f_y}$。
错切矩阵的效果先看图再详述最为直观,因此建议先探索交互式图解 6.5,随后再阅读正式定义。
$s=$
交互式图解 6.5: 上方滑块控制错切变换的错切因子 $s$。可以看到,$y$ 坐标保持不变,而 $|y|$ 越大,$x$ 坐标的变化越大。
交互式图解 6.5: 上方滑块控制错切变换的错切因子 $\hid{s}$。可以看到,$\hid{y}$ 坐标保持不变,而 $|\hid{y}|$ 越大,$\hid{x}$ 坐标的变化越大。
由上图可以看出,错切矩阵是在单位矩阵的基础上,把其中某个零元素替换为非零因子 $s$。

定义 6.12: 二维错切矩阵
二维错切矩阵定义为以下两种形式之一:
\begin{align} \mx{H}_{xy}(s) = \begin{pmatrix} 1 & s \\ 0 & 1 \end{pmatrix} \ \ \ \mathrm{或} \ \ \ \mx{H}_{yx}(s) = \begin{pmatrix} 1 & 0 \\ s & 1 \end{pmatrix}. \end{align} (6.43)
$\mx{H}$ 的第一个下标表示被改变的坐标,第二个下标表示先乘以 $s$、再加到第一个坐标上的坐标。
例如,$\mx{H}_{xy}(s)$ 表示用 $y$ 坐标的 $s$ 倍对 $x$ 坐标作错切,这正是交互式图解 6.5所展示的情形。

6.4.2 三维情形



三维空间中的旋转、缩放和错切与二维情形大致相同,但实现方式更多。 例如,二维旋转发生在平面内,而三维空间可以绕任一坐标轴旋转。先来看旋转矩阵。

定义 6.13: 三维旋转矩阵
绕三个坐标轴的旋转分别由下列三个旋转矩阵实现:
\begin{gather} \mx{R}_x(\phi) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos \phi & -\sin \phi \\ 0 & \sin \phi & \hid{-}\cos \phi \end{pmatrix}, \ \ \ \mx{R}_y(\phi) = \begin{pmatrix} \hid{-}\cos \phi & 0 & \sin \phi \\ 0 & 1 & 0 \\ -\sin \phi & 0 & \cos \phi \end{pmatrix}, \\ \mx{R}_z(\phi) = \begin{pmatrix} \cos \phi & -\sin \phi & 0 \\ \sin \phi & \hid{-}\cos \phi & 0 \\ 0 & 0 & 1 \end{pmatrix}, \end{gather} (6.44)
其中 $\phi$ 是矩阵逆时针旋转的弧度数。
绕坐标轴 $i$ 的旋转矩阵 $\mx{R}_i(\phi)$ 保持第 $i$ 个坐标不变,其余两个坐标则绕轴 $i$ 旋转。 同样可以构造绕任意轴旋转的矩阵。

如无特别说明,本书使用右手坐标系。值得注意的是, $\mx{R}_x$ 与 $\mx{R}_z$ 和二维旋转矩阵(定义 6.10)相似, 但 $\mx{R}_y$ 中 $\sin\phi$ 项的符号相反。这是为了让三个旋转矩阵都以 $\phi$ 的正方向为准。 例如,对 $\mx{R}_x$,设想沿负 $x$ 轴方向观察,此时 $y$、$z$ 轴呈正定向; 沿负 $y$ 轴观察 $\mx{R}_y$ 的 $x$、$z$ 轴时则并非如此。由于 $\cos(-\phi)=\cos\phi$、$\sin(-\phi)=-\sin\phi$, 沿负方向旋转只会改变 $\sin\phi$ 项的符号。

三维缩放矩阵较为简单:与二维缩放矩阵相比,只需增加 $z$ 轴方向的缩放。定义如下。

定义 6.14: 三维缩放矩阵
三维缩放矩阵定义为
\begin{align} \mx{S}(f_x, f_y,f_z) = & \begin{pmatrix} f_x & 0 & 0\\ 0 & f_y & 0 \\ 0 & 0 & f_z \end{pmatrix}, \end{align} (6.45)
其中 $f_x$、$f_y$、$f_z$ 分别是 $x$、$y$、$z$ 方向的缩放因子。
与三维缩放不同,三维错切可用多种方式实现,但相应矩阵仍十分相似,如下所示。

定义 6.15: 单参数三维错切矩阵
例如,三维错切矩阵可以定义为
\begin{align} \mx{H}_{xy}(s) = \begin{pmatrix} 1 & s & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{pmatrix}, \ \ \ \mx{H}_{yx}(s) = \begin{pmatrix} 1 & 0 & 0 \\ s & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}, \ \ \ \mx{H}_{zy}(s) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & s & 1 \end{pmatrix}. \end{align} (6.46)
与二维错切(定义 6.12)类似, $\mx{H}$ 的第一个下标表示被改变的坐标,第二个下标表示先乘以 $s$、再加到第一个坐标上的坐标。 还可采用组合 $\mx{H}_{xz}(s)$、$\mx{H}_{yz}(s)$ 和 $\mx{H}_{zx}(s)$。
有时需要双参数错切矩阵,它是单参数错切矩阵的直接推广。

定义 6.16: 双参数三维错切矩阵
含参数 $s$、$t$ 的三维错切矩阵定义为
\begin{align} \mx{H}_{x}(s,t) = \begin{pmatrix} 1 & s & t \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{pmatrix}, \ \ \ \mx{H}_{y}(s,t) = \begin{pmatrix} 1 & 0 & 0 \\ s & 1 & t \\ 0 & 0 & 1 \end{pmatrix}, \ \ \ \mx{H}_{z}(s,t) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ s & t & 1 \end{pmatrix}. \end{align} (6.47)
下一节将用本章介绍的一些矩阵来说明矩阵运算的性质。例如,我们会看到先旋转后错切与先错切后旋转并不相同,因此矩阵乘法不满足交换律
6.5 矩阵运算的性质


定理 6.1: 矩阵运算的性质
下列各式均假设矩阵大小满足相应运算有定义的条件。
\begin{equation} \begin{array}{llr} (i) & k(l\mx{A}) = (kl)\mx{A} & \spc\text{(结合律)} \\ (ii) & (k+l)\mx{A} = k\mx{A} +l\mx{A} & \spc\text{(分配律)} \\ (iii) & k(\mx{A}+\mx{B}) = k\mx{A} +k\mx{B} & \spc\text{(分配律)} \\ (iv) & \mx{A} + \mx{B} = \mx{B} + \mx{A} & \spc\text{(交换律)} \\ (v) & \mx{A}+(\mx{B}+\mx{C})=(\mx{A}+\mx{B})+\mx{C} & \spc\text{(结合律)} \\ (vi) & \mx{A}+ (-1)\mx{A} = \mx{O} & \spc\text{(加法逆元)} \\ (vii) & \mx{A}(\mx{B}+\mx{C})=\mx{A}\mx{B}+\mx{A}\mx{C} & \spc\text{(分配律)} \\ (viii) & (\mx{A}+\mx{B})\mx{C}=\mx{A}\mx{C}+\mx{B}\mx{C} & \spc\text{(分配律)} \\ (ix) & (\mx{A}\mx{B})\mx{C}=\mx{A}(\mx{B}\mx{C}) & \spc\text{(结合律)} \\ (x) & \mx{I}\mx{A}=\mx{A}\mx{I}=\mx{A} & \spc\text{(乘法单位元)} \\ (xi) & (k\mx{A})^\T=k\mx{A}^\T & \spc\text{(转置规则 1)} \\ (xii) & (\mx{A}+\mx{B})^\T=\mx{A}^\T+\mx{B}^\T & \spc\text{(转置规则 2)} \\ (xiii) & (\mx{A}^\T)^\T=\mx{A} & \spc\text{(转置规则 3)} \\ (xiv) & (\mx{A}\mx{B})^\T=\mx{B}^\T\mx{A}^\T & \spc\text{(转置规则 4)} \\ \end{array} \end{equation} (6.48)
此外还有几条显然的规则:$1\mx{A}=\mx{A}$、$0\mx{A}=\mx{O}$、$k\mx{O}=\mx{O}$ 以及 $\mx{A}+\mx{O}=\mx{A}$。

这些性质都可以逐项验证:写出等号两端第 $ij$ 个矩阵元素,检查所得表达式是否相同即可。规则 $(i)-(vi)$ 与 $(x)-(xiii)$ 的证明十分直接,留作练习。下面将用到乘积 $\mx{P}=\mx{A}\mx{B}$ 的元素可用点积表示这一事实(见 式(6.22)), 即 $[p_{ij}] = \bigl[ \vc{a}_{i,} \cdot \vc{b}_{,j} \bigr]$。
$(vii)$ 等号左端的一个矩阵元素为 $\bigl[\vc{a}_{i,}\cdot(\vc{b}_{,j}+\vc{c}_{,j})\bigr]$;右端相应元素为 $\bigl[\vc{a}_{i,}\cdot\vc{b}_{,j}\bigr]+\bigl[\vc{a}_{i,}\cdot\vc{c}_{,j}\bigr]=\bigl[\vc{a}_{i,}\cdot(\vc{b}_{,j}+\vc{c}_{,j})\bigr]$。这里使用了点积的 分配律定理 3.1)。这说明等号两端对应的矩阵元素相同。
$(viii)$ 不能由 $(vii)$ 和交换律推出,因为矩阵乘法一般不满足交换律(参见 例 6.9)。等号左端的第 $ij$ 个元素为 $\bigl[(\vc{a}_{i,}+\vc{b}_{i,})\cdot\vc{c}_{,j}\bigr]$;右端相应元素为 $\bigl[\vc{a}_{i,}\cdot\vc{c}_{,j}\bigr]+\bigl[\vc{b}_{i,}\cdot\vc{c}_{,j}\bigr]=\bigl[(\vc{a}_{i,}+\vc{b}_{i,})\cdot\vc{c}_{,j}\bigr]$。
$(ix)$ 设 $\mx{A}$、$\mx{B}$、$\mx{C}$ 的大小依次为 $r\times s$、$s\times t$、$t\times u$。则左端第 $ij$ 个元素为 $\sum_{\ell=1}^{t}\bigl(\sum_{k=1}^{s}a_{ik}b_{k\ell}\bigr)c_{\ell j}$。交换有限求和次序,可得 $\sum_{k=1}^{s}a_{ik}\bigl(\sum_{\ell=1}^{t}b_{k\ell}c_{\ell j}\bigr)$,这正是右端第 $ij$ 个元素。
$(xiv)$ 利用 式(6.23) 展开乘积。左端第 $ij$ 个元素为 $\bigl[(\mx{A}\mx{B})^\T\bigr]_{ij}=(\mx{A}\mx{B})_{ji}=\sum_k a_{jk}b_{ki}$。 右端第 $ij$ 个元素为 $\bigl[\mx{B}^\T\mx{A}^\T\bigr]_{ij}=\sum_k(\mx{B}^\T)_{ik}(\mx{A}^\T)_{kj}=\sum_k b_{ki}a_{jk}$。 标量乘法满足交换律,因此两式相等。至此各项均得证。
$\square$


性质 $(v)$ 与 $(ix)$ 尤其方便:结合次序无关,所以可直接写 $\mx{A}+\mx{B}+\mx{C}$ 与 $\mx{A}\mx{B}\mx{C}$,无需括号。这与 $1+2+3$ 和 $5\cdot 3 \cdot 2$ 无需括号类似。

下面给出一个 $\mx{A}\mx{B}=\mx{O}$ 的例子(零矩阵见 定义 6.4),但 $\mx{A}$、$\mx{B}$ 均不是 $\mx{O}$。

例 6.8: 矩阵乘积等于零矩阵
设矩阵 $\mx{A}$、$\mx{B}$ 如下,求 $\mx{A}\mx{B}$。
\begin{align} \mx{A}= \left( \begin{array}{rr} 2 & 1 \\ 6 & 3 \end{array} \right) \spc\spc\text{且}\spc\spc \mx{B}= \left( \begin{array}{rr} -2 & 3 \\ 4 & -6 \end{array} \right) \\ \mx{A}\mx{B}= \left( \begin{array}{rr} 2\cdot(-2) + 1\cdot 4 & 2\cdot 3 + 1\cdot (-6) \\ 6\cdot(-2) + 3\cdot 4 & 6\cdot 3 + 3\cdot (-6) \end{array} \right) = \left( \begin{array}{rr} 0 & 0 \\ 0 & 0 \end{array} \right) =\mx{O}. \end{align} (6.49)
可以看到,$\mx{A}\mx{B}=\mx{O}$,但 $\mx{A}$、$\mx{B}$ 均不为零矩阵。这会带来一些不太直观的结果。例如,设
\begin{gather} \mx{A}\mx{B} = \mx{A}\mx{C} \\ \Longleftrightarrow \\ \mx{A}\mx{B} - \mx{A}\mx{C} = \mx{O} \\ \Longleftrightarrow \\ \mx{A}(\mx{B} -\mx{C}) = \mx{O}, \end{gather} (6.50)
且已知 $\mx{A}\neq\mx{O}$。通常看到 (6.50) 会习惯性地认为 $\mx{B}=\mx{C}$。这当然可能成立,但如 (6.49)所示,矩阵乘积为零矩阵时,两因子都不必是零矩阵。因而此处 $\mx{B} -\mx{C}$ 不一定是零矩阵。
还值得注意的是 定理 6.1 不包含 $\mx{A}\mx{B}=\mx{B}\mx{A}$,因为该等式一般不成立。下面给出例子。

例 6.9: 矩阵乘法不满足交换律
设有两个矩阵
\begin{equation} \mx{A} = \left( \begin{array}{rr} 1 & 2 \\ 3 & -1 \\ \bstwo -2 & 0 \\ 0 & 4 \end{array} \right) \spc\spc\text{且}\spc\spc \mx{B} = \left( \begin{array}{rrrr} 5 & -3 & 0 & -2 \\ 3 & 1 & 2 & 6 \end{array} \right). \end{equation} (6.51)
$\mx{A}$ 的大小为 $4\times 2$,$\mx{B}$ 的大小为 $2\times 4$。有趣的是,$\mx{A}\mx{B}$ 与 $\mx{B}\mx{A}$ 均有定义。计算如下。
\begin{align} \mx{A}\mx{B} &= \left( \begin{array}{rr} 1 & 2 \\ 3 & -1 \\ \bstwo -2 & 0 \\ 0 & 4 \end{array} \right) \left( \begin{array}{rrrr} 5 & -3 & 0 & -2 \\ 3 & 1 & 2 & 6 \end{array} \right) \\ &= \left( \begin{array}{rrrr} 1\cdot 5 + 2\cdot 3 & 1\cdot(-3) + 2\cdot 1 & 1\cdot 0 + 2\cdot 2 & 1\cdot (-2) + 2\cdot 6\\ 3\cdot 5 - 1\cdot 3 & 3\cdot (-3) - 1\cdot 1 & 3\cdot 0 - 1\cdot 2 & 3\cdot (-2) - 1\cdot 6\\ -2\cdot 5 + 0\cdot 3 & -2\cdot (-3) + 0\cdot 1 & -2\cdot 0 + 0\cdot 2 & -2\cdot (-2) + 0\cdot 6\\ 0\cdot 5 + 4\cdot 3 & 0\cdot (-3) + 4\cdot 1 & 0\cdot 0 + 4\cdot 2 & 0\cdot (-2) + 4\cdot 6 \end{array} \right) \\ &= \left( \begin{array}{rrrr} 11 & -1 & 4 & 10 \\ 12 & -10 & -2 & -12 \\ \bstwo -10 & 6 & 0 & 4 \\ 12 & 4 & 8 & 24 \end{array} \right) \end{align} (6.52)
利用 规则(6.20) 可判断乘积 $\mx{A}\mx{B}$ 的大小:$(4\times\bcancel{2})(\bcancel{2}\times4)\longrightarrow(4\times4)$,即所得矩阵为 $4\times4$。接着计算 $\mx{B}\mx{A}$:
\begin{align} \mx{B}\mx{A} &= \left( \begin{array}{rrrr} 5 & -3 & 0 & -2 \\ 3 & 1 & 2 & 6 \end{array} \right) \left( \begin{array}{rr} 1 & 2 \\ 3 & -1 \\ \bstwo -2 & 0 \\ 0 & 4 \end{array} \right) \\ &= \left( \begin{array}{rr} 5 \cdot 1 - 3 \cdot 3 + 0 \cdot (-2) - 2 \cdot 0 & 5 \cdot 2 - 3 \cdot (-1) + 0 \cdot 0 - 2 \cdot 4 \\ 3 \cdot 1 + 1 \cdot 3 + 2 \cdot (-2) + 6 \cdot 0 & 3 \cdot 2 + 1 \cdot (-1) + 2 \cdot 0 + 6 \cdot 4 \end{array} \right) \\ &= \left( \begin{array}{rr} -4 & 5 \\ 2 & 29 \end{array} \right) \end{align} (6.53)
$\mx{B}\mx{A}$ 的大小为 $(2\times\bcancel{4})(\bcancel{4}\times2)\longrightarrow(2\times2)$,即所得矩阵为 $2\times2$。因此一般有 $\mx{A}\mx{B}\neq\mx{B}\mx{A}$,也就是说矩阵乘法不满足交换律
交互式图解 6.6展示了把矩形顶点视为向量并乘以矩阵时,矩阵次序如何影响结果。
$\mx{S}$
$\mx{R}$
$\mx{SR}$
$\mx{RS}$
交互式图解 6.6: 左上:错切矩阵 $\mx{S}$ 作用于矩形顶点。把各顶点看作由中心指向矩形角点的向量 $\vc{v}_i$,矩阵从左侧相乘,例如 $\mx{S}\vc{v}_i$。左下:同上,但使用旋转矩阵 $\mx{R}$。右上使用 $\mx{S}\mx{R}$,右下使用 $\mx{R}\mx{S}$。拖动滑块观察效果。右上与右下的矩形不同,说明 $\mx{S}\mx{R}\neq \mx{R}\mx{S}$,即矩阵乘法不满足交换律。
交互式图解 6.6: 左上:错切矩阵 $\hid{\mx{S}}$ 作用于矩形顶点。把各顶点看作由中心指向矩形角点的向量 $\hid{\vc{v}_i}$,矩阵从左侧相乘,例如 $\hid{\mx{S}\vc{v}_i}$。左下:同上,但使用旋转矩阵 $\hid{\mx{R}}$。右上使用 $\hid{\mx{S}\mx{R}}$,右下使用 $\hid{\mx{R}\mx{S}}$。拖动滑块观察效果。右上与右下的矩形不同,说明 $\hid{\mx{S}\mx{R}\neq \mx{R}\mx{S}}$,即矩阵乘法不满足交换律。
6.6 逆矩阵


已经定义了矩阵加法、数乘和矩阵乘法,自然会问:是否也存在类似除法的运算? 也就是说,如何从下式求出 $\mx{X}$:
\begin{equation} \mx{A}\mx{X} = \mx{B}. \end{equation} (6.54)
先退一步,从只含标量的简单表达式开始:
\begin{equation} ax = b. \end{equation} (6.55)
由代数知识可直接得到
\begin{equation} x = \frac{b}{a} = a^{-1}b, \end{equation} (6.56)
注意右端用 $a^{-1}$ 作为求解 式(6.55), 仅当 $a \neq 0$ 时才有效。逆矩阵也会采用同样的记号。若 $a=0$ 且 $b=0$,则任意 $x$ 都是方程的解。

这里只讨论方阵的逆,即当 $\mx{A}$ 为方阵时,求 式(6.54),使得
\begin{equation} \mx{X} = \mx{A}^{-1}\mx{B}. \end{equation} (6.57)
只有方阵才可能有逆。非方阵也有一种类似逆的对象,称为伪逆,但其用途通常较少。 因此,如无特别说明,讨论逆矩阵时均指方阵。定义如下。

定义 6.17: 逆矩阵
若存在矩阵 $\mx{A}^{-1}$,使方阵 $\mx{A}$ 满足
\begin{equation} \mx{A}\mx{A}^{-1} = \mx{A}^{-1}\mx{A} = \mx{I}. \end{equation} (6.58)
则称 $\mx{A}$ 可逆,并称 $\mx{A}^{-1}$ 为 $\mx{A}$ 的逆矩阵。 若 $\mx{A}\mx{A}^{-1} = \mx{I}$,称 $\mx{A}^{-1}$ 为右逆;若 $\mx{A}^{-1}\mx{A} = \mx{I}$,称其为左逆。
下面的定理说明:若矩阵可逆,则其逆矩阵唯一,而且既是左逆也是右逆。

定理 6.2: 逆矩阵的存在性
把左逆记作 $\mx{A}_l^{-1}$,右逆记作 $\mx{A}_r^{-1}$,即 $\mx{A}_l^{-1} \mx{A} = \mx{I}$ 且 $\mx{A}\mx{A}_r^{-1} = \mx{I}$。则有
$(i)$ 若 $\mx{A}_l^{-1} \mx{A} = \mx{A}\mx{A}_r^{-1} = \mx{I}$,则 $\mx{A}_l^{-1} =\mx{A}_r^{-1}$。
$(ii)$ 矩阵 $\mx{A}$ 的逆矩阵 $\mx{A}^{-1}$ 唯一,即 $\mx{A}^{-1}= \mx{A}_l^{-1} =\mx{A}_r^{-1}$。

$(i)$ 设 $\mx{A}_l^{-1} \mx{A} = \mx{I}$ 与 $\mx{A}\mx{A}_r^{-1} = \mx{I}$ 均成立,则
\begin{equation} \mx{A}_l^{-1} = \mx{A}_l^{-1} \mx{I} =\mx{A}_l^{-1} (\mx{A}\mx{A}_r^{-1}) = (\mx{A}_l^{-1} \mx{A})\mx{A}_r^{-1} = \mx{I}\mx{A}_r^{-1} = \mx{A}_r^{-1}. \end{equation} (6.59)

$(ii)$ 设存在两个不同的逆矩阵 $\mx{R}$ 和 $\mx{L}$,都可代替式 (6.58)中的 $\mx{A}^{-1}$,即 $\mx{L}\mx{A}=\mx{I}$ 且 $\mx{A}\mx{R}=\mx{I}$。但由 $(i)$ 可知 $\mx{L}=\mx{R}$,故不可能存在两个不同的逆矩阵。
$\square$


定理得证后,我们不必再区分左逆与右逆,统一用 $\mx{A}^{-1}$ 表示逆矩阵。 下面给出一个例子。

例 6.10: 逆矩阵(一)
对于二维旋转矩阵 $\mx{R}(\phi)$(见 定义 6.10),自然可猜想其逆为反方向旋转的 $\mx{R}(-\phi)$。若猜想正确,则根据 定义 6.17应有 $\mx{R}(\phi)\mx{R}(-\phi)=\mx{I}$。下面相乘验证结果是否为单位矩阵。
\begin{align} \mx{R}(\phi)\mx{R}(-\phi) = & \begin{pmatrix} \cos \phi & -\sin \phi \\ \sin \phi & \hid{-}\cos \phi \end{pmatrix} \begin{pmatrix} \cos (-\phi) & -\sin(-\phi) \\ \sin (-\phi) & \hid{-}\cos(-\phi) \end{pmatrix} \\ =& \begin{pmatrix} \cos \phi & -\sin \phi \\ \sin \phi & \hid{-}\cos \phi \end{pmatrix} \begin{pmatrix} \hid{-}\cos (\phi) & \sin(\phi) \\ -\sin (\phi) & \cos(\phi) \end{pmatrix} \\ =& \begin{pmatrix} \cos^2 \phi + \sin^2\phi & \cos\phi \sin \phi - \sin \phi\cos\phi\\ \sin \phi\cos\phi - \cos\phi \sin \phi & \sin^2\phi + \cos^2 \phi \end{pmatrix} \\ =& \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} = \mx{I}. \end{align} (6.60)
这里使用了 $\cos(-\phi) = \cos\phi$、$\sin(-\phi) = -\sin\phi$ 与 $\cos^2 \phi + \sin^2\phi=1$。

同理可证错切矩阵满足 $\mx{H}^{-1}_{xy}(s) = \mx{H}_{xy}(-s)$,缩放矩阵满足 $\mx{S}^{-1}(f_x,f_y) = \mx{S}(1/f_x, 1/f_y)$。这两项留作练习。 交互式图解 6.7中展示了这些矩阵及其逆矩阵。
交互式图解 6.7: 本交互式图解把 $2\times2$ 矩阵 $\mx{A}$ 可视化为其两个列向量 $\vc{a}_{,1}$ 与 $\vc{a}_{,2}$,即 $\mx{A}=\bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\,\textcolor{#00aa00}{\vc{a}_{,2}}\bigr)$。图中可拖动红、绿两个列向量。右侧还显示逆矩阵 $\mx{A}^{-1}$,其列向量分别以蓝色和黄色表示。第一步展示 $\phi=\pi/6$(即 $30$ 度)的旋转矩阵;此时红色向量为 $(\cos(\pi/6),\sin(\pi/6))=(\sqrt{3}/2,0.5)$。图中也画出了向量对张成的平行四边形;旋转矩阵的情形是面积为 $1$ 的正方形。后文 第 7 章将说明该面积与相应矩阵的行列式有关。单击或点按 前进 继续查看下一类矩阵。如果你移动过向量并希望恢复原矩阵,请记得单击或点按 重置 以恢复原矩阵。
交互式图解 6.7: 本交互式图解把 $\hid{2\times2}$ 矩阵 $\hid{\mx{A}}$ 可视化为其两个列向量 $\hid{\vc{a}_{,1}}$ 与 $\hid{\vc{a}_{,2}}$,即 $\hid{\mx{A}=\bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\,\textcolor{#00aa00}{\vc{a}_{,2}}\bigr)}$。图中可拖动红、绿两个列向量。右侧还显示逆矩阵 $\hid{\mx{A}^{-1}}$,其列向量分别以蓝色和黄色表示。第一步展示 $\hid{\phi=\pi/6}$(即 $30$ 度)的旋转矩阵;此时红色向量为 $\hid{(\cos(\pi/6),\sin(\pi/6))=(\sqrt{3}/2,0.5)}$。图中也画出了向量对张成的平行四边形;旋转矩阵的情形是面积为 $1$ 的正方形。第 7 章将说明该面积与相应矩阵的行列式有关。单击或点按 前进 继续查看下一类矩阵。如果你移动过向量并希望恢复原矩阵,请记得单击或点按 重置 以恢复原矩阵。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\mx{A}^{-1} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
例 6.10中已经看到,旋转、缩放和错切矩阵的逆很容易求得。但对于一般矩阵,我们还没有说明如何求逆。可用的方法有多种,而二维矩阵的情形尤其简单,如下述定理所示。

定理 6.3: 二维矩阵的逆
对 $2\times 2$ 矩阵 $\mx{A}$,其逆为
\begin{equation} \mx{A}^{-1} = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}^{-1} = \frac{1}{a_{11}a_{22} - a_{12}a_{21}} \begin{pmatrix} \hid{-}a_{22} & -a_{12} \\ -a_{21} & \hid{-}a_{11} \end{pmatrix}, \end{equation} (6.61)
条件是 $a_{11}a_{22} - a_{12}a_{21} \neq 0$;否则逆矩阵不存在。

验证 $\mx{A}^{-1}$ 与 $\mx{A}$ 相乘的结果:
\begin{align} \mx{A}^{-1}\mx{A} &= \frac{1}{a_{11}a_{22} - a_{12}a_{21}} \begin{pmatrix} \hid{-}a_{22} & -a_{12} \\ -a_{21} & \hid{-}a_{11} \end{pmatrix} \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} \\ &= \frac{1}{a_{11}a_{22} - a_{12}a_{21}} \begin{pmatrix} a_{22}a_{11} - a_{12}a_{21} & a_{22}a_{12}-a_{12}a_{22} \\ -a_{21}a_{11} + a_{11}a_{21} & -a_{21}a_{12}+a_{11}a_{22} \end{pmatrix} \\ &= \frac{1}{a_{11}a_{22} - a_{12}a_{21}} \begin{pmatrix} a_{11}a_{22} - a_{12}a_{21} & 0 \\ 0 & a_{11}a_{22} - a_{12}a_{21} \end{pmatrix} = \mx{I}, \end{align} (6.62)
最后一步只使用了矩阵数乘的定义(定义 6.7)。交换两个因子的次序作同样计算,也可得到 $\mx{A}\mx{A}^{-1}=\mx{I}$。
若 $a_{11}a_{22}-a_{12}a_{21}=0$ 且 $(a_{11},a_{12})\neq(0,0)$,则非零向量 $\vc{x}=(-a_{12},a_{11})$ 满足 $\mx{A}\vc{x}=\vc{0}$。若第一行全为零,则可类似地从第二行构造非零的零空间向量(零矩阵的情形显然)。因此 $\mx{A}$ 不可能有逆矩阵。
$\square$


第 7 章讨论行列式时将看到, 定理 6.3 中的分母实际上就是该 $2\times2$ 矩阵的行列式。

接下来说明如何利用高斯消元法第 5 章)求逆。

例 6.11:
求矩阵
\begin{align} \mx{A} &= \left( \begin{array}{rrr} 5 & 3 & 1\\ 1 & 0 & -2 \\ 1 & 2 & 5 \end{array} \right) \end{align} (6.63)
的逆。先建立以下方程组:
\begin{gather} \mx{A}\vc{x} = \vc{y} \\ \Longleftrightarrow \\ \mx{A}\vc{x} = \mx{I}\vc{y}, \end{gather} (6.64)
其中 $\mx{A}\vc{x}$ 与 $\mx{I}\vc{y}$ 都是含三个元素的列向量。等式两边左乘 $\mx{A}$ 的逆,得到
\begin{gather} \mx{A}^{-1}\mx{A}\vc{x}=\mx{A}^{-1}\mx{I}\vc{y} \\ \Longleftrightarrow \\ \mx{I}\vc{x}=\mx{A}^{-1}\vc{y}, \end{gather} (6.65)
也就是说,我们把 式(6.64) 中的单位矩阵从右端“移”到了左端,同时逆矩阵单独出现在右端。因此,只要在左端得到单位矩阵,另一端便会得到逆矩阵。把完整的矩阵结构写出,得到
\begin{align} \left( \begin{array}{rrr} 5 & 3 & 1\\ 1 & 0 & -2 \\ 1 & 2 & 5 \end{array} \right) \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} y_1 \\ y_2 \\ y_3 \end{pmatrix}. \end{align} (6.66)
正如 式(6.26)所示,线性方程组可以写成矩阵形式。这很方便,因为不必反复写出 $x_1$、$x_2$ 和 $x_3$。注意,此时等号右端不是常向量,而是单位矩阵与 $\vc{y}$ 的乘积;但依据 定理 5.2中的规则,仍可进行高斯消元。为简化书写,可以约定 $x_1$、$x_2$、$x_3$、$y_1$、$y_2$ 和 $y_3$ 隐含在式中而不逐一写出。于是上面的方程组可简写为
\begin{align} \left( \begin{array}{rrr|rrr} 5 & 3 & 1 & 1 & 0 & 0\\ 1 & 0 & -2 & 0 & 1 & 0\\ 1 & 2 & 5 & 0 & 0 & 1 \end{array} \right). \end{align} (6.67)
现在可以照常进行高斯消元。例如,用最下面一行减去中间一行,并把结果写入最下面一行,得到
\begin{align} \left( \begin{array}{rrr|rrr} 5 & 3 & 1 & 1 & 0 & 0\\ 1 & 0 & -2 & 0 & 1 & 0\\ 0 & 2 & 7 & 0 & -1 & 1 \end{array} \right). \end{align} (6.68)
接着把中间一行乘以 $5$,从第一行中减去该结果,再把所得行放到中间,得到
\begin{align} \left( \begin{array}{rrr|rrr} 5 & 3 & 1 & 1 & 0 & 0\\ 0 & -3 & -11 & -1 & 5 & 0\\ 0 & 2 & 7 & 0 & -1 & 1 \end{array} \right). \end{align} (6.69)
注意,这些运算也要作用于右侧。最后把中间一行乘 $2$、最下一行乘 $3$,相加后放入最下一行,即
\begin{align} \left( \begin{array}{rrr|rrr} 5 & 3 & 1 & 1 & 0 & 0\\ 0 & -3 & -11 & -1 & 5 & 0\\ 0 & 0 & -1 & -2 & 7 & 3 \end{array} \right). \end{align} (6.70)
下一步同时执行若干操作:从第一行中减去最下面一行;将最下面一行乘以 $-11$ 后加到第二行;再把最下面一行乘以 $-1$ 并写回该行。结果为
\begin{align} \left( \begin{array}{rrr|rrr} 5 & 3 & 0 & -1 & 7 & 3\\ 0 & -3 & 0 & 21 & -72 & -33\\ 0 & 0 & 1 & 2 & -7 & -3 \end{array} \right). \end{align} (6.71)
接着把中间一行加到最上一行,再将最上一行除以 $5$、中间一行除以 $-3$,得到
\begin{align} \left( \begin{array}{rrr|rrr} 1 & 0 & 0 & 4 & -13 & -6\\ 0 & 1 & 0 & -7 & 24 & 11\\ 0 & 0 & 1 & 2 & -7 & -3 \end{array} \right). \end{align} (6.72)
因此,逆矩阵 $\mx{A}^{-1}$ 为
\begin{align} \mx{A}^{-1} &= \left( \begin{array}{rrr} 4 & -13 & -6\\ -7 & 24 & 11\\ 2 & -7 & -3 \end{array} \right). \end{align} (6.73)
实际计算时可以合并上面的若干步骤以进一步节省篇幅。该方法适用于任意阶方阵。若对应方程组无解,则矩阵不可逆。你可以计算 $\mx{A}\mx{A}^{-1}$,验证结果确为单位矩阵 $\mx{I}$。
注意 第 7 章 还会介绍其他求逆方法。

定理 6.4: 逆矩阵的性质
若矩阵 $\mx{A}$ 与 $\mx{B}$ 可逆,则 $\mx{A}^{\T}$、$\mx{A}^{-1}$、$\mx{B}^{-1}$ 以及 $\mx{A}\mx{B}$ 也都可逆,并且
\begin{equation} \begin{array}{llr} (i) & (\mx{A}^{-1})^{-1} = \mx{A} & \spc\text{(逆的逆)}, \\ (ii) & (\mx{A}\mx{B})^{-1} = \mx{B}^{-1}\mx{A}^{-1} & \spc\text{(乘积的逆)}, \\ (iii) & (\mx{A}^{-1})^{\T} = (\mx{A}^{\T})^{-1} & \spc\text{(逆的转置)}. \\ \end{array} \end{equation} (6.74)
注意式 $(ii)$ 中的次序:右端 $\mx{A}$ 与 $\mx{B}$ 的次序相对于左端发生了颠倒。

$(i)$ 根据定义 6.17 $\mx{A}\mx{A}^{-1}=\mx{A}^{-1}\mx{A}=\mx{I}$,这说明 $\mx{A}^{-1}$ 的逆是 $\mx{A}$,故 $\mx{A}^{-1}$ 可逆。
$(ii)$ 猜测 $(\mx{A}\mx{B})$ 的逆为 $\invmx{B}\invmx{A}$。一方面, $(\mx{A}\mx{B})(\invmx{B}\invmx{A})=\mx{A}(\mx{B}\invmx{B})\invmx{A}=\mx{A}\invmx{A}=\mx{I}$; 另一方面,$(\invmx{B}\invmx{A})(\mx{A}\mx{B})=\invmx{B}(\invmx{A}\mx{A})\mx{B}=\invmx{B}\mx{B}=\mx{I}$。因此猜测成立。
$(iii)$ 注意 $\mx{I}=\mx{I}^{\T}$,再利用 定理 6.1 得到 $(\underbrace{\mx{A}\mx{A}^{-1}}_{\mx{I}})^{\T}=(\mx{A}^{-1})^{\T}\mx{A}^{\T}=\mx{I}$,故 $(\mx{A}^{-1})^{\T}$ 是 $\mx{A}^{\T}$ 的左逆。同理,$(\underbrace{\mx{A}^{-1}\mx{A}}_{\mx{I}})^{\T}=\mx{A}^{\T}(\mx{A}^{-1})^{\T}=\mx{I}$。这共同证明了该规则以及 $\mx{A}^{\T}$ 的可逆性。
$\square$


例 6.12: 似是而非的矩阵乘积逆
正如刚在 定理 6.4所示,矩阵乘积的逆会颠倒因子次序。例如 $(\mx{R}(\phi)\mx{H}_{xy}(s))^{-1}=\mx{H}^{-1}_{xy}(s)\mx{R}^{-1}(\phi)$。下面考察若忽略这一换序规则会发生什么。检验所得矩阵是否真是逆矩阵,只需将它与原矩阵相乘,结果应为单位矩阵 $\mx{I}$,即
\begin{align} \bigl(\mx{R}(\phi)\mx{H}_{xy}(s)\bigr) \bigl(\mx{R}(\phi)\mx{H}_{xy}(s)\bigr)^{-1} = \mx{I}, \end{align} (6.75)
在本例中即如此。若因疏忽忘记颠倒两个矩阵的次序,就会得到矩阵 $\mx{M}$:
\begin{align} \mx{M} = \bigl(\mx{R}(\phi)\mx{H}_{xy}(s)\bigr) \bigl(\mx{R}^{-1}(\phi)\mx{H}^{-1}_{xy}(s)\bigr). \end{align} (6.76)
正如 例 6.10所示,旋转矩阵与错切矩阵的逆很简单,即 $\mx{R}^{-1}(\phi)=\mx{R}(-\phi)$、$\mx{H}^{-1}_{xy}(s)=\mx{H}_{xy}(-s)$。因此
\begin{align} \mx{M} = \mx{R}(\phi)\mx{H}_{xy}(s) \mx{R}(-\phi) \mx{H}_{xy}(-s). \end{align} (6.77)
交互式图解 6.8展示了矩阵 $\mx{M}$ 作用于单位正方形各顶点(把顶点视为列向量)所得的结果。
$\phi=$
$s=$
交互式图解 6.8: 上方两个滑块控制旋转角 $\phi$ 与错切因子 $s$。单位正方形经矩阵 $\mx{M} = \mx{R}(\phi)\mx{H}_{xy}(s) \mx{R}(-\phi) \mx{H}_{xy}(-s)$ 变形;由于矩阵次序不正确,$\mx{M}$ 并非单位矩阵。观察其中一个变量取 0 时会发生什么。
交互式图解 6.8: 上方两个滑块控制旋转角 $\hid{\phi}$ 与错切因子 $\hid{s}$。单位正方形经矩阵 $\hid{\mx{M} = \mx{R}(\phi)\mx{H}_{xy}(s) \mx{R}(-\phi) \mx{H}_{xy}(-s)}$ 变形;由于矩阵次序不正确,它并非单位矩阵。观察其中一个变量取 0 时会发生什么。
本例说明,矩阵乘法中保持矩阵次序至关重要。否则会像上图一样,得到一个看似接近却并非单位矩阵、因而毫无用处的结果。
6.7 逆矩阵、线性无关与张成


我们在 第 5 章 中看到,要检验向量组 $\{\vc{u}_1,\vc{u}_2,\ldots,\vc{u}_q\}$ 是否线性无关或是否张成 $\R^p$,必须研究含 $q$ 个未知量的 $p$ 个方程。本章已经看到,矩阵可以方便地表示 线性方程组。

定理 6.5: 矩阵与线性无关
下列两个命题等价。
  1. 矩阵的列向量线性无关
  2. 方程 $\mx{A} \vc{x} = \vc{0}$ 只有解 $\vc{x}=\vc{0}$。

根据 定义 5.2,列向量 $\vc{a}_1,\vc{a}_2,\ldots,\vc{a}_q$ 线性无关,当且仅当 $\sum_{i=1}^q x_i\vc{a}_i=\vc{0}$ 仅有零解 $x_1=x_2=\cdots=x_q=0$。若 $\mx{A}$ 是以这些向量为列向量的 $p\times q$ 矩阵,则 $\mx{A}\vc{x}=\vc{0}\Longleftrightarrow\sum_{i=1}^q x_i\vc{a}_i=\vc{0}$。因此两个命题等价。
$\square$


定理 6.6: 矩阵与线性无关
若矩阵 $\mx{A}$ 存在左逆 $\mx{A}_l^{-1}$,则 $\mx{A}$ 的列向量线性无关

设矩阵 $\mx{A}$ 至少有一个左逆 $\mx{A}_l^{-1}$。在矩阵方程 $\mx{A}\vc{x}=\vc{0}$ 两边左乘 $\mx{A}_l^{-1}$,得 $\mx{A}_l^{-1}\mx{A}\vc{x}=\mx{A}_l^{-1}\vc{0}$,即 $\mx{I}\vc{x}=\vc{x}=\vc{0}$。定理得证。
$\square$


定理 6.7: 矩阵与张成
下列两个命题等价。
  1. 矩阵的 列向量 张成 $\R^p$。
  2. 对任意 $\vc{y}$,方程 $\mx{A} \vc{x} = \vc{y}$ 都有解。

根据 定义 5.3,列向量 $\vc{a}_1,\vc{a}_2,\ldots,\vc{a}_q$ 张成 $\R^p$,当且仅当 $\sum_{i=1}^q x_i \vc{a}_i = \vc{y}$ 对每个 $\vc{y}$ 都有解。 若 $\mx{A}$ 是以这些向量为列向量的 $p\times q$ 矩阵,则 $\mx{A}\vc{x}=\vc{y}\Longleftrightarrow\sum_{i=1}^q x_i\vc{a}_i=\vc{y}$。因此两个命题等价。
$\square$


定理 6.8: 矩阵与张成
若 $\mx{A}$ 的列向量张成 $\R^p$,则矩阵 $\mx{A}$ 存在右逆 $\mx{A}_r^{-1}$。

若 $\mx{A}$ 的列向量张成 $\R^p$,则矩阵方程 $\mx{A}\vc{x}=\vc{y}$ 对每个 $\vc{y}$ 都有解。 令 $\vc{e}_i$ 为标准 ,并令 $\vc{b}_i$ 是方程 $\mx{A}\vc{b}_i=\vc{e}_i$ 的一个解。构造矩阵 $\mx{B}=(\vc{b}_1\cdots\vc{b}_p)$,则 $\mx{A}\mx{B}=(\mx{A}\vc{b}_1\cdots\mx{A}\vc{b}_p)=(\vc{e}_1\cdots\vc{e}_p)=\mx{I}$。因此 $\mx{B}$ 是 $\mx{A}$ 的右逆。
$\square$


定理 6.9: 方阵可逆性的等价条件
设 $\mx{A}$ 为方阵,则下列命题等价:
  1. 矩阵的 列向量 张成 $\R^p$。
  2. 矩阵的 行向量张成 $\R^p$。
  3. 对任意 $\vc{y}$,方程 $\mx{A} \vc{x} = \vc{y}$ 都有解。
  4. 矩阵的 列向量线性无关
  5. 矩阵的 行向量线性无关
  6. 方程 $\mx{A} \vc{x} = \vc{0}$ 只有解 $\vc{x}=\vc{0}$。
  7. 矩阵 $\mx{A}$ 可逆。

由定理 6.7,$(i)$ 与 $(iii)$ 等价;由定理 6.5,$(iv)$ 与 $(vi)$ 等价。又因为 $\mx{A}$ 是方阵,根据 定理 5.5,其列向量张成 $\R^p$ 当且仅当这些列向量线性无关。因此 $(i)$、$(iii)$、$(iv)$、$(vi)$ 等价。
若 $(i)$ 成立,则由 定理 6.8,存在矩阵 $\mx{B}$ 使 $\mx{A}\mx{B}=\mx{I}$。此时 $(iv)$ 也成立,所以 $\mx{A}\vc{z}=\vc{0}$ 只有零解。对任意 $\vc{x}$, $\mx{A}(\mx{B}\mx{A}\vc{x}-\vc{x})=\vc{0}$,故 $\mx{B}\mx{A}\vc{x}-\vc{x}=\vc{0}$,即 $\mx{B}\mx{A}=\mx{I}$。由 定理 6.2,$\mx{B}$ 就是 $\mx{A}$ 的逆矩阵,因此 $(vii)$ 成立。反过来,若 $(vii)$ 成立,则 $\mx{A}^{-1}$ 是左逆;由 定理 6.6,其列向量线性无关,故 $(iv)$ 成立。因此 $(i)$、$(iii)$、$(iv)$、$(vi)$、$(vii)$ 全部等价。
最后,把上述结论应用于 $\mx{A}^{\T}$。由于 $\mx{A}$ 可逆当且仅当 $\mx{A}^{\T}$ 可逆,$\mx{A}^{\T}$ 的列向量也就给出 $\mx{A}$ 的行向量,因此 $(ii)$ 与 $(v)$ 也与其余命题等价。
$\square$


6.8 基变换


第 5.10 节已经概述了基变换:用第一组 $\{\vc{e}_1,\vc{e}_2\}$ 表示第二组 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$,即
\begin{align} \hat{\vc{e}}_1 = b_{11} \vc{e}_1 + b_{21} \vc{e}_2,\\ \hat{\vc{e}}_2 = b_{12} \vc{e}_1 + b_{22} \vc{e}_2, \end{align} (6.78)
式(5.102)相比,上式只是把 $x_{ij}$ 改记为 $b_{ij}$。 写成矩阵形式后更加强大,因为借助相应矩阵的逆即可得到反方向的变换。 下面的定理把基变换推广到任意维数,并写成矩阵形式。

定理 6.10: 基变换
设 $\R^n$ 中两组 $\{\vc{e}_1,\vc{e}_2,\dots,\vc{e}_n\}$ 与 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2,\dots,\hat{\vc{e}}_n\}$ 满足
\begin{align} \hat{\vc{e}}_1 &= b_{11} \vc{e}_1 + b_{21} \vc{e}_2 + \dots + b_{n,1} \vc{e}_n, \\ \hat{\vc{e}}_2 &= b_{12} \vc{e}_1 + b_{22} \vc{e}_2 + \dots + b_{n,2} \vc{e}_n, \\ &\dots \\ \hat{\vc{e}}_n &= b_{1,n} \vc{e}_1 + b_{2,n} \vc{e}_2 + \dots + b_{n,n} \vc{e}_n, \end{align} (6.79)
某一向量 $\vc{v}$ 在两组基下分别表示为
\begin{align} \vc{v} &= v_1\vc{e}_1 + v_2\vc{e}_2 + v_3\vc{e}_3+\dots+v_n\vc{e}_n = \\ &= \hat{v}_1\hat{\vc{e}}_1 + \hat{v}_2\hat{\vc{e}}_2 + \hat{v}_3\hat{\vc{e}}_3+\dots+\hat{v}_n\hat{\vc{e}}_n, \end{align} (6.80)
令 $\mx{B}$ 为以 $\hat{\vc{e}}_i$ 为列向量的矩阵,则有
\begin{align} \vc{v} = \mx{B}\hat{\vc{v}} = \begin{pmatrix} b_{11} & b_{12} & \dots & b_{1,n} \\ b_{21} & b_{22} & \dots & b_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{n,1} & b_{n,2} & \dots & b_{n,n} \end{pmatrix} \vc{\hat{v}}, \end{align} (6.81)
其中 $\vc{v}=(v_1,v_2,v_3,\dots,v_n)$,$\hat{\vc{v}}=(\hat{v}_1,\hat{v}_2,\hat{v}_3,\dots,\hat{v}_n)$。

先把 $\vc{v}$ 的表示改写为
\begin{align} \vc{v} &= \sum_{i=1}^n x_i\vc{e}_i \\ &= \sum_{i=1}^n \hat{x}_i\hat{\vc{e}}_i, \end{align} (6.82)
并把 $\hat{\vc{e}}_j$ 写为
\begin{align} \hat{\vc{e}}_j = \sum_{i=1}^n b_{ij}\vc{e}_i, \end{align} (6.83)
然后把 式(6.83) 代入 式(6.82)的第 2 行,得到
\begin{align} \vc{v} = \sum_{j=1}^n \hat{x}_j\hat{\vc{e}}_j = \sum_{j=1}^n \hat{x}_j \Biggl( \sum_{i=1}^n b_{ij}\vc{e}_i \Biggr) = \sum_{i=1}^n \Biggl( \sum_{j=1}^n b_{ij} \hat{x}_j \Biggr) \vc{e}_i. \end{align} (6.84)
由于一个向量在给定下只有唯一一组坐标(三维情形见 定理 2.5),而 $\vc{v}$ 又有以下两种表示:
\begin{align} \vc{v} &= \sum_{i=1}^n x_i\vc{e}_i \\ \vc{v} &= \sum_{i=1}^n \Biggl( \sum_{j=1}^n b_{ij} \hat{x}_j \Biggr) \vc{e}_i, \end{align} (6.85)
所以必有
\begin{gather} x_i = \sum_{j=1}^n b_{ij} \hat{x}_j \\ \Longleftrightarrow \\ \vc{x} = \mx{B}\hat{\vc{x}}. \end{gather} (6.86)
证明完毕。
$\square$


根据式(6.81),有 $\vc{v} = \mx{B}\vc{\hat{v}}$; 若 $\mx{B}$ 可逆,也就有 $\vc{\hat{v}} = \mx{B}^{-1} \vc{v}$。实际应用中往往更关心后一表达式。
6.9 正交矩阵


有一类特殊矩阵称为正交矩阵, 它们有一个方便的性质:转置即为逆矩阵。正交矩阵十分重要,例如可描述两个标准正交之间的基变换。先给出定义。

定义 6.18: 正交矩阵
若方阵 $\mx{B}$ 的列向量构成标准正交基,则称 $\mx{B}$ 为正交矩阵。
注意,由于这些列向量构成标准正交基定义 3.3), 更准确的名称似乎应是“标准正交矩阵”。不过“正交矩阵”这一名称沿用已久,本书也遵循这一惯例。 由这个简洁定义可以证明下述定理。

定理 6.11: 正交矩阵的等价条件
下列命题等价:
$\spc (i)$ 矩阵 $\mx{B}$ 正交。
$\spc (ii)$ $\mx{B}$ 的列向量构成标准正交基
$\spc (iii)$ $\mx{B}$ 的行向量构成标准正交基
$\spc (iv)$ $\mx{B}^{-1} = \mx{B}^{\T}$。

$(i)$ 与 $(ii)$ 就是定义本身,无须证明。
接下来证明 $(iv)$ 与 $(ii)$ 等价。设标准正交基(定义 3.3)由向量组 $\{\vc{b}_1,\vc{b}_2,\vc{b}_3,\dots,\vc{b}_n\}$ 构成。把这些向量依次作为矩阵 $\mx{B}$ 的列向量,即
\begin{align} \mx{B} &= \begin{pmatrix} | & | & \dots & | \\ \vc{b}_{1} & \vc{b}_{2} & \dots & \vc{b}_{n} \\ | & | & \dots & | \\ \end{pmatrix}, \end{align} (6.87)
于是 $\mx{B}$ 的转置乘以 $\mx{B}$ 为
\begin{align} \mx{B}^{\T} \mx{B} &= \begin{pmatrix} -\,\,\, \vc{b}_{1}^\T - \\ -\,\,\, \vc{b}_{2}^\T - \\ -\,\,\, \vc{b}_{3}^\T - \\ \vdots \\ -\,\,\, \vc{b}_{n}^\T - \end{pmatrix} \begin{pmatrix} | & | & | & \dots & | \\ \vc{b}_{1} & \vc{b}_{2} & \vc{b}_{3} & \dots & \vc{b}_{n} \\ | & | & | & \dots & | \\ \end{pmatrix}\\ &= \begin{pmatrix} \vc{b}_{1}^\T \vc{b}_{1} & \vc{b}_{1}^\T \vc{b}_{2} & \vc{b}_{1}^\T \vc{b}_{3} & \dots & \vc{b}_{1}^\T \vc{b}_{n} \\ \vc{b}_{2}^\T \vc{b}_{1} & \vc{b}_{2}^\T \vc{b}_{2} & \vc{b}_{2}^\T \vc{b}_{3} & \dots & \vc{b}_{2}^\T \vc{b}_{n} \\ \vc{b}_{3}^\T \vc{b}_{1} & \vc{b}_{3}^\T \vc{b}_{2} & \vc{b}_{3}^\T \vc{b}_{3} & \dots & \vc{b}_{3}^\T \vc{b}_{n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \vc{b}_{n}^\T \vc{b}_{1} & \vc{b}_{n}^\T \vc{b}_{2} & \vc{b}_{n}^\T \vc{b}_{3} & \dots & \vc{b}_{n}^\T \vc{b}_{n} \\ \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & 0 & \dots & 0 \\ 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ \end{pmatrix} = \mx{I}, \end{align} (6.88)
这里得到单位矩阵 $\mx{I}$,因为标准正交基的定义给出 $\vc{b}_i\cdot\vc{b}_i=1$,且当 $i\neq j$ 时 $\vc{b}_i\cdot\vc{b}_j=0$。因此 $\mx{B}^{\T}\mx{B}=\mx{I}$,即 $\mx{B}^{-1}=\mx{B}^{\T}$,所以 $(ii)\Rightarrow(iv)$。反过来,若 $(iv)$ 成立,则 $\mx{B}^{\T}\mx{B}=\mx{I}$;其第 $ij$ 个元素就是 $\vc{b}_i\cdot\vc{b}_j$,故各列向量长度为 1 且两两正交,于是 $(ii)$ 成立。
现在已经证明 $(i)$、$(ii)$ 与 $(iv)$ 等价,只需再证明 $(iii)$ 与它们等价。令 $\mx{A}=\mx{B}^{\T}$。若 $(iv)$ 成立,则
\begin{equation} \mx{A}^{-1}=(\mx{B}^{\T})^{-1}=\mx{B}=\mx{A}^{\T}. \end{equation} (6.89)
所以 $\mx{A}$ 也满足 $(iv)$;由已经证明的等价关系,它的列向量构成标准正交基。由于 $\mx{A}=\mx{B}^{\T}$,这些列向量正是 $\mx{B}$ 的行向量,故 $(iii)$ 成立。反向推理同理,因此四个命题彼此等价。
$\square$


这意味着 正交 矩阵的逆就是其转置,即 $\mx{A}^{-1}=\mx{A}^{\T}$。这非常方便,因为转置易于计算,而一般方阵的逆通常并非如此。

例 6.13: 旋转矩阵的逆
绕 $z$ 轴旋转 $\phi$ 弧度的旋转矩阵(见 第 6.4 节)为
\begin{equation} \mx{R}_z(\phi) = \begin{pmatrix} \cos \phi & -\sin \phi & 0 \\ \sin \phi & \hid{-}\cos \phi & 0 \\ 0 & 0 & 1 \end{pmatrix}. \end{equation} (6.90)
根据 定义 6.18与定理 6.11,正交矩阵的逆等于其转置。为验证该旋转矩阵正交,只需验证它与其转置的乘积为单位矩阵:
\begin{align} \mx{R}_z(\phi)\mx{R}^{\T}_z(\phi) &= \begin{pmatrix} \cos \phi & -\sin \phi & 0 \\ \sin \phi & \hid{-}\cos \phi & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} \hid{-}\cos \phi & \sin \phi & 0 \\ -\sin \phi & \cos \phi & 0 \\ 0 & 0 & 1 \end{pmatrix} \\ &= \begin{pmatrix} \cos \phi\cos \phi + \sin \phi\sin \phi & \cos \phi\sin \phi-\sin \phi\cos \phi & 0 \\ \sin \phi\cos \phi - \cos \phi\sin \phi & \sin \phi\sin \phi+ \cos \phi\cos \phi& 0 \\ 0 & 0 & 1 \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} =\mx{I}, \end{align} (6.91)
其中使用了恒等式 $\cos^{2}+\sin^{2}=1$。 这说明 $\mx{R}_z(\phi)$ 是正交矩阵。事实上,所有旋转矩阵都是正交矩阵。

定理 6.12: 正交性与长度保持
矩阵 $\mx{B}$ 正交,当且仅当对所有向量 $\vc{v}$ 都有 $\ln{\mx{B}\vc{v}}=\ln{\vc{v}}$。也就是说,正交矩阵所表示的映射恰好保持向量的长度

正如 例 6.6所示,两个向量 $\vc{u}$ 与 $\vc{v}$ 的点积可写为 $\vc{u}\cdot\vc{v}=\vc{u}^{\T}\vc{v}$。先设 $\mx{B}$ 正交,则
\begin{gather} \ln{\mx{B}\vc{v}} = \ln{\vc{v}} \\ \Longleftrightarrow \\ \ln{\mx{B}\vc{v}}^2 = \ln{\vc{v}}^2 \\ \Longleftrightarrow \\ \bigl(\mx{B}\vc{v}\bigr) \cdot \bigl(\mx{B}\vc{v}\bigr) = \vc{v} \cdot \vc{v} \\ \Longleftrightarrow \\ \bigl(\mx{B}\vc{v}\bigr)^\T \bigl(\mx{B}\vc{v}\bigr) = \vc{v}^\T \vc{v}. \end{gather} (6.92)
利用转置规则可化简最后一式的左端:
\begin{gather} \bigl(\mx{B}\vc{v}\bigr)^\T \bigl(\mx{B}\vc{v}\bigr) = \vc{v}^\T\underbrace{\mx{B}^\T \mx{B}}_{\mx{I}} \vc{v} = \vc{v}^\T \mx{I} \vc{v} = \vc{v}^\T \vc{v} = \vc{v}\cdot \vc{v}, \end{gather} (6.93)
这里利用了 $\mx{B}$ 正交,因而 $\mx{B}^{\T}\mx{B}=\mx{I}$。这证明了正交矩阵保持长度。
反过来,若 $\mx{B}$ 对所有向量都保持长度,则对任意 $\vc{v}$ 都有 $\vc{v}^{\T}(\mx{B}^{\T}\mx{B}-\mx{I})\vc{v}=0$。矩阵 $\mx{B}^{\T}\mx{B}-\mx{I}$ 是对称矩阵;依次取标准基向量及其两两之和,便可知其对角元素和非对角元素全为零。因此 $\mx{B}^{\T}\mx{B}=\mx{I}$,即 $\mx{B}^{-1}=\mx{B}^{\T}$,由定理 6.11 可知 $\mx{B}$ 正交。
$\square$


定理 6.13: 正交矩阵保持点积
若 $\mx{B}$ 是正交矩阵,则 $(\mx{B}\vc{u})\cdot(\mx{B}\vc{v})=\vc{u}\cdot\vc{v}$。也就是说,正交矩阵所表示的映射保持点积;在两组由正交矩阵联系的标准正交基下计算点积,结果相同。

正如 例 3.6,有 $\vc{u}\cdot\vc{v}=\frac14\bigl(\ln{\vc{u}+\vc{v}}^2-\ln{\vc{u}-\vc{v}}^2\bigr)$,因此
\begin{align} (\mx{B} \vc{u}) \cdot(\mx{B}\vc{v}) &= \frac{1}{4}\Bigl( \ln{ \mx{B}\vc{u} + \mx{B}\vc{v} }^2 - \ln{ \mx{B}\vc{u} - \mx{B}\vc{v} }^2\Bigr) \\ &= \frac{1}{4}\Bigl( \ln{ \mx{B}\bigl(\vc{u} + \vc{v}\bigr) }^2 - \ln{ \mx{B}\bigl(\vc{u} - \vc{v}\bigr) }^2\Bigr) \\ &= \frac{1}{4}\Bigl( \ln{ \vc{u} + \vc{v} }^2 - \ln{ \vc{u} - \vc{v} }^2\Bigr) = \vc{u}\cdot\vc{v}, \\ \end{align} (6.94)
从倒数第二行到最后一行使用了 定理 6.12,即正交矩阵保持长度。
$\square$


定理 6.14: 正交矩阵的乘积
若 $\mx{A}$ 与 $\mx{B}$ 都是 正交 矩阵,则 $\mx{A}\mx{B}$ 也是 正交

定理 6.12,正交矩阵保持长度。由于
\begin{align} \ln{\mx{A}\mx{B}\vc{v}} = \ln{\mx{A}\left(\mx{B}\vc{v}\right)} = \ln{\mx{B}\vc{v}} = \ln{\vc{v}} \end{align} (6.95)
可知 $\mx{A}\mx{B}$ 保持长度,因此由定理 6.12,它是正交矩阵。
$\square$


例 6.14: 正交矩阵乘法可视化
正如 定理 6.14可知,当 $\mx{A}$ 与 $\mx{B}$ 都 正交 时,$\mx{A}\mx{B}$ 为 正交。下面的交互式图解将可视化两个 正交矩阵。
交互式图解 6.9: 本交互式图解展示一个 $2\times2$ 正交矩阵 $\mx{A}$。它的两个列向量 $\textcolor{#aa0000}{\vc{a}_{,1}}$ 与 $\textcolor{#009000}{\vc{a}_{,2}}$ 以向量形式绘出。最上方的滑块可改变 $\mx{A}$。单击或点按 前进 继续下一步。若要恢复原矩阵,请单击或点按 重置
交互式图解 6.9: 最后一步展示 $\hid{\mx{M}=\mx{A}\mx{B}}$ 的列向量 $\hid{\vc{m}_{,1}}$ 与 $\hid{\vc{m}_{,2}}$。根据定理 6.14,由于 $\hid{\mx{A}}$ 与 $\hid{\mx{B}}$ 均为正交矩阵,$\hid{\mx{M}}$ 也正交。建议调节滑块以加深理解:结果何时成为单位矩阵 $\hid{\mx{I}}$?是否可以断定 $\hid{\mx{A}}$ 与 $\hid{\mx{B}}$ 都是旋转矩阵?能否从 $\hid{\mx{M}}$ 中看出来?
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\textcolor{#0000aa}{\vc{b}_{,1}}$
$\textcolor{#aaaa00}{\vc{b}_{,2}}$
$\textcolor{#000000}{\vc{m}_{,1}}$
$\textcolor{#000000}{\vc{m}_{,2}}$
$\textcolor{#777777}{\vc{b}_{1,}}$
$\textcolor{#777777}{\vc{b}_{2,}}$

例 6.15: 用正交矩阵作基变换
设有两组 标准正交 :$\{\vc{e}_1,\vc{e}_2\}$ 与 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$,定义为
\begin{equation} \vc{e}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \vc{e}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}, \ \ \mathrm{以及} \ \ \hat{\vc{e}}_1 = \begin{pmatrix} \frac{\sqrt{3}}{2} \\ \frac{1}{2} \end{pmatrix}, \hat{\vc{e}}_2 = \begin{pmatrix} -\frac{1}{2} \\ \frac{\sqrt{3}}{2} \end{pmatrix}. \end{equation} (6.96)
容易验证:对 $i\in\{1,2\}$,有 $\ln{\vc{e}_i}=1$、$\ln{\hat{\vc{e}}_i}=1$;同时 $\vc{e}_1\cdot\vc{e}_2=0$、$\hat{\vc{e}}_1\cdot\hat{\vc{e}}_2=0$。因此这里有两组 标准正交 ,依据 定义 3.3。可以利用 定理 6.10 求出表示这些 的矩阵。不过对于 标准正交 ,还有一种直观方法:把 $(1,0)$ 与 $(0,1)$ 看作在 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$ 下表示的向量,再构造矩阵把它们变换到 $\{\vc{e}_1,\vc{e}_2\}$。如下所示,构造很简单。
\begin{align} \underbrace{ \begin{pmatrix} \frac{\sqrt{3}}{2} & -\frac{1}{2}\\  \frac{1}{2} & \frac{\sqrt{3}}{2} \end{pmatrix} }_{\mx{A}} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} \frac{\sqrt{3}}{2} \\ \frac{1}{2} \end{pmatrix} \ \ \mathrm{以及} \ \ \underbrace{ \begin{pmatrix} \frac{\sqrt{3}}{2} & -\frac{1}{2}\\  \frac{1}{2} & \frac{\sqrt{3}}{2} \end{pmatrix} }_{\mx{A}} \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} -\frac{1}{2} \\ \frac{\sqrt{3}}{2} \\ \end{pmatrix} \end{align} (6.97)
现设向量 $\vc{v}=(3/4,1/2)$ 以基 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$ 表示,希望把它变换到基 $\{\vc{e}_1,\vc{e}_2\}$ 下。只需乘以上面的矩阵 $\mx{A}$:
\begin{equation} \mx{A}\vc{v} = \begin{pmatrix} \frac{\sqrt{3}}{2} & -\frac{1}{2}\\  \frac{1}{2} & \frac{\sqrt{3}}{2} \end{pmatrix} \begin{pmatrix} \frac{3}{4} \\ \frac{1}{2} \end{pmatrix} = \begin{pmatrix} \frac{3\sqrt{3}-2}{8} \\ \frac{2\sqrt{3}+3}{8} \end{pmatrix} \end{equation} (6.98)
因此,$\mx{A}$ 可把基 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$ 下的向量变换为基 $\{\vc{e}_1,\vc{e}_2\}$ 下的表示。相应地,$\mx{A}^{\T}$ 可执行反向变换。

再设有另一组 标准正交基 $\{\bar{\vc{e}}_1,\bar{\vc{e}}_2\}$,其变换矩阵为 $\mx{B}$。要把向量从 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$ 变换到 $\{\bar{\vc{e}}_1,\bar{\vc{e}}_2\}$,先用 $\mx{A}$ 变换到 $\{\vc{e}_1,\vc{e}_2\}$,再用 $\mx{B}^{\T}$ 变换到目标基。作用于向量 $\vc{v}$ 时,可写为
\begin{equation} \vc{v}' = \mx{B}^\T \mx{A} \vc{v}, \end{equation} (6.99)
其中 $\vc{v}'$ 以基 $\{\bar{\vc{e}}_1,\bar{\vc{e}}_2\}$ 表示。交互式图解 6.10展示了这一过程的前几个步骤。
交互式图解 6.10: 在基 $\{\hat{\vc{e}}_1, \hat{\vc{e}}_2\}$ 下,灰色圆点表示一个向量(为清楚起见省略箭头),虚线表示其坐标。点按 前进 继续。
交互式图解 6.10: 这里引入新基 $\hid{\{\vc{e}_1,\vc{e}_2\}}$。基变换的任务是找出一个由矩阵描述的变换,使其作用于 $\hid{\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}}$ 中的向量后,给出同一向量在 $\hid{\{\vc{e}_1,\vc{e}_2\}}$ 下的坐标。
$\textcolor{#aa0000}{\hat{\vc{e}}_1}$
$\textcolor{#aa0000}{\hat{\vc{e}}_1}$
$\textcolor{#aa0000}{\hat{\vc{e}}_1}$
$\textcolor{#aa0000}{\hat{\vc{e}}_2}$
$\textcolor{#aa0000}{\hat{\vc{e}}_2}$
$\textcolor{#aa0000}{\hat{\vc{e}}_2}$
$\textcolor{#00aa00}{\vc{e}_1}$
$\textcolor{#00aa00}{\vc{e}_2}$
6.10 导论示例再探


第 6.1 节中,左侧是原图,右侧是用矩阵以某种方式处理后的图像。 电视或计算机显示器包含大量(通常数以百万计)像素,每个像素都有红、绿、蓝三个分量。 可以把每个像素的三个分量写成向量:
\begin{equation} \vc{p} = \begin{pmatrix} r\\ g\\ b \end{pmatrix}, \end{equation} (6.100)
其中 $r$、$g$、$b$ 分别是像素的红、绿、蓝分量。例中还有一个作用于每个像素的 $3\times 3$ 矩阵 $\mx{M}$:
\begin{align} \vc{p}' = \begin{pmatrix} r'\\ g'\\ b' \end{pmatrix}= \mx{M}\vc{p} = \begin{pmatrix} m_{11} && m_{12} && m_{13} \\ m_{21} && m_{22} && m_{23} \\ m_{31} && m_{32} && m_{33} \end{pmatrix} \begin{pmatrix} r\\ g\\ b \end{pmatrix}, \end{align} (6.101)
注意,本例用 $r$、$g$、$b$ 表示向量分量,而没有用 $x$、$y$、$z$ 或 $p_x$、$p_y$、$p_z$,这样更能直观显示所处理的对象。 由矩阵—向量乘法规则可知,例如 $r' = m_{11} r+ m_{12}g+ m_{13}b$,等等。 因此,若使用单位矩阵 $\mx{I}$,便得到原图;若使用 $\mx{M} = \left( \begin{smallmatrix} 1 & 1 & 1 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end{smallmatrix} \right)$, 则 $r' = r+g+b$、$g'=b'=0$,得到红色图像。 最后,若 $\mx{M}$ 的各行相同,就有 $r'=g'=b'$,即得到灰度图像。 处理图像的方法远不止这些,而矩阵已经能带我们走得很远。


第 5 章:高斯消元法(上一章) 第 7 章:行列式(下一章)