向量空间(vector space)。我们生活在三维空间中,也就是四维时空。三维意味着我们在某一时刻的位置可以由三个维度的数据来衡量,这就是长度、宽度和高度。“向量空间”这个词中的空间应该与我们所生存的空间是一致的。对于向量空间又更为准确的限制,向量空间是一整个空间的向量的集合,对于这个集合中的任何向量,他们的线性组合还在这个向量空间中,这就是向量空间的封闭性。当我们取线性组合的系数都为0的时候,这就得到了零向量,所以空间一定是包括零向量的。而至于为什么空间具有封闭性,封闭性是不是现实空间所具有的性质,这个还需查阅资料,日后再更。
子空间(subspace),是向量空间的一部分,顾名思义,子空间肯定也是向量空间,所以它具有向量空间的封闭性,而且它也一定包含零向量。更具体而言,在向量空间中取一部分向量组成的集合,这个集合具有封闭性,包含零向量,那么这个集合就构成了一个子空间。可以看出,无论是向量空间还是子空间,他们都是以集合论为基础的。
列空间(column space),是一种根据应用需要产生出来的一种工具。实际上,发展列空间这个概念仍然是为了更好的了解线性方程组 A x = b Ax=b Ax=b。给定一个矩阵 A A A,矩阵 A A A中的列向量所有可能的线性组合的集合是怎么样的呢?当线性组合的系数为零时,就得到了零向量;如果矩阵 A A A中的列向量是3个,其中线性无关的列向量有两个,那么第三个列向量可以由这两个列向量线性组合得到,实际上,这两个线性无关的列向量经过线性组合可以得到的是一个过原点的平面,又叫二维空间,首先它是空间,其次这是一个子空间(如果 A A A只有三行,那么这是三维空间中的一个过原点的平面,是三维向量空间的子空间)。由于它事由矩阵的列向量经过线性组合得到的封闭的,包含零向量的子空间,所以称它为列空间。
零空间(null space),这是一个比较核心的概念了,抽象的表示,必然有它实际的目的,线性代数的实际目的就是为了解线性方程组 A x = b Ax=b Ax=b,线性方程组比较简单的一种形式是令 b = 0 b=0 b=0,这个时候对应的解 x x x所有的线性组合是空间,因为它是由线型方程组在常数项为零的时候解出来的,所以基于这个特殊的意义,称他为零空间。为什么是空间不做证明,这个不重要。重要的是如何求解零空间,基于对非方阵的消元法,可以得到行阶梯形矩阵,然后可以求得一组特解,这组特解的线性组合就是零空间。在下面将会详细地介绍以上内容。
从最简单的例子看起: R 2 = [ a b c d ] R^2=\begin{bmatrix}a&b\\ c&d\end{bmatrix} R2=[acbd]其中 [ a b ] \begin{bmatrix}a\\b\end{bmatrix} [ab]与 [ c d ] \begin{bmatrix}c\\d\end{bmatrix} [cd]线性无关。那么对它们进行线性组合 x × [ a b ] x\times\begin{bmatrix}a\\b\end{bmatrix} x×[ab] + y × [ c d ] y\times\begin{bmatrix}c\\d\end{bmatrix} y×[cd]所得到的是二维平面。这个二维平面包括零向量,对于平面中的向量,它们的线性组合不可能超出平面(因为每个向量都没有在平面外或者向平面外的趋势的分量),所以它是封闭的。这便是一个向量空间。
假如, [ a b ] \begin{bmatrix}a\\b\end{bmatrix} [ab]与 [ c d ] \begin{bmatrix}c\\d\end{bmatrix} [cd]线性相关,也就是其中一个向量可以通过乘一个常数得到两一个向量,那么这两个向量一定在一条直线上。那么下面思考,这条直线过不过原点?这是肯定的,我们所描述的向量都是以原点为起点的→,既然向量在直线上,原点也一定在直线上。这个直线上的向量的线性组合会不会在直线外?这是不可能的。如果向量经过向量组合会偏离直线,那么其中至少存在一个向量有偏离直线的分量,既然该向量有偏离直线的分量,那么这个向量都会偏离直线,就不在直线上,这与直线上的向量是矛盾的。至此,我们可以说直线是一个封闭的直线,包含零向量。所以这是一个向量空间,也是二维向量空间的子空间(因为它的向量都有两个维度)。
我们还可以看更复杂的例子,比如 R 3 , R n R^3,R^n R3,Rn,等。但是大原则只有一个:向量空间必须满足封闭性。
这里将向量空间和子空间的概念都联系到一起了。
前面已经介绍了子空间的例子,已经非常详细了,这里再介绍也是多余。下面重点列举一些子空间的例子。
子空间,通俗来讲就是满足向量空间的法则,但是都包含的向量并不一定是向量空间的全集,而是子集(这可以是全集)。
在 R 2 R^2 R2中:
子空间表示: c × [ a b ] c\times \begin{bmatrix}a\\b\end{bmatrix} c×[ab], c × [ 0 0 ] c\times \begin{bmatrix}0\\0\end{bmatrix} c×[00], x × [ a b ] x\times\begin{bmatrix}a\\b\end{bmatrix} x×[ab] + y × [ c d ] y\times\begin{bmatrix}c\\d\end{bmatrix} y×[cd]。
在 R 3 R^3 R3中:
子空间表示: x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×⎣⎡abc⎦⎤ + y × [ c d e ] + z × [ f g h ] y\times\begin{bmatrix}c\\d\\e\end{bmatrix}+z\times\begin{bmatrix}f\\g\\h\end{bmatrix} y×⎣⎡cde⎦⎤+z×⎣⎡fgh⎦⎤, c × [ 0 0 0 ] c\times\begin{bmatrix}0\\0\\0\end{bmatrix} c×⎣⎡000⎦⎤, x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×⎣⎡abc⎦⎤ + y × [ c d e ] y\times\begin{bmatrix}c\\d\\e\end{bmatrix} y×⎣⎡cde⎦⎤, x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×⎣⎡abc⎦⎤。
两个子空间的并集不是子空间,两个子空间的交集是子空间。在这一段,我们暂且引入两个概念(这一段结束后,概念就失效),共有元素和单一元素。共有元素就是两个子空间都含有的元素,即交集中的元素,单一元素是本子空间中特有的元素,即相对差集中的元素。先解释为什么交集是子空间:交集中的元素都是共有元素,?????
看完这些例子之后,可以发现,他们子空间只是向量空间的一种辅助性的概念,当我们不能够得到全集时,只能得到部分集合,而且满足向量空间的法则时,就使用这种辅助性的概念。
列空间(column space)简称为 C ( A ) C(A) C(A)。 A A A仍然是线性方程组中的系数矩阵。这一部分还是从线型方程组的求解出发,看下面的例子 A x = b Ax=b Ax=b: A = [ 1 1 2 2 1 3 3 1 4 4 1 5 ] x = [ x 1 x 2 x 3 ] b = [ b 1 b 2 b 3 b 4 ] A=\begin{bmatrix}1&1&2\\2&1&3\\3&1&4\\4&1&5\end{bmatrix} \qquad\qquad x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\qquad\qquad b=\begin{bmatrix}b_1\\b_2\\b_3\\b_4\end{bmatrix} A=⎣⎢⎢⎡123411112345⎦⎥⎥⎤x=⎣⎡x1x2x3⎦⎤b=⎣⎢⎢⎡b1b2b3b4⎦⎥⎥⎤
首先看 A A A是一个什么样的列空间。可以注意到第三列是由前两列相加而得到的,所以第三列是前两列的线性组合,也可以认为第二列是由第三列减第一列得到等等。不过可以肯定的是,其中线性无关的列向量只有两个,由于其中一列已经是另外两列的线性组合了,那么这个列空间由两列向量线性组合而成,显然包含原点。然后可以知道的是, A A A的列向量都包含四个分量,所以该列空间应该是 R 4 R_4 R4的子空间。所以这个列空间是四维空间中的过原点的平面。至此,我们就得到了这个列空间,可以表示为: C ( A ) = x 1 × [ 1 2 3 4 ] + x 2 × [ 1 1 1 1 ] C(A)=x_1\times\begin{bmatrix}1\\2\\3\\4\end{bmatrix}+x_2\times\begin{bmatrix}1\\1\\1\\1\end{bmatrix} C(A)=x1×⎣⎢⎢⎡1234⎦⎥⎥⎤+x2×⎣⎢⎢⎡1111⎦⎥⎥⎤再看这个线性方程组,我们之前就已经提到,可以将该方程组看成是 A A A中列向量的线性组合而线性组合的系数是 x x x,线性组合的结果是 b b b,而解方程组,就是将找到一组系数使得 A A A中的列向量线性组合可以得到 b b b。而这里我们引入了空间的概念,从空间的角度看,解方程组就是判断 b b b是不是在 A A A的列空间中,如果在,那么方程组就有解,如果不在,那么方程组便无解。 所以这里解方程的关键就落在了 A A A和 b b b上。有解的情况很好理解,即: b b b在 A A A的列空间中,或者 R 4 R_4 R4中的列向量 b b b在 A A A的列向量线性组合得到的平面上,这样,我们就能够找到一组系数 x x x使得 A A A中的列向量线性组合得到 b b b。下面我们再看看为什么会导致方程组无解:先看 A A A和 b b b A = [ 1 1 2 2 1 3 3 1 4 4 1 5 ] b = [ b 1 b 2 b 3 b 4 ] A=\begin{bmatrix}1&1&2\\2&1&3\\3&1&4\\4&1&5\end{bmatrix} \qquad\qquad b=\begin{bmatrix}b_1\\b_2\\b_3\\b_4\end{bmatrix} A=⎣⎢⎢⎡123411112345⎦⎥⎥⎤b=⎣⎢⎢⎡b1b2b3b4⎦⎥⎥⎤
b b b表示四维空间( R 4 R_4 R4)中的任何一个向量。 A A A的列空间表示四维空间中的一个平面,显然不能够充满整个空间,而 b b b可以在四维空间中任意取值,所以,存在一大部分的 b b b不在 A A A的列空间上( A A A所能够表示的范围上),这个时候我们找不到线性组合的系数使得 A A A的列向量线性组合得到 b b b,因此无解。
至此,当我们引入空间的概念,使得线性方程组的求解跟我们实际生活的空间变得很相似,也将线性方程组的求解更加几何化了,更接近它的本质现象了。
零空间(null space),更接近求解线性方程组的核心,令 A x = b Ax=b Ax=b中的 b b b为零向量,求解 A x = 0 Ax=0 Ax=0得到的所有 x x x所组成的集合就是零空间( N ( A ) N(A) N(A))。零空间就是齐次线性方程组的解了。更接近我们的求解线性方程组,因而说它更接近核心。
所以如何求解零空间便成了重点话题。以 A x = 0 Ax=0 Ax=0为例: A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] x = [ x 1 x 2 x 3 x 4 ] b = [ 0 0 0 ] A=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix} \qquad\qquad x=\begin{bmatrix}x_1\\x_2\\x_3\\x_4\end{bmatrix}\qquad\qquad b=\begin{bmatrix}0\\0\\0\end{bmatrix} A=⎣⎡1232462682810⎦⎤x=⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤b=⎣⎡000⎦⎤求解零空间,主要的方法就是高斯消元法在非方阵上的使用。
对 A A A使用高斯消元法,直到得到上三角矩阵,这种形式有一个特定的名称叫做行阶梯形矩阵。就是下面的这种形式: [ 1 2 2 2 0 0 2 4 0 0 0 0 ] ⟹ 可 以 写 成 [ 1 2 2 2 0 2 0 4 0 0 0 0 ] \begin{bmatrix}1&2&2&2\\0&0&2&4\\0&0&0&0\end{bmatrix}\stackrel{可以写成}{\Longrightarrow} \begin{bmatrix}1&2&2&2\\0&2&0&4\\0&0&0&0\end{bmatrix} ⎣⎡100200220240⎦⎤⟹可以写成⎣⎡100220200240⎦⎤在这种形式中,有两个比较特殊的列即 [ 1 0 0 ] \begin{bmatrix}1\\0\\0\end{bmatrix} ⎣⎡100⎦⎤和 [ 2 2 0 ] \begin{bmatrix}2\\2\\0\end{bmatrix} ⎣⎡220⎦⎤,像这种非零行的第一个元素所在的列称为主列,这样的元素称为主元。主元的个数称为秩(rank),不含主元的列称为自由列,之所以称为自由列,是因为该列上的系数未知数的值可以自由选择而不会影响常数项,因为对应的向量元素为0。 { x 1 + 2 x 2 + 2 x 3 + 2 x 4 = 0 2 x 3 + 4 x 4 = 0 \begin{cases}x_1+2x_2+2x_3+2x_4=0 \\ \qquad \qquad \quad 2x_3+4x_4=0\end{cases} {x1+2x2+2x3+2x4=02x3+4x4=0 x 4 x_4 x4和 x 2 x_2 x2为自由列对应的系数未知数,所以它们的值可以随便取。
当我们将未知数的个数(或者是系数矩阵的行数)记为 n n n,将主元的个数(秩)记为 r r r,那么自由列的个数就是 n − r n-r n−r,自由变量的个数也就是 n − r n-r n−r.
那么它们的取值空间是什么样的呢,当写成向量的形式 [ x 2 x 4 ] \begin{bmatrix}x_2\\x_4\end{bmatrix} [x2x4]时,取值空间就比较清楚了,即:这个列向量所代表的空间是二维平面。那么我们可以用两个线性无关的向量把这个二维空间表示出来(如果线性相关的话,这两个向量共线,所能表示的空间只能是过原点的直线),最简单的当然就是 c 1 × [ 1 0 ] + c 2 × [ 0 1 ] c_1\times\begin{bmatrix}1\\0\end{bmatrix}+c_2\times\begin{bmatrix}0\\1\end{bmatrix} c1×[10]+c2×[01]。所以我们令 [ x 2 x 4 ] \begin{bmatrix}x_2\\x_4\end{bmatrix} [x2x4]等于 [ 1 0 ] \begin{bmatrix}1\\0\end{bmatrix} [10]和 [ 0 1 ] \begin{bmatrix}0\\1\end{bmatrix} [01],这样该空间中的所有去值就可以由它们所代表。分别的 [ x 1 x 3 ] \begin{bmatrix}x_1\\x_3\end{bmatrix} [x1x3]等于 [ − 2 0 ] \begin{bmatrix}-2\\0\end{bmatrix} [−20]和 [ 2 − 2 ] \begin{bmatrix}2\\-2\end{bmatrix} [2−2],我们可以将这个解整理成这种形式 [ − 2 0 1 0 ] \begin{bmatrix}-2\\0\\1\\0\end{bmatrix} ⎣⎢⎢⎡−2010⎦⎥⎥⎤和 [ 2 − 2 0 1 ] \begin{bmatrix}2\\-2\\0\\1\end{bmatrix} ⎣⎢⎢⎡2−201⎦⎥⎥⎤。这是在 x 2 , x 4 x_2,x_4 x2,x4取1和0的情况下求的一组特解(即:自由变量取特定值所得到的特定解,这两个特解一定是线性无关的)。当 x 2 , x 4 x_2,x_4 x2,x4乘以某个系数 c 1 c_1 c1(取空间中的某个值),那么得到的一个特解也应该是原来的 c 1 c_1 c1倍(方程都是线性的)。那么当我们取自由变量取值空间中的任意值时,也就是 [ x 2 x 4 ] = c 1 × [ 1 0 ] + c 2 × [ 0 1 ] \begin{bmatrix}x_2\\x_4\end{bmatrix}=c_1\times\begin{bmatrix}1\\0\end{bmatrix}+c_2\times\begin{bmatrix}0\\1\end{bmatrix} [x2x4]=c1×[10]+c2×[01],同样的,我们得到的解将是由对应特解表示的线性组合,即: c 1 × [ − 2 0 1 0 ] + c 2 × [ 2 − 2 0 1 ] c_1\times\begin{bmatrix}-2\\0\\1\\0\end{bmatrix}+c_2\times\begin{bmatrix}2\\-2\\0\\1\end{bmatrix} c1×⎣⎢⎢⎡−2010⎦⎥⎥⎤+c2×⎣⎢⎢⎡2−201⎦⎥⎥⎤。这个线性组合就是零空间,因为它足以表示所有可能的解。
其实,在实际过程中,我们都会将行阶梯形矩阵进一步简化,得到简化的行阶梯形矩阵。如下: [ 1 2 2 2 0 0 2 4 0 0 0 0 ] ⟹ 简 化 [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] ⟹ 可 以 写 成 [ 1 0 2 − 2 0 1 0 2 0 0 0 0 ] = R \begin{bmatrix}1&2&2&2\\0&0&2&4\\0&0&0&0\end{bmatrix}\stackrel{简化}{\Longrightarrow}\begin{bmatrix}1&2&0&-2\\0&0&1&2\\0&0&0&0\end{bmatrix}\stackrel{可以写成}{\Longrightarrow}\begin{bmatrix}1&0&2&-2\\0&1&0&2\\0&0&0&0\end{bmatrix}=R ⎣⎡100200220240⎦⎤⟹简化⎣⎡100200010−220⎦⎤⟹可以写成⎣⎡100010200−220⎦⎤=R将简化的行阶梯形矩阵记为 R R R,其中简化的自由列组成的矩阵块记为 F F F,那么可以发现 R = [ I F ] R=\begin{bmatrix}I&F\end{bmatrix} R=[IF] 或者 R = [ I F 0 0 ] R=\begin{bmatrix}I&F\\0&0\end{bmatrix} R=[I0F0],而特解组成的矩阵块就是 [ − F I ] \begin{bmatrix}-F\\I\end{bmatrix} [−FI]。其实这个简化更便于我们寻找特解。寻找到特解之后,将他进行线性组合,就得到了零空间。