线性变换 (linear transformation) 是在生活和项目中经常见到的映射方式, 是线性代数(linear algebra)的基本概念,它是一类满足某些特殊性质的变换,本文介绍相关内容。 简介
国外很多线性代数课程的第一课便是线性变换,这个概念比矩阵来的更早。物理学家们通常更关注这个概念本身,关注它们是怎么变换的。但是在我们的学习中为了更方便的计算,引入了坐标系及坐标轴,并且使每一个线性变换都对应一个矩阵,矩阵背后也同样是线性变换的概念。
变换从本质上讲就是函数的意思。函数的意思就是把一个集合中元素对应到另外一个集合中元素的对应法则。
在线性代数里面,由所有 n 维向量组成一个集合,这些向量之间可以进行加减法运算和数乘运算。把可以进行这两种运算的集合通常成为一个线性空间(linear space),它其中的一组基(basis)所包含的向量的个数,称为线性空间的维度(dimension)。可以看出,所有 n 维向量组成的集合就是一个 n 维线性空间,通常记为R^n。
所以总结为一句话:变换的本质,就是从一个线性空间到另一个线性空间的函数。
线性变换从几何直观有三个要点:
线性映射( linear mapping)是从一个向量空间 V 到另一个向量空间 W 的映射且保持加法运算和数量乘法运算,而线性变换(linear transformation)是线性空间 V 到其自身的线性映射。 —— 百度百科
你可以将线性变换理解为一个特殊的函数,这个可以使得 V \rightarrow W ,并且满足以下条件:
$$ \begin{array}{l}\mathbf{T}(\mathbf{x}+\mathbf{y})=\mathbf{T}(\mathbf{x})+\mathbf{T}(\mathbf{y}) \\ \mathbf{T}(a \mathbf{x})=a \mathbf{T}(\mathbf{x})\end{array} $$
其中 x, y \in V , a \in R 。
$$ \begin{array}{c}\mathbf{g}(x, y, z)=(3 x-y, 3 z+2,0, z-2 x) \\ \mathbf{h}(x, y, z)=(3 x-y, 3 x z, 0, z-2 x)\end{array} $$
这两个都不是线性变换。
如果 V 和 W 是有限维的,并且在这些空间中有选择好的基,則从 V 到 W 的所有线性映射可以被表示为矩阵。反过来说,矩阵生成线性映射的例子:如果 A 是实 数的 m \times n 矩阵,则规定 f(x)=A x 描述一个线性映射 R^{n} \rightarrow R^{m} 。
设 \left\{v_{1}, \cdots, v_{n}\right\} 是 V 的一个基。則在 V 中所有向量 v 是唯一的,可以由
的系数
是线性映射
这蕴涵了这个函数
的值确定的。
的值为
因此函数
如果把这些值放置到 m \times n 矩阵 M 中,則可以方便的使用它来计算 f 对在 V 中任何向量的值。如果我放置 c_{1}, \cdots, c_{n} 的值到 n \times 1 矩阵 C ,我们有 M C=f(v) 。
一个单一的线性映射可以由很多矩阵表示。这是因为矩阵的元素的值依赖于选择的基。
对角化的矩阵具有诸多优点。线性映射在写成矩阵后可以进行对角化(不能对角化的矩阵可以化简成接近对角矩阵的准对角矩阵,从而可以获得对角化矩阵拥有的独特优势(极大地简化乘法运算,易于分块,容易看出与基的选取无关的不变量。
比如,对于作用于同一个空间的可对角化的方形矩阵 A ,要求出 A 自乘 n 次后的结果 A^{n} ,一个一个慢慢地乘是很麻烦的事情。而知道对角化技巧的人会发现,在将这矩阵对角化后,其乘法运算会变得格外简单。实际应用中有很多有意思的问题或解题方法都会涉及到矩阵自乘n次的计算,如1阶非齐次线性递推数列通项公式的线性代数求解法和马尔可夫链的极限状态(极限分布)的求解。线性代数及矩阵论的一个主要问题就是寻找可使矩阵对角化的条件或者可使矩阵化简到含很多个 0 的条件,以便简化计算(这是主要原因之一)。
二维空间 R^{2} 的線性變換的一些特殊情况有:
$$ A=\left[\begin{array}{cc}0 & -1 \\ 1 & 0\end{array}\right] $$
$$ A=\left[\begin{array}{cc}\cos (\theta) & -\sin (\theta) \\ \sin (\theta) & \cos (\theta)\end{array}\right] $$
$$ A=\left[\begin{array}{cc}1 & 0 \\ 0 & -1\end{array}\right] $$
$$ A=\left[\begin{array}{ll}2 & 0 \\ 0 & 2\end{array}\right] $$
$$ A=\left[\begin{array}{cc}1 & m \\ 0 & 1\end{array}\right] $$
$$ A=\left[\begin{array}{cc}k & 0 \\ 0 & 1 / k\end{array}\right] $$
$$ A=\left[\begin{array}{ll}0 & 0 \\ 0 & 1\end{array}\right] $$
上文示例中给出了二维仿射变换不是线性变换,其实这是违反我对仿射变换的认知的,因为旋转、缩放、平移、错切给我的感觉就很“线性”,咋还非线性了呢。
向量的平移变换:
那么线性变换的加法运算:
但是:
这就导致了仿射平移在二维空间上没有保持线性加法,同理标量乘法的性质也丢了:
原点也没有映射到原点:
表明确实二维仿射变换在二维空间中不符合线性变换的定义。
如果将二维平面看做是三维空间中的一个平面,结果却不一样了
二维平面看做是三维空间中 z=1 的平面,那么之前二维的向量变为了 \textbf{p}=[x,y,1]^T,平移向量多加一维 0 值,设为 \Delta\textbf{d} = [a,b,0]^T,此时神奇的地方在于平移可以表示成矩阵乘法:
$$ \begin{array}{l} f(\textbf{p})&=&\textbf{p}+\Delta \textbf{d}\\ &=& \left[\begin{array}{l}x \\ y \\ 1 \end{array}\right] + \left[\begin{array}{l}a \\ b \\ 0 \end{array}\right]\\ &=&\left[\begin{array}{l}1 & 0 &a \\ 0 & 1 &b \\ 0 &0&1 \end{array}\right]\left[\begin{array}{l}x \\ y \\ 1 \end{array}\right]\\ &=&\textbf{Ap} \end{array} $$
注意:此处 \textbf{p}+\Delta \textbf{d} 与 \textbf{Ap} 仅在 \textbf{p} 第三维为 1 时等价,也就是说对于一般的向量 \textbf{q}=[x,y,z]^T,\textbf{q}+\Delta \textbf{d} \ne \textbf{Aq}
其中:
$$ \textbf{A}=\left[\begin{array}{l}1 & 0 &a \\ 0 & 1 &b \\ 0 &0&1 \end{array}\right] $$
则这个平移操作变成了固定系数的矩阵乘法,也就是一个线性系统了:
也就是说,仿射变换表示成三维矩阵乘法后是线性变换,他是一般三维线性变换的一个特例。