Logo

线性变换简介

1. 矩阵-向量积 Ax ~\mathbf{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}~,也就是说这种变换可以发生在不同维度的空间内。请观察下面示例:

开通会员解锁全部动画

我们在向量方程一节提到过,线性代数中的向量默认指的就是列向量,它是一个仅含有一列的矩阵。所以矩阵-向量的乘积其实也就是两个矩阵相乘,本例中 A3×2x2×1=b3×1 (bR3) ~\mathbf{A}_{3\times 2}\mathbf{x}_{2\times 1}=\mathbf{b}_{3\times 1}~(\mathbf{b}\in \mathbb{R^3})~。观察本例可以进一步发现,对于矩阵 A ~\mathbf{A}~,它可以把任意二维空间中的向量 xR2 ~\mathbf{x}\in \mathbb{R^2}~,变换到三维空间中一个平面上去,该平面上的任意点 (x,y,z) ~(x,y,z)~满足 x+y=z ~x+y=z~,这是一个经过零点的平面。映射前、后的取值空间如下:

xx

本例中 A2×3x3×1=b2×1 ~\mathbf{A}_{2\times 3}\mathbf{x}_{3\times 1}=\mathbf{b}_{2\times 1}~,矩阵 A ~\mathbf{A}~ R3 ~\mathbb{R^3}~中的 x ~\mathbf{x}~变换(映射)为 R2 ~\mathbb{R^2}~中的 b ~\mathbf{b}~。对于 R3 ~\mathbb{R^3}~中的任意 x (x,y,z) ~\mathbf{x}~(x,y,z)~,经过 A ~\mathbf{A}~变换后,得到的 b (x,y) ~\mathbf{b}~(x',y')~满足 (zy,zx) ~(z-y, z-x)~,这些点覆盖整个二维平面。

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

上面这些概念很重要,特别注意上域 Rm ~\mathbb{R^m}~)和值域 ( range ) ~(~\text{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~),请结合下面图例辅助理解。

开通会员解锁全部动画

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}

根据矩阵变换的定义,可得:
T(u)=Au=[133517][21]=[519]T(\mathbf{u})=A\mathbf{u}=\begin{bmatrix}1&-3\\3&5\\-1&7\end{bmatrix}\begin{bmatrix}2\\-1\end{bmatrix}=\begin{bmatrix}5\\1\\-9\end{bmatrix}

从几何角度来观察这个变换如下:

开通会员解锁全部动画

这个问题是在求 T(x)=b ~T(\mathbf{x})=\mathbf{b}~中的 x ~\mathbf{x}~,等价于求解矩阵方程 Ax=b ~A\mathbf{x}=\mathbf{b}~,求解过程如下:

开通会员解锁全部动画

从上面的解法中可以看到,方程 Ax=b ~A\mathbf{x}=\mathbf{b}~有唯一解 x=[1.50.5] ~\mathbf{x}=\begin{bmatrix}1.5\\-0.5\end{bmatrix}~,因此不存在多个 x ~\mathbf{x}~满足该条件。

确定向量 c ~\mathbf{c}~是否在变换 T ~T~的值域内,我们需要判断方程 Ax=c ~A\mathbf{x}=\mathbf{c}~是否有解,求解过程如下:

开通会员解锁全部动画

由于最后一行 0=35 ~0=-35~矛盾,因此方程 Ax=c ~A\mathbf{x}=\mathbf{c}~无解,所以 c ~\mathbf{c}~不在变换 T ~T~的值域内。从几何角度来解释,矩阵 A ~\mathbf{A}~ R2 ~\mathbb{R^2}~中的向量变换为 R3 ~\mathbb{R^3}~中的向量,这些向量组成 R3 ~\mathbb{R^3}~中的一个过 0 ~\mathbf{0}~的平面(range:值域),而向量 u=[325] ~\mathbf{u}=\begin{bmatrix}3\\2\\5\end{bmatrix}~不在这个平面上。

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

开通会员解锁全部动画

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}

开通会员解锁全部动画

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

开通会员解锁全部动画