线性变换简介

1. 矩阵-向量积 Ax ~A\mathbf{x}~的动态视角

对于矩阵方程Ax=b \mathbf{A}\mathbf{x}=\mathbf{b}~,我们可以把 A ~\mathbf{A}~看做一个对象,它通过乘法“作用”于向量 x ~\mathbf{x}~,得到一个新向量 b ~\mathbf{b}~。矩阵 A ~\mathbf{A}~也可以被看做是一个函数,在它的作用下,向量 x ~\mathbf{x}~变换映射)成了向量 b ~\mathbf{b}~。一个 m ~m~ n ~n~列的矩阵 Am×n~A_{m\times n}乘以一个向量 x (xRn) ~\mathbf{x}~(\mathbf{x}\in\mathbb{R^n})~得到的向量 bRm ~\mathbf{b}\in \mathbb{R^m}~,也就是说这种变换可以发生在不同维度的空间内。请观察下面示例:

loading...

现在,我们要引入一个新的符号 T:RnRm ~T:\mathbb{R^n}\to \mathbb{R^m}~来表示这种变换。下面是具体定义:

上面这些概念很重要,特别注意上域 Rm ~\mathbb{R^m}~)和值域 Range ~Range~)之间的区别(Range(T)=Span{T(x)xRn}Rm \text{Range}(T) = \text{Span}\{T(\mathbf{x}) \mid \mathbf{x} \in \mathbb{R}^n\} \subseteq \mathbb{R}^m~),请结合下面图例辅助理解。

loading...

2. 矩阵变换

上面是对广义变换 (T:RnRm) ~(T:\mathbb{R^n}\to \mathbb{R^m})~的定义,它可以是任意形式的映射,包括非线性变换、非连续变换等,不一定满足线性变换的性质。相比之下,矩阵变换是一种特定的线性变换,具体定义如下:

接下来的示例是对矩阵变换相关问题的讨论:设矩阵
 A=[133517],u=[21],b=[325],c=[325],~A=\begin{bmatrix}1&-3\\3&5\\-1&7\end{bmatrix},\mathbf{u}=\begin{bmatrix}2\\-1\end{bmatrix},\mathbf{b}=\begin{bmatrix}3\\2\\-5\end{bmatrix},\mathbf{c}=\begin{bmatrix}3\\2\\5\end{bmatrix},
定义变换 T:R2R3 ~T:\mathbb{R^2}\to \mathbb{R^3}~ T(x)=Ax ~T(\mathbf{x})=A\mathbf{x}~,于是有:
T(x)=Ax=[133517][x1x2]=[x13x23x1+5x2x1+7x2]T(\mathbf{x})=A\mathbf{x}=\begin{bmatrix}1&-3\\3&5\\-1&7\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}x_1-3x_2\\3x_1+5x_2\\-x_1+7x_2\end{bmatrix}

通过上述示例不难看出,矩阵变换具有明显的几何意义。以下两种矩阵变换常用于计算机图形学:投影变换剪切变换

loading...

3. 线性变换

线性变换是保持向量加法标量乘法性质的映射,它的定义如下:

根据 1.4 节定理 5可知,矩阵变换 xAx ~\mathbf{x}\mapsto A\mathbf{x}~满足上面两个性质,所以矩阵变换一定是线性变换。线性变换不仅保持加法和标量乘法,还具有以下两个重要性质:

接下来的示例是一个缩放变换(拉伸和收缩),它通过一个标量 r ~r~的乘法,将向量按比例缩放。它也是一个线性变换,满足 T(ru)=rT(u)~T(r\mathbf{u})=rT\mathbf(\mathbf{u})0r1 0\leq r \leq1~表示收缩, r1 ~r\geq 1~表示拉伸)。我们可以用矩阵 A=[r00r] ~A=\begin{bmatrix}r&0\\0&r\end{bmatrix}~表示缩放变换,变换如下 xAx ~\mathbf{x}\mapsto A\mathbf{x}~
[x1x2][r00r][x1x2]=[rx1rx2]\begin{bmatrix}x_1\\x_2\end{bmatrix}\mapsto \begin{bmatrix}r&0\\0&r\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}r\cdot x_1\\r\cdot x_2\end{bmatrix}
loading...

最后再来看一个旋转变换,通过旋转矩阵 A=[0110] ~A=\begin{bmatrix}0&-1\\1&0\end{bmatrix}~将二维平面中的向量逆时针旋转 90 度。

loading...