上一章 我们讨论了齐次和非齐次两种线性方程组的解集,以及它们的几何意义。由齐次线性方程组,我们引入了零空间的概念;而由非齐次线性方程组,我们引入了列空间的概念。这两个空间目前是我们理解线性方程组的桥梁,未来还会对这些空间进行更进一步的讨论。在这之前,让我们先来研究一下矩阵的意义。
之前的两章中,矩阵是在矩阵方程中出现的,当时我们理解它的意义为「对向量的一种封装」,也就是一种「数据」的形式理解矩阵的。这一章,我们引入矩阵的另一层意义:线性变换
。
假如有如 A x = b \mathbf{A}\mathbf{x}=\mathbf{b} Ax = b 形式的方程:
[ 4 − 3 1 3 2 0 5 1 ] [ 1 1 1 1 ] = [ 5 8 ] \begin{bmatrix}
4 & -3 & 1 & 3 \\
2 & 0 & 5 & 1
\end{bmatrix}
\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}
=
\begin{bmatrix} 5 \\ 8 \end{bmatrix} [ 4 2 − 3 0 1 5 3 1 ] 1 1 1 1 = [ 5 8 ]
以往我们都是将其看成是几个列向量的线性组合,即1 [ 4 2 ] + 1 [ − 3 0 ] + 1 [ 1 5 ] + 1 [ 3 1 ] = [ 5 8 ] 1\begin{bmatrix}4 \\ 2\end{bmatrix} + 1\begin{bmatrix}-3 \\ 0\end{bmatrix} + 1\begin{bmatrix}1 \\ 5\end{bmatrix} + 1\begin{bmatrix}3 \\ 1\end{bmatrix} = \begin{bmatrix} 5 \\ 8 \end{bmatrix} 1 [ 4 2 ] + 1 [ − 3 0 ] + 1 [ 1 5 ] + 1 [ 3 1 ] = [ 5 8 ] ,这次我们换个角度,把 A \mathbf{A} A 看作一个整体,整个方程就是一个 4 维向量 x \mathbf{x} x 乘以矩阵 A \mathbf{A} A 后得到一个 2 维向量 b \mathbf{b} b 。 以这个观点来看的话,矩阵 A \mathbf{A} A 就相当于一个从一个向量集映射到另一个向量集的函数! 。
假设 x \mathbf{x} x 是 n n n 维向量,b \mathbf{b} b 是 m m m 维向量,则 A \mathbf{A} A 就是一个 R n R^n R n 到 R m R^m R m 的变换。这个变换的定义域
是 R n R^n R n ,上域
是 R m R^m R m ,记作 T : R n → R m T: R^n \rightarrow R^m T : R n → R m 。x \mathbf{x} x 是 R n R^n R n 空间中的一个向量,T ( x ) T(\mathbf{x}) T ( x ) 就是其变换到 R m R^m R m 空间中的像
,而全体像
T ( x ) T(\mathbf{x}) T ( x ) 的集合就称为变换 T T T 的值域
。图示如下:
从这种观点来看,矩阵就是一个函数:x ↦ A x \mathbf{x}\mapsto\mathbf{A}{x} x ↦ A x !矩阵既可看作是数据的表示,又可看作是表示变换的函数,这不禁让我联想起了 lisp 里的「同像性」,也就是「代码即数据」。我不知道他们之间有没有更深一层的联系,不过从这一层面再来看矩阵,感觉又多了一层趣味……
除此之外,以动态的眼光来看待矩阵,也有助于我们理解为什么一些随时间变化的系统可以用线性代数来建模。比如马尔科夫链中的转移矩阵,就是用静态的矩阵来表示一个变换的过程。
不难发现,当变换 T T T 为 x ↦ A x \mathbf{x}\mapsto\mathbf{A}\mathbf{x} x ↦ Ax ,向量 x \mathbf{x} x 若有 n 维,则变换的定义域就是 R n R^n R n ,A \mathbf{A} A 就有 n 列;向量 b \mathbf{b} b 若有 m 维,则变换的上域就是 R m R^m R m ,A \mathbf{A} A 就有 m 行(A \mathbf{A} A 每一列有 m 个元素)。而变换的值域就是 A \mathbf{A} A 中列的所有线性组合组成的集合。
也就是说,像 [ 1 − 3 3 5 − 1 7 ] \begin{bmatrix}1 & -3 \\ 3 & 5 \\ -1 & 7\end{bmatrix} 1 3 − 1 − 3 5 7 这样的矩阵,所表达的变换就是一个二维到三维的映射 T : R 2 → R 3 T:R^2\rightarrow R^3 T : R 2 → R 3 。
再例如,矩阵[ 1 0 0 0 1 0 0 0 0 ] \begin{bmatrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0\end{bmatrix} 1 0 0 0 1 0 0 0 0 所表达的变换就是一个投影:把 R 3 R^3 R 3 中的点投影到 x 1 x 2 x_1 x_2 x 1 x 2 平面,因为:
[ 1 0 0 0 1 0 0 0 0 ] [ x 1 x 2 x 3 ] = [ x 1 x 2 0 ] \begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 0
\end{bmatrix}
\begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}
=
\begin{bmatrix} x_1 \\ x_2 \\ 0 \end{bmatrix} 1 0 0 0 1 0 0 0 0 x 1 x 2 x 3 = x 1 x 2 0
线性变换是一类满足线性条件的变换。所谓的线性条件就是:
T ( u + v ) = T ( u ) + T ( v ) 和 T ( c u ) = c T ( u ) T(\mathbf{u}+\mathbf{v}) = T(\mathbf{u}) + T(\mathbf{v}) \\ \text{和}\\ T(c \mathbf{u}) = c T(\mathbf{u}) T ( u + v ) = T ( u ) + T ( v ) 和 T ( c u ) = c T ( u )
注意到,向量的加法和数乘运算在变换前和变换后的效果是一样的,也就是所谓的线性变换保持了 向量的加法和数乘运算。
我们假设有一个二维向量 x = [ x 1 x 2 ] = x 1 e 1 + x 2 e 2 \mathbf{x}=\begin{bmatrix}x_1\\ x_2 \end{bmatrix}= x_1 \mathbf{e}_1 + x_2 \mathbf{e}_2 x = [ x 1 x 2 ] = x 1 e 1 + x 2 e 2 ,其中 e 1 = [ 1 0 ] , e 2 = [ 0 1 ] \mathbf{e}_1=\begin{bmatrix}1\\ 0\end{bmatrix}, \mathbf{e}_2=\begin{bmatrix}0\\ 1\end{bmatrix} e 1 = [ 1 0 ] , e 2 = [ 0 1 ] 是 2× \times × 2 单位矩阵 I n \mathbf{I}_n I n 的列向量。由于线性变换保持加法和数乘运算,所以
T ( x ) = x 1 T ( e 1 ) + x 2 T ( e 2 ) = [ T ( e 1 ) T ( e 2 ) ] [ x 1 x 2 ] = A x T(\mathbf{x})=x_1 T(\mathbf{e}_1) + x_2 T(\mathbf{e}_2) = \begin{bmatrix}T(\mathbf{e}_1) & T(\mathbf{e}_2)\end{bmatrix} \begin{bmatrix} x_1\\ x_2 \end{bmatrix} = \mathbf{A}\mathbf{x} T ( x ) = x 1 T ( e 1 ) + x 2 T ( e 2 ) = [ T ( e 1 ) T ( e 2 ) ] [ x 1 x 2 ] = Ax
这也就是说,对于每一个线性变换T : R n → R m T: R^n \rightarrow R^m T : R n → R m ,都有唯一一个矩阵 A \mathbf{A} A ,使得 T ( x ) = A x T(\mathbf{x})=\mathbf{A}\mathbf{x} T ( x ) = Ax ,其中 A = [ T ( e 1 ) ⋯ T ( e 1 ) ] \mathbf{A} = [ T(\mathbf{e}_1) \cdots T(\mathbf{e}_1) ] A = [ T ( e 1 ) ⋯ T ( e 1 )] 。A \mathbf{A} A 被称为是线性变换 T T T 的标准矩阵
。
总结一下,线性变换是满足线性条件的变换,所谓线性条件就要求变换前后的加法和数乘运算不变(变换前 a+b 等于 c,则变换后 a'+b' 也等于 c')。 线性变换有两种描述形式:T : R n → R m T:R^n \rightarrow R^m T : R n → R m 和 x ↦ A x \mathbf{x} \mapsto \mathbf{A}\mathbf{x} x ↦ Ax ,后者也被称为矩阵变换
线性变换强调它作为映射的性质,而矩阵变换则描述了映射是怎样实现的。
借助上面线性变换的性质,我们就很容易理解图形学中一些专门用于变换的矩阵了,比如 2 维平面上的旋转矩阵:
A = [ cos φ − sin φ sin φ cos φ ] \mathbf{A}=
\begin{bmatrix}
\cos\varphi & -\sin\varphi \\
\sin\varphi & \cos\varphi
\end{bmatrix} A = [ cos φ sin φ − sin φ cos φ ]
把它的列向量拆开,就是 T ( e 1 ) = [ cos φ sin φ ] T(\mathbf{e}_1) = \begin{bmatrix}\cos\varphi \\ \sin\varphi \end{bmatrix} T ( e 1 ) = [ cos φ sin φ ] ,T ( e 2 ) = [ − sin φ cos φ ] T(\mathbf{e}_2) = \begin{bmatrix}-\sin\varphi \\ \cos\varphi \end{bmatrix} T ( e 2 ) = [ − sin φ cos φ ] 也就是 [ 1 0 ] \begin{bmatrix}1\\ 0\end{bmatrix} [ 1 0 ] 旋转到 [ cos φ sin φ ] \begin{bmatrix}\cos\varphi \\ \sin\varphi\end{bmatrix} [ cos φ sin φ ] ,[ 0 1 ] \begin{bmatrix}0\\ 1\end{bmatrix} [ 0 1 ] 旋转到 [ − sin φ cos φ ] \begin{bmatrix}-\sin\varphi \\ \cos\varphi\end{bmatrix} [ − sin φ cos φ ] 。
旋转变换如下图所示:
有了线性变换的概念,我们再来回顾之前两章讨论的解的存在性和唯一性的问题。
4.1 解的存在性
非线性方程组 A x = b \mathbf{A}\mathbf{x}=\mathbf{b} Ax = b 可以看做是一个 x \mathbf{x} x 所在空间到 b \mathbf{b} b 所在空间的映射。
对映射 T = R n → R m T=R^n\rightarrow R^m T = R n → R m ,如果 R n R^n R n 中任意向量 b \mathbf{b} b 都是 R n R^n R n 中至少一个 x \mathbf{x} x 的像,则称 T T T 是 R n R^n R n 到 R m R^m R m 上的映射(或叫满射
),这时,非线性方程组对于任意的 b \mathbf{b} b 都有解。反过来,如果存在 b \mathbf{b} b 使得非线性方程组无解,那么 T T T 就不是 R n R^n R n 到 R m R^m R m 上的满射。它们的几何表示如下图所示:
4.2 解的唯一性
如果任意的 b ∈ R m \mathbf{b}\in R^m b ∈ R m 都是 R n R^n R n 中最多一个向量 x \mathbf{x} x 的像,那么就称 T T T 是一对一映射
。
一对一映射也就是非线性方程组 A x = b \mathbf{A}\mathbf{x}=\mathbf{b} Ax = b 对任意 b \mathbf{b} b 要么无解,要么有唯一解。也就是说,当 方程 A x = b \mathbf{A}\mathbf{x}=\mathbf{b} Ax = b 有无穷多解时(即方程含有自由变量,即不满秩,即各列线性相关) ,T T T 就不是一对一映射,这时齐次方程组 A x = 0 \mathbf{A}\mathbf{x}=\mathbf{0} Ax = 0 只有平凡解。
本文中所有文字、图片版权均属本人所有,如需转载请注明来源。