定义 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}
其中 $\phi$ 是矩阵逆时针旋转的弧度数。
式(9.6):
\begin{equation}
\begin{cases}
y_1 = \cos(\frac{\pi}{3}) x_1 - \sin(\frac{\pi}{3}) x_2, \\
y_2 = \sin(\frac{\pi}{3}) x_1 + \cos(\frac{\pi}{3}) x_2.
\end{cases}
\end{equation}
式(9.12):
\begin{align}
\vc{x} & = x_1 \vc{e}_1 + x_2 \vc{e}_2,\\
\vc{y} & = y_1 \vc{e}_1 + y_2 \vc{e}_2.\\
\end{align}
定理 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}
此外还有下列直接成立的规则: $1\mx{A}=\mx{A}$, $0\mx{A}=\mx{O}$,
$k\mx{O}=\mx{O}$,以及 $\mx{A}+\mx{O}=\mx{A}$。
定理 9.1:线性映射的矩阵形式
映射 $\vc{y}=F(\vc{x})$ 能写成矩阵形式 $\vc{y}=\mx{A}\vc{x}$,当且仅当它是线性的。
定理 6.9: 设 $\mx{A}$ 为方阵,则下列命题等价:
- 矩阵 $\mx{A}$ 的列向量张成 $\R^p$。
- 矩阵 $\mx{A}$ 的行向量张成 $\R^p$。
- 对每个 $\vc{y}$,方程 $\mx{A}\vc{x}=\vc{y}$ 都有解。
- 矩阵 $\mx{A}$ 的列向量线性无关。
- 矩阵 $\mx{A}$ 的行向量线性无关。
- 方程 $\mx{A}\vc{x}=\vc{0}$ 只有零解 $\vc{x}=\vc{0}$。
- 矩阵 $\mx{A}$ 可逆。
定理 9.2:基向量的像
在线性映射 $\vc{y}=F(\vc{x})$ 的矩阵形式 $\vc{y}=\mx{A}\vc{x}$ 中,若使用基 $\vc{e}_1,\vc{e}_2,\ldots,\vc{e}_n$,则 $\mx{A}$ 的各列就是基向量的像:
$\vc{a}_{,1}=F(\vc{e}_1),\ \vc{a}_{,2}=F(\vc{e}_2),\ldots,\vc{a}_{,n}=F(\vc{e}_n)$。
定义 5.2:线性无关与线性相关
若向量组 $\vc{v}_1,\dots,\vc{v}_n$ 所对应的方程
\begin{equation}
k_1\vc{v}_1 + k_2 \vc{v}_2 + \dots + k_n \vc{v}_n = \vc{0},
\end{equation}
只有唯一解
\begin{equation}
k_1 = k_2 = \dots = k_n =0.
\end{equation}
若还存在其他解,则这组向量线性相关。
定理 9.4:逆映射的等价条件对于从 $\vc{x}\in\mathbb{R}^n$ 到 $\vc{y}\in\mathbb{R}^n$ 的线性映射 $\vc{y}=F(\vc{x})$,下列三个命题等价:
- 映射 $F$ 是双射。
- $F$ 的变换矩阵可逆。
- 基向量 $\vc{e}_1,\ldots,\vc{e}_n$ 的像 $F(\vc{e}_1),\ldots,F(\vc{e}_n)$ 构成 $\mathbb{R}^n$ 的一组基。
定理 7.10:
对任意方阵 $\mx{A}$,下列命题等价:
\begin{equation}
\begin{array}{ll}
(i) & \spc\text{$\mx{A}$ 的列向量构成一组基} \\
(ii) & \spc\text{$\mx{A}$ 的行向量构成一组基} \\
(iii) & \spc\text{矩阵方程} \spc \mx{A} \vc{x} = 0 \spc\text{只有零解} \spc \vc{x}=0 \\
(iv) & \spc\text{矩阵方程}\spc \mx{A} \vc{x} = \vc{y} \spc\text{对每个} \spc \vc{y} \spc\text{都有解} \\
(v) & \spc\text{矩阵} \spc \mx{A} \spc\text{可逆} \\
(vi) & \spc\det \mx{A} \neq 0 \\
\end{array}
\end{equation}
定理 7.1:行列式的性质
\begin{equation}
\begin{array}{llr}
(iv) & \begin{vmatrix} \ldots & \vc{0} & \ldots \end{vmatrix}
= 0 & \spc\text{(有一列为零时行列式为零)} \\
(v) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix}
= -
\begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_i & \ldots \end{vmatrix}
& \spc\text{(交换两列)} \\
(vi) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix}
=
\begin{vmatrix} \ldots & \vc{a}_i+\lambda \vc{a}_j & \ldots & \vc{a}_j & \ldots \end{vmatrix}
& \spc\text{(一列加上另一列的倍数)} \\
(vii) & \det( \mx{A}) = \det( \mx{A}^\T) & \spc\text{(转置)} \\
(viii) & \det( \mx{A} \mx{B}) = \det( \mx{A}) \det( \mx{B}) & \spc\text{(乘积)} \\
(ix) & \det( \mx{A}^{-1}) = \frac{1}{\det( \mx{A})} & \spc\text{(逆矩阵)} \\
\end{array}
\end{equation}
第 9 章:线性映射
本章讨论。就是以一个向量为输入、以另一个向量为输出的函数。是一类特殊函数:形式简单,却十分强大,因此用途广泛。
例 9.1:
图像压缩
在实际工程问题中十分常见,图像或视频压缩便是一例。编码时,图像会被划分成若干块,例如
图 9.1所示的 $4 \times 4$ 像素块。
我们不直接编码块中每个像素的亮度,而是先对每个块施加一次映射。第一步,把 $4\times 4$ 块的各列依次堆叠起来,得到一个 16 维向量 $\vc{x}$。再让它乘以变换矩阵 $\mx{A}$,得到新的 16 维向量 $\vc{y} =\mx{A}\vc{x}$,随后将其重新排成一个 $4 \times 4$ 图像块。由图可见,变换后的各块彼此相似得多:块中的第一个值变化很大,但其余大多数值都接近零(图中为灰色)。因此,这些值可以忽略(置零),或只用很少的比特来表示。解码器得到的 $\hat{\vc{y}}$ 是 $\vc{y}$ 的近似值,因为其中一些值可能已被置零或作了其他近似。然后,解码器执行逆变换 $\hat{\vc{x}} =\mx{A}^{-1} \hat{\vc{y}}$,恢复像素亮度的近似值。
真实的编码器比图中所示更复杂,还包含许多优化。例如,实现时通常不会直接进行矩阵乘法,而会采用数学上等价但速度更快的方法。
交互式图解 9.2展示了图像不同区域的变化程度如何改变。
本章先回顾普通实数(标量)的(即函数),再转向向量。
定义 9.1:
映射
$F$ 是一条规则:它把集合 $N$ 中的每个元素对应到集合 $M$ 中的一个元素,
|
\begin{equation}
F: N \rightarrow M.
\end{equation}
|
(9.1)
|
这看起来或许有些抽象,但其实你早已接触过,只是当时称它为
函数。同一件事还可以写成
|
\begin{equation}
y = F(x).
\end{equation}
|
(9.2)
|
也常使用如下形式:
|
\begin{equation}
F: x \rightarrow y, x \in N.
\end{equation}
|
(9.3)
|
例如,
图 9.3中的函数 $y = x^2$ 是一条规则:它把每个实数 $x$ 对应到实数 $x^2$。因此,本例中 $N$ 和 $M$ 都等于 $\mathbb{R}$。
在线性代数中,传统上使用
一词,而不用函数,但两者含义相同:从元素 $x$ 出发,得到元素 $y$。我们称 $x$
映射到 $y$。注意,每个 $x$ 只能映射到一个 $y$。因此,
图 9.4中的曲线不可能是函数 $y=f(x)$ 的图像,因为例如 $x=1$ 同时对应 $+1$ 和 $-1$ 两个 $y$ 值。
集合 $N$ 称为该的
,集合 $M$ 称为
。陪域中实际能由该映射到达的子集称为映射的
,也称为映射的
像,记作 $V_F$。下面的定义对此作了归纳。
定义 9.2:
映射的定义域、陪域与值域
设有映射 $y = F(x)$,其中 $x \in N$、$y \in M$。则 $N$ 是该映射的
,$M$ 是该映射的
。该映射的
(或称
像)是集合 $V_F$,其中
|
\begin{equation}
V_F = \{F(x) | x \in N\}.
\end{equation}
|
(9.4)
|
竖线应读作“使得”或“具有……性质”。本例中的表达式可读作:“$V_F$ 是所有满足 $x$ 属于集合 $N$ 的元素 $F(x)$ 所成的集合。”对于 $y=x^2$,是包含零的非负实数集,即 $V_F = \mathbb{R}_{\geq 0}$。因此,本例只能到达陪域的一个子集,也就是 $V_F\subset M$。
在线性代数中,函数的输入和输出都是向量,而非标量。设坐标系的基为 $\vc{e}_1,\vc{e}_2$,向量 $\vc{x}$ 的坐标为 $\begin{pmatrix}x_1 \\ x_2 \\\end{pmatrix}$。现在可以定义函数 $\vc{y} = F(\vc{x})$,把每个 $\vc{x}$ 映射到一个新向量 $\vc{y} = \begin{pmatrix}y_1 \\ y_2 \\\end{pmatrix}$。例如,
|
\begin{equation}
\begin{cases}
y_1 = x_1 \\
y_2 = 0
\end{cases}
\end{equation}
|
(9.5)
|
我们无法为这个映射画出简单的函数图像,因为那需要四个维数(输入占两个,输出占两个)。不过,把输入和输出画在同一幅图中,往往能帮助我们直观理解映射。
交互式图解 9.5展示了上述映射。你可以移动红色输入箭头 $\vc{x}$,观察蓝色输出箭头 $\vc{y}$ 如何移动。
可以看到,这个映射把任意输入向量投影到 $\vc{e}_1$ 轴上。平面内的任何向量都可以作为输入,所以定义域是 $\mathbb{R}^2$。输出是二维向量,因此陪域也是 $\mathbb{R}^2$;但值域(即像)只有 $\vc{e}_1$ 轴。在图示的第二步中,值域以绿色标出。
下面来看一个稍有趣些的映射:
|
\begin{equation}
\begin{cases}
y_1 = \cos(\frac{\pi}{3}) x_1 - \sin(\frac{\pi}{3}) x_2, \\
y_2 = \sin(\frac{\pi}{3}) x_1 + \cos(\frac{\pi}{3}) x_2.
\end{cases}
\end{equation}
|
(9.6)
|
可以看到,$x_1$ 与 $x_2$ 前的系数组成了旋转 $\pi/3$ 弧度的旋转矩阵(参见
定义 6.10)。
交互式图解 9.6展示了这个映射;输入向量仍以红色标出,输出向量以蓝色标出。
我们已经知道,向量映射就是以一个向量为输入、以另一个向量为输出的函数。接下来将研究何时可以用矩阵来表示这类映射。
试用
交互式图解 9.6可以看到,输出向量就是输入向量旋转 $\frac{\pi}{3}$ 后的副本。事实上,可以把
式(9.6)写成矩阵形式:
|
\begin{equation}
\begin{pmatrix}
y_1 \\
y_2
\end{pmatrix}
= \left(\begin{array}{rr}
\cos \frac{\pi}{3} & -\sin \frac{\pi}{3} \\
\sin \frac{\pi}{3} & \cos \frac{\pi}{3}
\end{array}\right)
\begin{pmatrix}
x_1 \\
x_2
\end{pmatrix}
\end{equation}
|
(9.7)
|
也可简写为
|
\begin{equation}
\vc{y} = \mx{A} \vc{x}.
\end{equation}
|
(9.8)
|
不难看出,矩阵 $\mx{A}$ 正是
定义 6.10所定义的二维旋转矩阵。当映射能写成矩阵形式 $\vc{y}=\mx{A}\vc{x}$ 时,称 $\mx{A}$ 为该映射的
变换矩阵。
交互式图解 9.3中的例子也能写成矩阵形式:
|
\begin{equation}
\begin{pmatrix}
y_1 \\
y_2
\end{pmatrix}
= \left(\begin{array}{rr}
1 & 0 \\
0 & 0
\end{array}\right)
\begin{pmatrix}
x_1 \\
x_2
\end{pmatrix},
\end{equation}
|
(9.9)
|
本例的变换矩阵为 $\left(\begin{array}{rr} 1 & 0 \\ 0 & 0 \end{array}\right)$。于是自然会问:是否每个向量映射都能写成 $\vc{y} = \mx{A} \vc{x}$,其中 $\mx{A}$ 的系数都是常数?答案是否定的。例如,映射
|
\begin{equation}
\begin{cases}
y_1 = x_1 x_2 + x_2\\
y_2 = x_1 + e^{x_2}
\end{cases}
\end{equation}
|
(9.10)
|
不能写成 $\vc{y} = \mx{A}\vc{x}$。当然,我们可以写成
$\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} = \left(\begin{array}{rr} x_2 & 1 \\ 1 & \frac{e^{x_2}}{x_2} \end{array}\right) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}$,
但这违反了 $\mx{A}$ 的系数必须为常数、即不得依赖 $\vc{x}$ 的要求。为了研究哪些映射能写成这种形式,我们先引入
线性映射的概念。
定义 9.3:
线性映射
若映射 $F$ 满足
|
\begin{equation}
\begin{cases}
F( \vc{x}' + \vc{x}'') = F(\vc{x}') + F(\vc{x}''), \\
F( \lambda \vc{x} ) = \lambda F(\vc{x}). \\
\end{cases}
\end{equation}
|
(9.11)
|
则称 $F$ 为。
直观地说,第一条条件表示“先求和再映射”与“先分别映射再求和”的结果相同。第二条条件表示,把输入放大某个倍数,与把输出放大同样倍数,结果相同。
例 9.2:
从购物车到价格
假设一家商店只出售袋装通心粉、罐装阿拉比亚塔酱和巧克力。购物车中的内容可以建模为一个向量空间:两个购物车相加,就是把二者的商品放入同一个购物车;购物车乘以标量,就是把其中各类商品的数量都乘以该标量。当然,让购物车乘以非整数或负数在现实中会遇到问题,这也限制了模型的实际用途。
我们再引入一组“基购物车”:令 $\vc{e}_1$ 表示装有一袋通心粉的购物车,$\vc{e}_2$ 表示装有一罐阿拉比亚塔酱的购物车,$\vc{e}_3$ 表示装有一块巧克力的购物车。那么,每辆购物车 $\vc{x}$ 都可用三个坐标 $(x_1,x_2,x_3)$ 描述,使得
$\vc{x} = x_1 \vc{e}_1 + x_2 \vc{e}_2 + x_3 \vc{e}_3$。
从购物车 $\vc{x}$ 到价格 $y\in\R$ 存在一个映射。引入矩阵 $\vc{A} = \begin{pmatrix}a_{11} & a_{12} & a_{13} \end{pmatrix}$,其中 $a_{11}$、$a_{12}$、$a_{13}$ 分别是一袋通心粉、一罐阿拉比亚塔酱和一块巧克力的价格。于是总价可写成 $y=\mx{A}\vc{x}$。
现实中的这个映射往往是,例如商店可能推出“买三付二”的促销。不过,把它建模为线性映射通常仍然合理而有用。这里再次体现了数学模型与现实之间的差异——这在数学建模中十分常见。运用数学分析的结论时,必须始终保持理性与批判性思考。即使一袋通心粉的购物车价格是 10,也不意味着你总能按每袋 10 的价格把通心粉卖回商店。
定理 9.1:
线性映射的矩阵形式
映射 $\vc{y}=F(\vc{x})$ 能写成 $\vc{y}=\mx{A}\vc{x}$ 的矩阵形式,当且仅当它是线性的。
要证明该定理,需要证明两个方向:每个线性映射都能写成 $\vc{y}=\mx{A}\vc{x}$;每个形如 $\vc{y}=\mx{A}\vc{x}$ 的映射都是线性的。下面只证明 $\vc{x}$ 和 $\vc{y}$ 都是二维向量的情形;任意维数的证明完全类似。
设 $N$ 与 $M$ 中使用基 $\vc{e}_1,\vc{e}_2$。输入 $\vc{x}$ 与输出 $\vc{y}$ 可在此基下写成
|
\begin{align}
\vc{x} & = x_1 \vc{e}_1 + x_2 \vc{e}_2,\\
\vc{y} & = y_1 \vc{e}_1 + y_2 \vc{e}_2.\\
\end{align}
|
(9.12)
|
把 $\vc{x}$ 的表达式代入 $\vc{y}=F(\vc{x})$,得到
|
\begin{equation}
\vc{y} = F(\vc{x}) = F(x_1 \vc{e}_1 + x_2 \vc{e}_2),
\end{equation}
|
(9.13)
|
由于 $F$ 是线性的,可以依次使用线性的两条条件:
|
\begin{equation}
\vc{y} = F(x_1 \vc{e}_1) + F(x_2 \vc{e}_2) = x_1F(\vc{e}_1) + x_2F(\vc{e}_2).
\end{equation}
|
(9.14)
|
$F$ 把一个向量映射为另一个向量,因此 $F(\vc{e}_1)$ 也可以在该基下表示。设它在基 $\vc{e}_1,\vc{e}_2$ 下的坐标为 $\begin{pmatrix}a_{11} \\ a_{21} \end{pmatrix}$,则
|
\begin{equation}
F(\vc{e}_1) = a_{11}\vc{e}_1 + a_{21}\vc{e}_2.
\end{equation}
|
(9.15)
|
同理,设
|
\begin{equation}
F(\vc{e}_2) = a_{12}\vc{e}_1 + a_{22}\vc{e}_2.
\end{equation}
|
(9.16)
|
于是可继续展开 $F(\vc{x})$:
|
\begin{equation}
\vc{y} = x_1(a_{11}\vc{e}_1 + a_{21}\vc{e}_2) + x_2(a_{12}\vc{e}_1 + a_{22}\vc{e}_2) = \\
(x_1 a_{11} + x_2 a_{12})\vc{e}_1 + (x_1 a_{21} + x_2 a_{22})\vc{e}_2 \\
\end{equation}
|
(9.17)
|
与
式(9.12)第二行比较可知,$y_1=a_{11}x_1+a_{12}x_2$,$y_2=a_{21}x_1+a_{22}x_2$。因此
|
\begin{equation}
\begin{pmatrix} y_1 \\ y_2 \end{pmatrix}
= \left(\begin{array}{rr}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{array}\right)
\begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
\end{equation}
|
(9.18)
|
即
|
\begin{equation}
\vc{y} = \mx{A}\vc{x}.
\end{equation}
|
(9.19)
|
下面证明逆命题:若 $\vc{y}=\mx{A}\vc{x}$,则该映射是线性的。设输入 $\vc{x}'=x_1'\vc{e}_1+x_2'\vc{e}_2=\begin{pmatrix}x'_1\\x'_2\end{pmatrix}$,另有输入 $\vc{x}''=\begin{pmatrix}x''_1\\x''_2\end{pmatrix}$。由
定理 6.1中矩阵运算性质 $(vii)$,第一条线性条件直接成立:
|
\begin{equation}
F(\vc{x}' + \vc{x}'') = \mx{A}(\vc{x}' + \vc{x}'') = \mx{A}\vc{x}' + \mx{A}\vc{x}'' = F(\vc{x}') + F(\vc{x}'').
\end{equation}
|
(9.20)
|
第二条条件同样由矩阵代数得到:
|
\begin{equation}
F(\lambda \vc{x'}) = \mx{A}(\lambda \vc{x}') = \lambda \mx{A} \vc{x}' = \lambda F(\vc{x'})
\end{equation}
|
(9.21)
|
因为标量 $\lambda$ 可置于矩阵任一侧($\mx{A}\lambda=\lambda\mx{A}$)。证毕。
$\square$
我们经常需要求出某个线性映射的矩阵 $\mx{A}$。下面的定理对此非常有用。
定理 9.2:
基向量的像
对于在基 $\vc{e}_1,\vc{e}_2,\ldots,\vc{e}_n$ 下写成 $\vc{y}=\mx{A}\vc{x}$ 的线性映射 $\vc{y}=F(\vc{x})$,矩阵 $\mx{A}$ 的各列就是各基向量的像:
$\vc{a}_{,1}=F(\vc{e}_1),\ \vc{a}_{,2}=F(\vc{e}_2),\ldots,\vc{a}_{,n}=F(\vc{e}_n)$。
这里只证明 $N=M=3$ 的情形;其他 $M$、$N$ 的证明类似。
第一个基向量 $\vc{e}_1=1\vc{e}_1+0\vc{e}_2+0\vc{e}_3$,因而坐标为 $(1,0,0)$。在 $\vc{y}=\mx{A}\vc{x}$ 中代入 $\vc{x}=\begin{pmatrix}1\\0\\0\end{pmatrix}$,得到
|
\begin{equation}
\begin{pmatrix} y_1 \\ y_2 \\ y_3\end{pmatrix}
= \left(\begin{array}{rrr}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}\\
\end{array}\right)
\begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}
= \left(\begin{array}{r}
1 a_{11} + 0 a_{12} + 0 a_{13}\\
1 a_{21} + 0 a_{22} + 0 a_{23}\\
1 a_{31} + 0 a_{32} + 0 a_{33}\\
\end{array}\right)
= \begin{pmatrix} a_{11} \\ a_{21} \\ a_{31} \end{pmatrix},
\end{equation}
|
(9.22)
|
这正是 $\mx{A}$ 的第一列。因此,基向量 $\vc{e}_1$ 的像 $F(\vc{e}_1)$ 就是 $\mx{A}$ 的第一列,记作 $\vc{a}_{,1}$。同理,第二个基向量 $\vc{e}_2=0\vc{e}_1+1\vc{e}_2+0\vc{e}_3$ 的坐标为 $(0,1,0)$,其像为
|
\begin{equation}
\left(\begin{array}{rrr}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}\\
\end{array}\right)
\begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}
= \left(\begin{array}{r}
0 a_{11} + 1 a_{12} + 0 a_{13}\\
0 a_{21} + 1 a_{22} + 0 a_{23}\\
0 a_{31} + 1 a_{32} + 0 a_{33}\\
\end{array}\right)
= \begin{pmatrix} a_{12} \\ a_{22} \\ a_{32} \end{pmatrix},
\end{equation}
|
(9.23)
|
这就是矩阵 $\mx{A}$ 的第二列 $\vc{a}_{,2}$。对第三个基向量同样可得
|
\begin{equation}
\left(\begin{array}{rrr}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}\\
\end{array}\right)
\begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}
= \left(\begin{array}{r}
0 a_{11} + 0 a_{12} + 1 a_{13}\\
0 a_{21} + 0 a_{22} + 1 a_{23}\\
0 a_{31} + 0 a_{32} + 1 a_{33}\\
\end{array}\right)
= \begin{pmatrix} a_{13} \\ a_{23} \\ a_{33} \end{pmatrix},
\end{equation}
|
(9.24)
|
这就是 $\mx{A}$ 的第三列。上述论证可推广到任意的 $M$ 和 $N$。
$\square$
利用这一事实,只需观察各基向量在映射下如何变化,就能轻松求出线性映射的矩阵 $\mx{A}$。
例 9.3:
求线性映射的矩阵
线性映射 $\vc{y}=F(\vc{x})$ 将二维向量 $\vc{x}$ 逆时针旋转 $90$ 度。在标准正交基 $\vc{e}_1=(1,0)$、$\vc{e}_2=(0,1)$ 下,求矩阵形式 $\vc{y}=\mx{A}\vc{x}$ 的变换矩阵 $\mx{A}$。
矩阵 $\mx{A}$ 的第一列是第一个基向量 $\vc{e}_1$ 的像。$\vc{e}_1$ 沿 $x$ 轴方向,逆时针旋转 $90$ 度后与 $y$ 轴同向,坐标为 $(0,1)$。因此第一列为 $\vc{a}_{,1}=\begin{pmatrix}0\\1\end{pmatrix}$。
第二列是第二个基向量的像。$\vc{e}_2$ 沿 $y$ 轴方向,逆时针旋转 $90$ 度后坐标为 $(-1,0)$。因此第二列为 $\vc{a}_{,2}=\begin{pmatrix}-1\\0\end{pmatrix}$,从而
|
\begin{equation}
\mx{A} = \left(\begin{array}{rr}
0 & -1 \\
1 & 0 \\
\end{array}\right) .
\end{equation}
|
(9.25)
|
这一过程见
交互式图解 9.7。
设有线性映射 $\vc{y}=F(\vc{x})$,并把输出向量 $\vc{y}$ 输入另一个线性映射 $\vc{z}=G(\vc{y})$。要使这一步可行,$G$ 的定义域必须等于 $F$ 的陪域。例如,若 $G(\vc{y})$ 接受二维向量,即 $G$ 的定义域为 $\mathbb{R}^2$,则 $F$ 的输出也必须是二维向量,也就是说 $F$ 的陪域也必须是 $\mathbb{R}^2$。此时称映射
|
\begin{equation}
\vc{z} = G(F(\vc{x}))
\end{equation}
|
(9.26)
|
为复合映射。
定理 9.3:
线性映射的复合
若 $\vc{y}=F(\vc{x})$ 与 $\vc{z}=G(\vc{y})$ 都是线性映射,则复合映射 $\vc{z}=G(F(\vc{x}))$ 也是线性的。
由于 $\vc{y}=F(\vc{x})$ 是线性映射,可写成矩阵形式 $\vc{y}=\mx{A}\vc{x}$;同理,$\vc{z}=G(\vc{y})$ 可写成 $\vc{z}=\mx{B}\vc{y}$。于是
|
\begin{equation}
\vc{z} = \mx{B}\vc{y} = \mx{B}(\mx{A}\vc{x}) = (\mx{B}\mx{A})\vc{x} = \mx{C}\vc{x},
\end{equation}
|
(9.27)
|
其中新矩阵 $\mx{C}=\mx{B}\mx{A}$。这正是形如 $\vc{z}=\mx{C}\vc{x}$ 的矩阵方程。根据
定理 9.1,从 $\vc{x}$ 到 $\vc{z}$ 的映射也必为线性映射。
$\square$
例 9.4:
线性映射的复合
求一个映射 $F$:先将二维向量旋转 $30$ 度,再把 $x$ 坐标乘以 2。
把问题分成两部分。先求将向量旋转 $30$ 度的映射 $\vc{y}=G(\vc{x})$,再求把 $x$ 坐标加倍的映射 $\vc{z}=H(\vc{y})$。
设 $\mx{A}$ 为 $G$ 的变换矩阵。由
定义 6.10,旋转 $\phi$ 的矩阵为
$ \left(\begin{array}{rr} \cos \phi & -\sin \phi \\ \sin \phi & \cos \phi \end{array}\right).$
令 $\phi=\frac{\pi}{6}$,得到
|
\begin{equation}
\mx{A} =
\left(\begin{array}{rr}
\frac{\sqrt{3}}{2} & -\frac{1}{2} \\
\frac{1}{2} & \frac{\sqrt{3}}{2}
\end{array}\right).
\end{equation}
|
(9.28)
|
设 $\mx{B}$ 为 $H$ 的变换矩阵。它要把 $x$ 坐标加倍,同时保持 $y$ 坐标不变,因此取
|
\begin{equation}
\mx{B} = \left(\begin{array}{rr}
2 & 0 \\
0 & 1
\end{array}\right).
\end{equation}
|
(9.29)
|
最后,复合映射 $\vc{z}=H(G(\mx{x}))$ 的变换矩阵 $\mx{C}$ 为
|
\begin{equation}
\mx{C} = \mx{B}\mx{A} =\left(\begin{array}{rr}
2 & 0 \\
0 & 1
\end{array}\right)
\left(\begin{array}{rr}
\frac{\sqrt{3}}{2} & -\frac{1}{2} \\
\frac{1}{2} & \frac{\sqrt{3}}{2}
\end{array}\right) =
\left(\begin{array}{rr}
\sqrt{3} & -1 \\
\frac{1}{2} & \frac{\sqrt{3}}{2}
\end{array}\right).
\end{equation}
|
(9.30)
|
某些映射会把多个输入 $\vc{x}$ 映射到同一个值 $F(\vc{x})$。例如,在
交互式图解 9.5中,我们把点的 $y$ 坐标置零,从而将其投影到 $x$ 轴。于是 $\vc{x}_1=(1,5)$ 和 $\vc{x}_2=(1,2)$ 都映射到同一点 $(1,0)=F(\vc{x}_1)=F(\vc{x}_2)$。但有些映射的结果具有唯一性:若 $\vc{x}_1\neq\vc{x}_2$,则必有 $F(\vc{x}_1)\neq F(\vc{x}_2)$。这样的映射称为
单射。
定义 9.4:
单射
若任意两个不同的向量 $\vc{x}_1\neq\vc{x}_2$ 总会产生两个不同的像 $F(\vc{x}_1)\neq F(\vc{x}_2)$,则称映射 $y=F(x)$ 是单射。
等价地说,若单射的两个像 $F(\vc{x}_1)$ 与 $F(\vc{x}_2)$ 相等,则必有 $\vc{x}_1=\vc{x}_2$。
对于某些映射 $\vc{y}=F(\vc{x})$,只要适当选择 $\vc{x}$,就能到达陪域中的每个 $\vc{y}$。当映射的值域覆盖整个陪域时,称该映射为
满射。既是单射又是满射的映射称为
双射。
定义 9.5:
满射
设映射 $\vc{y}=F(\vc{x})$,其中 $\vc{x}\in N$、$\vc{y}\in M$。若值域 $V_F$ 等于陪域 $M$,即 $V_F=M$,则该映射是满射。
定义 9.6:
双射
若一个映射既是单射又是满射,则称它为双射。
下面通过几个例子判断映射是单射、满射还是双射。
例 9.5:
映射的类型(一)
考察映射 $\vc{y}=F(\vc{x})$:
|
\begin{equation}
\begin{pmatrix}
y_1 \\
y_2
\end{pmatrix}
= F\left(\begin{pmatrix}
x_1 \\
x_2
\end{pmatrix}\right)
= \left(\begin{array}{r}
e^{x_1} \\
e^{x_2}
\end{array}\right) ,
\end{equation}
|
(9.31)
|
其中 $\vc{x}$ 属于定义域 $N=\mathbb{R}^2$,输出 $\vc{y}$ 属于陪域 $M=\mathbb{R}^2$。该映射是单射,因为对于不同输入 $\vc{a}$ 与 $\vc{b}$,除非 $\vc{a}=\vc{b}$,否则输出 $\begin{pmatrix}e^{a_1}\\e^{a_2}\end{pmatrix}$ 与 $\begin{pmatrix}e^{b_1}\\e^{b_2}\end{pmatrix}$ 不同。但它不是满射,因为 $e^x>0$ 对所有实数 $x$ 都成立,所以 $y_1$ 与 $y_2$ 不可能取负值。其值域 $V_F$ 仅为象限 $y_1>0,\ y_2>0$,并不等于陪域 $M=\mathbb{R}^2$。既然不是满射,它也不是双射。
例 9.6:
映射的类型(二)
判断映射 $\vc{y}=F(\vc{x})$
|
\begin{equation}
\begin{pmatrix}
y_1 \\
y_2
\end{pmatrix}
= F\left(\begin{pmatrix}
x_1 \\
x_2
\end{pmatrix}\right)
= \left(\begin{array}{r}
2 x_1 \\
3 x_2
\end{array}\right)
\end{equation}
|
(9.32)
|
是否为双射。本例的定义域 $N$ 和陪域 $M$ 都是实数平面 $\mathbb{R}^2$。
先判断它是否为单射。答案显然是肯定的,因为除非 $\vc{a}=\vc{b}$,否则两个不同的输入 $\vc{a}$、$\vc{b}$ 会产生不同的输出 $\begin{pmatrix}2a_1\\3a_2\end{pmatrix}\neq\begin{pmatrix}2b_1\\3b_2\end{pmatrix}$。
对任意输出向量 $\begin{pmatrix}y_1\\y_2\end{pmatrix}$,取输入 $\begin{pmatrix}x_1\\x_2\end{pmatrix}=\begin{pmatrix}\frac{y_1}{2}\\\frac{y_2}{3}\end{pmatrix}$ 即可到达。因此,整个陪域 $M=\mathbb{R}^2$ 都可到达,该映射也是满射。它既是单射又是满射,故为双射。
双射线性映射具有许多有用的性质。例如,它的逆映射很容易求出,下面的定理将说明这一点。
定理 9.4:
逆映射的等价条件
对于从 $\vc{x}\in\mathbb{R}^n$ 到 $\vc{y}\in\mathbb{R}^n$ 的线性映射 $\vc{y}=F(\vc{x})$,下列三个命题等价:
- 映射 $F$ 是双射。
- $F$ 的变换矩阵可逆。
- 基向量 $\vc{e}_1,\ldots,\vc{e}_n$ 的像 $F(\vc{e}_1),\ldots,F(\vc{e}_n)$ 构成 $\mathbb{R}^n$ 的一组基。
$(i)\Rightarrow(ii)$:若 $F$ 是双射,则对每个 $\vc{y}$,方程 $F(\vc{x})=\vc{y}$ 都有唯一解 $\vc{x}$。具体来说,$F$ 是单射,所以 $F(\vc{u})=F(\vc{v})$ 时必有 $\vc{u}=\vc{v}$;$F$ 又是满射,所以每个 $\vc{y}$ 都能由适当的 $\vc{x}$ 到达。$F$ 的矩阵形式为 $\vc{y}=\mx{A}\vc{x}$。根据
定理 6.9,该方程对每个 $\vc{y}$ 都有唯一解,等价于 $\mx{A}$ 可逆。
$(ii)\Rightarrow(iii)$:根据
定理 9.2,$F(\vc{e}_1)$ 正是 $\mx{A}$ 的第一列,$F(\vc{e}_2)$ 是第二列,依此类推。
定理 6.9说明,若 $\mx{A}$ 可逆,则其各列张成 $\mathbb{R}^n$,即构成 $\mathbb{R}^n$ 的一组基。
$(iii)\Rightarrow(i)$:先证明 $(iii)$ 蕴含 $F$ 为单射,即若 $F(\vc{u})=F(\vc{v})$,则必有 $\vc{u}=\vc{v}$。
写成 $\vc{u}=u_1\vc{e}_1+\cdots+u_n\vc{e}_n$、$\vc{v}=v_1\vc{e}_1+\cdots+v_n\vc{e}_n$。已知 $F(\vc{u})=F(\vc{v})$,故 $F(\vc{u})-F(\vc{v})=\vc{0}$,等价于
|
\begin{equation}
F(u_1 \vc{e}_1 + u_2 \vc{e}_2 + \ldots + u_n\vc{e}_n) - F(v_1 \vc{e}_1 + v_2 \vc{e}_2 + \ldots + v_n\vc{e}_n) = \vc{0}.
\end{equation}
|
(9.33)
|
由于 $F$ 是线性的,可写成
|
\begin{equation}
u_1 F(\vc{e}_1) + u_2 F(\vc{e}_2) + \ldots + u_nF(\vc{e}_n) - \Big( v_1 F(\vc{e}_1) + v_2 F(\vc{e}_2) + \ldots + v_nF(\vc{e}_n)\Big) = \vc{0}.
\end{equation}
|
(9.34)
|
合并同类项,得到
|
\begin{equation}
(u_1-v_1) F(\vc{e}_1) + (u_2 - v_2) F(\vc{e}_2) + \ldots + (u_n - v_n) F(\vc{e}_n) = \vc{0},
\end{equation}
|
(9.35)
|
但 $F(\vc{e}_1),F(\vc{e}_2),\ldots,F(\vc{e}_n)$ 线性无关,根据
定理 5.2,此式只有解 $(u_1-v_1)=\cdots=(u_n-v_n)=0$。因此 $\vc{u}=\vc{v}$,$F$ 是单射。
再证明 $\vc{y}=F(\vc{x})$ 是满射,即可通过适当选择 $\vc{x}$ 到达每个 $\vc{y}$。
将 $\vc{x}$ 写成 $\vc{x}=x_1\vc{e}_1+\cdots+x_n\vc{e}_n$,则 $\vc{y}=F(\vc{x})$ 可写成
|
\begin{equation}
\vc{y} = F(\vc{x}) = F(x_1\vc{e}_1 + x_2\vc{e}_2 + \ldots + x_n\vc{e}_n).
\end{equation}
|
(9.36)
|
由 $F$ 的线性性,上式等于
|
\begin{equation}
\vc{y} = x_1F(\vc{e}_1) + x_2F(\vc{e}_2) + \ldots x_n F(\vc{e}_n),
\end{equation}
|
(9.37)
|
由于 $F(\vc{e}_1),\ldots,F(\vc{e}_n)$ 构成 $\mathbb{R}^n$ 的一组基,它们张成整个 $\mathbb{R}^n$,所以能到达任意 $\vc{y}\in\mathbb{R}^n$。故 $F$ 是满射。$F$ 同时为单射与满射,因此是双射。证毕。
$\square$
由上述证明立即得到下面的定理。
定理 9.5:
逆映射矩阵
设双射线性映射 $\vc{y}=F(\vc{x})$ 的变换矩阵为 $\mx{A}$,则逆映射 $\vc{x}=F^{-1}(\vc{y})$ 也是线性的,其变换矩阵为 $\inv{\mx{A}}$。
我们要寻找满足 $\inv{F}(F(\vc{x}))=\vc{x}$ 的映射 $\inv{F}$。
将 $\vc{y}=F(\vc{x})$ 写成矩阵形式:
|
\begin{equation}
\vc{y} = \mx{A}\vc{x}.
\end{equation}
|
(9.38)
|
两边左乘 $\inv{\mx{A}}$,得到
|
\begin{equation}
\inv{\mx{A}}\vc{y} = \inv{\mx{A}}\mx{A}\vc{x} = \mx{I} \vc{x} = \vc{x},
\end{equation}
|
(9.39)
|
即
|
\begin{equation}
\vc{x} = \inv{\mx{A}} \vc{y}.
\end{equation}
|
(9.40)
|
这正是所求映射:输入 $\vc{y}=\mx{A}\vc{x}$,输出便是 $\vc{x}$。因此 $\inv{\mx{A}}$ 必为 $\inv{F}$ 的变换矩阵;而 $\inv{F}$ 能写成这种矩阵形式,所以它是线性的。
$\square$
交互式图解 9.8展示了如何利用线性映射生成阴影效果。
例 9.7:
阴影
设有一个过原点的平面,其法向量为 $\vc{n}=(0,1,0)$。再设太阳距原点无穷远,光线方向为 $\vc{r}=(0.5,1.0,0.25)$。平面上方有许多点,我们想求它们在平面上的阴影。已知这种阴影投影可以表示为线性映射。
我们当然可以逐点计算阴影,但若能构造线性映射 $\vc{y}=\mx{A}\vc{x}$,只需让点 $\vc{x}$ 乘以矩阵 $\mx{A}$,就能直接得到投影点 $\vc{y}$,会方便得多。由于问题是线性的,这样的构造应当可行。
这里利用
定理 9.2:为求 $\mx{A}$,只需考察三个单位向量如何变化。变换矩阵 $\mx{A}$ 的第一列就是第一个单位向量 $\vc{e}_1=(1,0,0)$ 的像,其余各列同理。因此,只要求出点 $(1,0,0)$ 的阴影落在平面何处,就得到了 $\mx{A}$ 的第一列。
平面可写成 $ax+by+cz+d=0$。已知法向量为 $(0,1,0)$,故方程化为 $y+d=0$;又因原点 $(0,0,0)$ 在平面上,进一步化为 $y=0$。现在,从点 $(p_x,p_y,p_z)$ 出发,沿太阳光方向 $(r_x,r_y,r_z)$ 作直线:
|
\begin{equation}
\begin{pmatrix}
x \\
y \\
z
\end{pmatrix}=
\begin{pmatrix}
p_x \\
p_y \\
p_z
\end{pmatrix}+
\lambda \begin{pmatrix}
r_x \\
r_y \\
r_z
\end{pmatrix} =
\begin{pmatrix}
p_x \\
p_y \\
p_z
\end{pmatrix}+
\lambda \begin{pmatrix}
0.5 \\
1.0 \\
0.25
\end{pmatrix}.
\end{equation}
|
(9.41)
|
将直线方程代入平面方程,可求得从 $P$ 到交点所需的参数 $\lambda$。代入 $y=0$ 得 $p_y+1.0\lambda=0$。对第一个单位向量 $\vc{e}_1=(1,0,0)$,有 $p_y=0$,故 $\lambda=0$,交点为 $(1,0,0)+0\vc{r}=(1,0,0)$,这就是 $\mx{A}$ 的第一列。对第二个单位向量 $\vc{e}_2=(0,1,0)$,有 $p_y=1$,从而 $1+\lambda=0$,即 $\lambda=-1$。因此第二列为 $(0,1,0)+(-1)(0.5,1.0,0.25)=(-0.5,0,-0.25)$。第三个单位向量 $\vc{e}_3=(0,0,1)$ 对应 $\lambda=0$,故最后一列为 $(0,0,1)-0\vc{r}=(0,0,1)$。
综上,我们构造了线性映射 $\vc{y}=\mx{A}\vc{x}$,将点 $\vc{x}$ 映射到它的阴影 $\vc{y}$。其中
|
\begin{equation}
\mx{A} = \left(\begin{array}{ccc}
1 & -0.5 & 0\\
0 & 0 & 0\\
0 & -0.25 & 1\\
\end{array}\right).
\end{equation}
|
(9.42)
|
下图使用了这一矩阵。立方体的每个点都通过 $\vc{y}=\mx{A}\vc{x}$ 投影到平面上。用投影后的坐标而非原坐标绘制立方体各个面,就能画出立方体的阴影。
有了这个阴影例子,下面可以判断该映射是否为双射。
例 9.8:
阴影映射的双射性
判断
例 9.7中的映射是否为双射。
根据
定理 9.4,映射 $\vc{y}=\mx{A}\vc{x}$ 为双射,当且仅当变换矩阵 $\mx{A}$ 可逆。行列式章节的
定理 7.10告诉我们,矩阵可逆必须以行列式非零为前提。然而这里的行列式
|
\begin{equation}
\det(\mx{A}) = \left|\begin{array}{ccc}
1 & -0.5 & 0\\
0 & 0 & 0\\
0 & -0.25 & 1\\
\end{array}\right|
\end{equation}
|
(9.43)
|
必为零,因为第二行全为零(参见
定理 7.1的 $(iv)$ 与 $(vii)$)。因此该映射不可能是双射。
这也符合直觉。已知一组点和太阳光方向,可以计算各点的阴影;但只知道阴影和太阳光方向时,无法恢复原点的位置,因为只知道原点所在的方向,不知道沿该方向的距离。因此,这个操作不可逆;用严格术语说,它不是双射。
例 9.9:
再论图像压缩
在
例 9.1中,映射 $\vc{y}=\mx{A}\vc{x}$ 是压缩过程的一部分。这个映射是否很可能为双射?
答案是肯定的。为了让压缩有用,只要分配足够多的比特,解码后的图像就应与原图相同。若映射不是双射,信息会在变换步骤 $\vc{y}=\mx{A}\vc{x}$ 中丢失。无论把 $\vc{y}$ 保存得多精确、用多少比特描述它,都无法恢复 $\vc{x}$。反之,若映射是双射,只需用 $\vc{x}=\inv{\mx{A}}\vc{y}$ 即可恢复 $\vc{x}$。
术语提示:
映射 $F:N\rightarrow M$ 把集合 $N$ 中的每个元素对应到集合 $M$ 中的一个元素。这里 $M$ 称为陪域。
术语提示:
$n$ 维列向量 $\vc{v}$ 相对于一组表示,由 $n$ 个标量排成一列。
向量元素有时记作 $v_1$、$v_2$、……、$v_n$。对于二维和三维向量,有时也用 $v_x$、$v_y$、$v_z$。
记法为
|
\begin{equation}
\underbrace{
\vc{u} =
\begin{pmatrix}
u_x
\end{pmatrix}
=
\begin{pmatrix}
u_1
\end{pmatrix}}_{\text{一维向量}},
\spc\spc
\underbrace{
\vc{v} =
\begin{pmatrix}
v_x \\
v_y
\end{pmatrix}
=
\begin{pmatrix}
v_1 \\
v_2
\end{pmatrix}}_{\text{二维向量}},
\spc\spc
\underbrace{
\vc{w} =
\begin{pmatrix}
w_x \\
w_y \\
w_z
\end{pmatrix}
=
\begin{pmatrix}
w_1 \\
w_2 \\
w_3
\end{pmatrix}}_{\text{三维向量}},
\end{equation}
|
|
其中 $\vc{u} = u_x \vc{e}_1$,$\vc{v} = v_x \vc{e}_1 + v_y \vc{e}_2$,
$\vc{w} = w_x \vc{e}_1 + w_y \vc{e}_2 + w_z \vc{e}_3$。注意,$\vc{e}_i$ 是向量。
正文中也使用简写 $\vc{w} = \bigl(w_1,w_2,w_3\bigr)$,含义与上式相同(注意各向量元素之间有逗号)。行向量的各元素之间则不加逗号。
术语提示:
映射 $F$ 是记作 $F: N \rightarrow M$ 的规则,它把集合 $N$ 中的每个元素对应到集合 $M$ 中的一个元素。这里 $N$ 称为定义域。