© 2015-2020 Jacob Ström, Kalle Åström, and Tomas Akenine-Möller

加载并构建章节...

第六章:矩阵





进入矩阵的世界。
6.1 引言


矩阵是一个功能非常强大的数据处理工具。如交互插图 6.1所示的例子, 矩阵可以用不同的方式来变换图像。 在介绍完理论之后,文本会再回到这个例子。
交互插图 6.1: 图像的每个像素(由英文"picture element"的翻译而来)由三个分量组成,即红色($r$)、绿色($g$)和蓝色($b$)分量。因此,每个像素可以看作是一个(列)向量,$\vc{p} = \left( \begin{smallmatrix} r \\ g \\ b \end{smallmatrix} \right)$。 在说明文字下方,有一个矩阵,用$\mx{M}$表示,它只是$3\times 3$个值。 根据那里的数字,你会在上方右侧的图像上得到不同的结果。 矩阵$\mx{M}$被应用于左侧图像的每个像素的颜色分量向量$\vc{p}$。 读者可以尝试以下矩阵 $\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: 图像的每个像素("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{\mx{M}}$被应用于左侧图像的每个像素的颜色分量向量$\hid{\vc{p}}$。 读者可以尝试以下矩阵 $\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$,即三行三列。 然而,一般来说,矩阵可以有任意大小。 这引出了以下定义。

定义 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{where } \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{and } \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{where } \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{and } \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: 矩阵的行向量和列向量
$r \times c$矩阵$\mx{A}$的第$i$个行向量用$\vc{a}_{i,}^\T$表示,它有 $c$个标量元素。
$\mx{A}$的第$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之外, 其他位置都是零,即,
\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}$的列数是1,即$c=1$, 那么我们有一个列向量,我们可以将它记为向量,即$\vc{a}$。 此外,如果矩阵$\mx{B}$的行数是1,即$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{column} \\ \text{vector} \end{array}} ,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \underbrace{ \mx{B} }_{1\times 3} = \bigl(5\,\,\, 1 \,\,\, 4\bigr) = \underbrace{ \vc{b}^\T }_{\begin{array}{c} \text{transposed} \\ \text{column} \\ \text{vector} \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{S} = k \mx{A}$,它与 $\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_{sk} 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{A}$的第$i$行行向量和$\mx{B}$的第$j$列列向量之间计算标量积 来生成$\mx{P}$中第$i$行第$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}\vc{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}\mx{N}$,只有在$\mx{M}$是$r \times s$且$\mx{N}$是$s\times t$时才定义。 这意味着$\mx{M}$的列数($s$)必须等于$\mx{N}$的行数($s$)。 因此,$r$和$t$可以是任意值,只要它们$\geq 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{#0000cc}{4} \cdot (\textcolor{#cc0000}{-4}) \textcolor{#0000cc}{- 2}\cdot \textcolor{#00cc00}{5} \textcolor{#0000cc}{- 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 \\ u_n \end{pmatrix} = \sum_{i=1}^n u_i v_i. \end{gather} (6.31)

例 6.7: 2000年前的中国问题
线性方程组在中国古典数学教科书《九章算术》中得到研究。 该书编纂于公元前头两个世纪。书中第8章名为《方程》。 它包含几个线性方程组的问题。其中一个问题(问题17)是:

“今有五羊、四狗、三鸡、二兔,共值一千四百九十六钱;四羊、二狗、六鸡、三兔,共值一千一百七十五钱;三羊、一狗、七鸡、五兔,共值九百五十八钱;二羊、三狗、五鸡、一兔,共值八百六十一钱。问:各值几何?”

引入一个变量表示每种动物的价格,使得每只羊价格为$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章的主题,该章讨论高斯消元法。 求解这样的方程组也是中国数学教科书第8章的主题。

接下来,我们也将使用高斯消元法来求解这个方程组。然而,为了节省空间, 我们不写出未知数,而是将左侧和右侧写在一个大括号内,中间用一条垂直 线分隔。这导致
\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$坐标保持不变,而$x$坐标的变化越大, $y$的绝对值就越大。
交互插图 6.5: 上面的滑块控制切变变换的切变因子$\hid{s}$。如 可以看到的,$\hid{y}$坐标保持不变,而$\hid{x}$坐标的变化越大, $\hid{y}$的绝对值就越大。
根据上图,可以得出结论: 切变是使用单位矩阵完成的,其中一个零被替换为 非零因子$s$。

定义 6.12: 二维切变矩阵
二维切变矩阵由以下任一定义
\begin{align} \mx{H}_{xy}(s) = \begin{pmatrix} 1 & s \\ 0 & 1 \end{pmatrix} \ \ \ \mathrm{or} \ \ \ \mx{H}_{yx}(s) = \begin{pmatrix} 1 & 0 \\ s & 1 \end{pmatrix}. \end{align} (6.43)
注意,$\mx{H}$的第一个下标指的是哪个坐标被改变,第二个 下标指的是用于乘以$s$并添加到第一个坐标的坐标。
作为例子,$\mx{H}_{xy}(s)$意味着$x$坐标将使用$s$乘以$y$坐标进行切变。 实际上,这正是交互插图 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$轴正。对于$\mx{R}_y$,当沿负$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)-(viii)$ 和 $(x)-(xiii)$ 都是显然的,读者可作为练习自行验证。 在下面的论证中,我们将使用这样一个事实:乘积 $\mx{P}=\mx{A}\mx{B}$ 中的元素可以用点积来表示(参见 公式 (6.22)), 即 $[p_{ij}] = \bigl[ \vc{a}_{i,} \cdot \vc{b}_{,j} \bigr]$。
对于 $(vii)$,等号左侧的第 $ij$ 个矩阵元素为: $\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)$ 由于矩阵-矩阵乘法不满足交换律 (即通常情况下 $\mx{A}\mx{B}\neq\mx{B}\mx{A}$ - 参见例 6.9),我们也需要证明这个性质。 等号左侧的矩阵元素变为: $\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}_{,j}) \cdot \vc{c}_{,j} \bigr]$。这就完成了证明。
$(ix)$ 我们从左侧开始,经过一些计算后发现 位置 $ij$ 处的矩阵元素可以表示为:$\sum_k (\vc{a}_{i,}\cdot \vc{b}_{,k})c_{kj}$。 类似地,右侧变为: $\sum_k a_{ik}(\vc{b}_{k,}\cdot \vc{c}_{,j})$,在展开这两个表达式(左侧和右侧)后, 我们可以看到它们完全相同。这留作练习。
$(xiv)$ 左边为: $(\mx{A}\mx{B})^\T=$ $\bigl[ \vc{a}_{i,}^\T \vc{b}_{,j} \bigr]^\T=$ $\bigl[ \vc{a}_{j,}^\T \vc{b}_{,i} \bigr]$。在第一步我们使用了 公式 (6.23) 表示矩阵乘法,第二步则是转置(将 $i$ 与 $j$ 互换)。 对于右边,我们采用类似的策略: $\mx{B}^\T \mx{A}^\T=$ $\bigl[ b_{ij} \bigr]^\T \bigl[ a_{ij} \bigr]^\T=$ $\bigl[ b_{ji} \bigr] \bigl[ a_{ji} \bigr]=$ $\bigl[ \vc{b}_{,i} \vc{a}_{j,}^\T \bigr]$。 在最后一个表达式中,我们可以像 $\vc{a}\cdot \vc{b} = \vc{b} \cdot \vc{a}$ 那样交换向量的顺序, 从而使得左右两边相等,证毕。
$\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}$ 都不是 $\mx{0}$。 注意,这会导致一些并不总是直观的结果。 例如,假设我们有如下情况,
\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}$ 不等于 $\mx{O}$。 通常,当我们看到如 (6.50) 第一行的表达式时,我们习惯于认为 $\mx{B}=\mx{C}$。这确实是可能的,然而, 正如我们在 (6.49) 中所见, 矩阵-矩阵乘法的任何一项都不需要是零矩阵 $\mx{O}$,就可以使积为零矩阵。 在这种情况下,这意味着 $\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 & 1 \\ 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} \times 4) \longrightarrow (4 \times 4)$,即大小为 $4\times 4$。接下来我们计算 $\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} \times 2) \longrightarrow (2 \times 2)$,即大小为 $2\times 2$。 因此,很明显,通常我们有 $\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{I}$,$\mx{A}^{-1}$ 被称为右逆,而 对于 $\mx{A}^{-1}\mx{A} = \mx{I}$,$\mx{A}^{-1}$ 被称为左逆。
接下来,我们将给出一个定理,表明如果一个矩阵是可逆的,那么只有 一个这样的矩阵,并且它既作为左逆也作为右逆。

定理 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: 矩阵逆 1
对于二维旋转矩阵 $\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) = & \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\times 2$ 矩阵 $\mx{A}$ 可视化为 它所包含的两个列向量 $\vc{a}_{,1}$ 和 $\vc{a}_{,2}$,即 $\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$。 $\textcolor{#aa0000}{\vc{a}_{,1}}$ 和 $\textcolor{#00aa00}{\vc{a}_{,2}}$ 都可以在此插图中移动。 此外,逆矩阵 $\mx{A}^{-1}$ 显示在右侧,其 两个列向量在图中用蓝色和黄色表示。 首先展示了一个例子,其中 $\mx{A}$ 是使用 $\phi=\pi/6$ 的旋转矩阵,即30度。 可以看到红色向量变为 $(\cos(\pi/6),\sin(\pi/6)=(\sqrt{3}/2,0.5)$。 还显示了向量对的平行四边形。对于旋转矩阵,这些 变成面积为1.0的正方形。这将在第7章中进一步解释,届时将清楚 面积与相应矩阵的行列式有关。 单击/按下 前进 继续到下一种类型的矩阵。记得单击/按下 重置 如果你移动了向量并希望恢复原始矩阵。
交互图 6.7: 在这个交互式插图中,我们将一个 $\hid{2\times 2}$ 矩阵 $\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{\textcolor{#aa0000}{\vc{a}_{,1}}}$ 和 $\hid{\textcolor{#00aa00}{\vc{a}_{,2}}}$ 都可以在此插图中移动。 此外,逆矩阵 $\hid{\mx{A}^{-1}}$ 显示在右侧,其 两个列向量在图中用蓝色和黄色表示。 首先展示了一个例子,其中 $\hid{\mx{A}}$ 是使用 $\hid{\phi=\pi/6}$ 的旋转矩阵,即30度。 可以看到红色向量变为 $\hid{(\cos(\pi/6),\sin(\pi/6)=(\sqrt{3}/2,0.5)}$。 还显示了向量对的平行四边形。对于旋转矩阵,这些 变成面积为1.0的正方形。这将在 \linkref{Chapter}{ch_dt} 中进一步解释,届时将清楚 面积与相应矩阵的行列式有关。 单击/按下 前进 继续到下一种类型的矩阵。记得单击/按下 重置 如果你移动了向量并希望恢复原始矩阵。
$\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)。 也很明显,如果 $a_{11}a_{22} - a_{12}a_{21}=0$,那么我们会得到除以零的情况,因此, 逆不存在。
$\square$


在关于行列式的第7章中,将清楚地看到 定理 6.3 中的分母实际上就是 $2\times 2$ 矩阵的行列式。

接下来,我们将展示如何使用高斯消元法第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{(inverse inverse)}, \\ (ii) & (\mx{A}\mx{B})^{-1} = \mx{B}^{-1}\mx{A}^{-1} & \spc\text{(product inverse)}, \\ (iii) & (\mx{A}^{-1})^{\T} = (\mx{A}^{\T})^{-1} & \spc\text{(inverse transpose)}. \\ \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{I}$,就有了该矩阵的逆。 假设我们猜测 $(\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}(\mx{B}\invmx{B})\invmx{A} = $ $\mx{A}\mx{I}\invmx{A} = $ $\mx{A}\invmx{A} = \mx{I}$。因此我们的猜测是正确的,$(\mx{A}\mx{B})$ 的逆确实是 $\invmx{B}\invmx{A}$。
$(iii)$ 注意 $\mx{I}=\mx{I}^{\T}$,然后我们使用定理 6.1 中的 $(xiv)$ 得到 $(\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)$,是 $(\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)
将矩阵 $\mx{M}$ 应用于单位正方形的顶点(解释为列向量)的结果 在交互图 6.8 中展示。
$\phi=$
$s=$
交互图 6.8: 上面的两个滑块控制旋转角度 $\phi$ 和切变因子 $s$。 单位正方形使用以下矩阵变形:$\mx{M} = \mx{R}(\phi)\mx{H}_{xy}(s) \mx{R}(-\phi) \mx{H}_{xy}(-s)$, 这并不完全是单位矩阵,因为矩阵的顺序不正确。 然而请注意当其中一个变量设置为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. 矩阵 $\mx{A}$ 的列向量线性独立的。
  2. 方程 $\mx{A} \vc{x} = \vc{0}$ 只有解 $\vc{x}=\vc{0}$。

根据定义 5.2列向量 $\vc{a}_1, \vc{a}_1, \ldots, \vc{a}_q$ 是线性独立的当且仅当 $\sum_{i=1}^q x_i \vc{a}_i = \vc{0}$。如果 $\mx{A}$ 是具有 $\vc{a}_1, \vc{a}_1, \ldots, \vc{a}_q$ 为列的 $p \times q$ 矩阵, 那么 $\mx{A}\vc{x}=\vc{0} \Leftrightarrow \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}_l^{-1}$ 乘以矩阵方程 $\mx{A} \vc{x} = \vc{0}$ 得到 $\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. 矩阵 $\mx{A}$ 的列向量张成 $\R^p$。
  2. 方程 $\mx{A} \vc{x} = \vc{y}$ 对每个 $\vc{y}$ 都有解。

根据定义 5.3列向量 $\vc{a}_1, \vc{a}_1, \ldots, \vc{a}_q$ 张成 $\R^p$ 当且仅当 $\sum_{i=1}^q x_i \vc{a}_i = \vc{y}$ 对每个 $\vc{y}$ 都有解。 如果 $\mx{A}$ 是具有 $\vc{a}_1, \vc{a}_1, \ldots, \vc{a}_q$ 为列的 $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 \cdot \vc{b}_p)$,那么 $\mx{A} \mx{B} = (\mx{A} \vc{b}_1 \cdot \mx{A} \vc{b}_p) = (\vc{e}_1 \cdot \vc{e}_p) = \mx{I}$。所以 $\mx{B}$ 是 $\mx{A}$ 的右逆。
$\square$


定理 6.9:
设 $\mx{A}$ 为方阵。那么以下陈述是等价的:
  1. 矩阵 $\mx{A}$ 的列向量张成 $\R^p$。
  2. 矩阵 $\mx{A}$ 的行向量张成 $\R^p$。
  3. 方程 $\mx{A} \vc{x} = \vc{y}$ 对每个 $\vc{y}$ 都有解。
  4. 矩阵 $\mx{A}$ 的列向量线性独立的。
  5. 矩阵 $\mx{A}$ 的行向量线性独立的。
  6. 方程 $\mx{A} \vc{x} = \vc{0}$ 只有解 $\vc{x}=\vc{0}$。
  7. 矩阵 $\mx{A}$ 是可逆的。

我们已经证明了命题 $(i)$ 与 $(iii)$ 等价,命题 $(iv)$ 与 $(vi)$ 等价。 我们还证明了 $(iv)$ 蕴含存在右逆。根据 定理6.2,这意味着 $\mx{A}$ 可逆且存在左逆。由于矩阵是方阵,定理5.5给出了 $(i)$ 和 $(iv)$ 的等价性。我们现在需要将 $(i), (iii), (iv), (vi)$ 与 $(vii)$ 联系起来。这通过以下定理链完成。 列向量张成 $(i)$ 根据定理6.8给出右逆的存在性。由于矩阵是方阵,它必然可逆 $(vii)$ 且也有左逆。然后 定理6.6给出列向量线性独立 $(iv)$。因此 $(i), (iii), (iv), (vi)$ 和 $(vii)$ 全都等价。最后,由于无论何时 $\mx{A}$ 可逆,$\mx{A}^T$ 也可逆,关于行向量的命题随之成立。
$\square$


6.8 基变换


第5.10节已经概述了如何进行的变换, 其中第二个 $\{\hat{\vc{e}}_1,\hat{\vc{e}}_2\}$ 可以用 第一个 $\{\vc{e}_1,\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)
这里我们将 $x_{ij}$ 改为了 $b_{ij}$,与方程(5.102)相比。 正如我们将看到的,用矩阵形式表达时这会强大得多,因为你可以通过使用相应矩阵的逆 来获得另一个方向的变换。 在下面的定理中,的变换被推广到任意维度并用矩阵形式书写。

定理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}}$,这也 意味着 $\vc{\hat{v}} = \mx{B}^{-1} \vc{v}$,假设 $\mx{B}$ 可逆。通常感兴趣的就是这个表达式。
6.9 正交矩阵


一类特殊的矩阵被称为正交矩阵,它们有一个方便的性质,即 逆矩阵可以通过取转置来获得。它们很重要,例如,它们可以描述两个标准正交之间的 变换。 我们从以下定义开始。

定义6.18: 正交矩阵
正交矩阵 $\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}$ 的转置与其自身相乘则变为
\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}$,因为标准正交基的定义指出:当$i \neq j$时,$\mx{b}_i\cdot\mx{b}_i=1$且$\mx{b}_i\cdot\mx{b}_j=0$。这意味着当列向量构成标准正交基时,$\mx{B}^{-1} = \mx{B}^{\T}$。 因此,我们已经证明了$(ii) \rightarrow (iv)$。$(iv) \rightarrow (ii)$的证明是类似的,留给读者自行完成。
既然我们已经证明了$(i)$、$(ii)$和$(iv)$的等价性,剩下的就是证明$(iii)$也与$(i)$、$(ii)$或$(iv)$等价。此时,由于$(iv)$,我们知道$\mx{B}\mx{B}^\T=\mx{I}$。我们引入$\mx{A} = \mx{B}^\T$并计算$\mx{A}\mx{A}^\T$,即
\begin{equation} \mx{A}\mx{A}^\T = \mx{B}^\T(\mx{B}^\T)^T = \mx{B}^\T\mx{B}=\mx{I}. \end{equation} (6.89)
这意味着 $\mx{A}$ 必然是正交的,因为 $\mx{A}\mx{A}^\T=\mx{I}$,即根据 $(ii)$ 我们知道其 列向量构成一个标准正交基。然而,由于 $\mx{A} = \mx{B}^\T$,我们也知道 $\mx{B}$ 的行向量构成一个标准正交基,证明完毕。
$\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所述,正交矩阵的逆 是其转置。因此,如果旋转矩阵是正交的, 应该可以得到 $\mx{R}_z(\phi) \mx{R}^{\T}_z(\phi)=\mx{I}$ 作为结果, 即
\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}$ 是一个正交矩阵,则 $\ln{\mx{B}\vc{v}} = \ln{\vc{v}}$,反之亦然, 即该变换保持长度

例6.6所见,两个向量 $\vc{u}$ 和 $\vc{v}$ 之间的点积可以表示为 $\vc{u}\cdot\vc{v} = \vc{u}^\T \vc{v}$。 注意
\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}$, 证明完毕。
$\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} = \frac{1}{4}\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} || \mx{A}\mx{B}\vc{v} || = || \mx{A} \left(\mx{B}\vc{v}\right)|| = || \mx{B}\vc{v}\bigr|| = || \vc{v} || \end{align} (6.95)
我们知道 $\mx{A}\mx{B}$ 保持长度,即它是正交的。
$\square$


例6.14: 正交矩阵乘法可视化
如我们在定理6.14中所见,如果 $\mx{A}$ 和 $\mx{B}$ 都是正交的,则 $\mx{A}\mx{B}$ 是正交的。在下面的交互式插图中,我们将可视化 两个正交矩阵之间的矩阵-矩阵乘法。
交互式插图6.9: 在这个交互式插图中,我们可视化一个大小为 $2\times 2$ 的正交矩阵 $\mx{A}$。 $\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}}$。 注意,根据相关定理(\linkref{Theorem}{theo_mtx_ortho_times_ortho_is_ortho}), 由于 $\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{and} \ \ \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 找出表示这些的矩阵的样子。然而,在处理标准正交时的另一种方法 只是简单地想象在 $\{\hat{\vc{e}}_1, \hat{\vc{e}}_2\}$ 中表示的向量 $(1,0)$ 和 $(0,1)$, 然后弄清楚如何建立一个将这些向量变换到 $\{\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{and} \ \ \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)
现在假设我们在 $\{\hat{\vc{e}}_1, \hat{\vc{e}}_2\}$ 中有一个向量 $\vc{v}=(3/4, 1/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$ 可用于将 $\{\vc{e}_1, \vc{e}_2\}$ 中的向量变换为在 $\{\hat{\vc{e}}_1, \hat{\vc{e}}_2\}$ 中表示。

现在假设我们还有另一个标准正交基 $\{\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$ 到达 $\{\bar{\vc{e}}_1, \bar{\vc{e}}_2\}$。如果我们将此应用于向量 $\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_{23} \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章:行列式(下一章)