线性方程组的解空间
在介绍上一节中我们提到,秩反应的是方程组中实际有效的方程数量。 当有效的方程数量少于未知数时,方程组的解不唯一,将有无穷多解。有一类被称为齐次线性方程组,具有形式 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{0}\), 它的解构成了一个对加法和数乘封闭的空间,既解空间。而一般的线性方程组 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{b}\) 的解则是对应齐次线性方程组的解空间再加上一个偏移向量构成的。
1. 齐次线性方程组的解
我们先来看一种特殊的线性方程组,它的常数项均为 0,如下式。因为方程组中各个未知数的次数都是相同的,都是1次的,所以称这类方程组为齐次线性方程组, 具有形式 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{0}\)。 $$ \begin{cases} a_{11}x_1 + \cdots + a_{1n}x_n & = & 0 \\ & \vdots & \\ a_{m1}x_1 + \cdots + a_{mn}x_n & = & 0 \end{cases} \Longrightarrow \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} 0 \\ \vdots \\ 0 \end{bmatrix} \Longrightarrow \boldsymbol{A}\boldsymbol{x} = \boldsymbol{0} $$ 很容易看出,如果各个未知数均为0方程组一定成立,所以齐次方程组一定存在一个零解。那么它是否存在非零解呢? 根据高斯消元法,如果矩阵 \(\boldsymbol{A}\) 的秩等于未知数的个数, 那么 \(\boldsymbol{A}\) 一定能够通过一系列的初等行变换得到一个单位阵,有 \(\boldsymbol{I}\boldsymbol{x} = \boldsymbol{0}\),此时方程组不存在非零解。 如果方程组不满秩,那么我们一定可以将其同解变换成一个阶梯型的矩阵
$$ \boldsymbol{B} = \begin{bmatrix} b_{1,1} & \cdots & 0 & \cdots & 0 & \cdots \\ & & b_{2,j_2} & \cdots & 0 & \cdots \\ & & & \ddots & 0 & \cdots \\ & & & & b_{r,j_r} & \cdots \\ & & & & & \boldsymbol{0} \\ \end{bmatrix} $$矩阵 \(\boldsymbol{B}\) 中 \(b_{r, j_r} = 1\),比如矩阵 \( \begin{bmatrix} 1 & 2 & 3 & 4 \\ 1 & 2 & 0 & -5 \\ 2 & 4 & -3 & -19 \\ 3 & 6 & -3 & -24 \end{bmatrix} \) 的秩为 2,可以变换为 \( \begin{bmatrix} 1 & 2 & 0 & -5 \\ 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{bmatrix} \),其有效方程则是 \( \begin{cases} x_1 & + & 2 x_2 & & - & 5 x_4 = 0 \\ & & & x_3 & + & 3 x_4 = 0 \end{cases} \)。其中未知数 \(x_1\) 只出现在第一个方程中,\(x_3\) 只出现在第二个方程中。可以说 \(x_1, x_3\) 的解与 \(x_2, x_4\) 有关,\(x_2, x_4\) 可以取任何值, 只要 \(x_1, x_3\) 能够对应调整满足方程即可。这里我们称 \(x_2, x_4\) 为自由变量,将它们移到方程右侧,有\( \begin{cases} x_1 & = & -2 x_2 & + & 5 x_4 \\ x_2 & = & x_2 & & \\ x_3 & = & & - & 3 x_4 \\ x_4 & = & & & x_4 \end{cases} \),分别用 \(\lambda_1\) 和 \(\lambda_2\) 表示\(x_2,x_4\) 的可能取值,那么方程组的解就可以写成两个列向量的线性组合: \( \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{bmatrix} = \lambda_1 \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix} + \lambda_2 \begin{bmatrix} 5 \\ 0 \\ 3 \\ 1 \end{bmatrix} \)。这个例子还描述了一种不满秩的线性方程组的解法, 我们在函数 SolveSpace 中给出了该算法的一个实现。 先通过高斯消元得到阶梯型的矩阵,再将矩阵中的自由变量所在列的系数提取出来写成列向量的形式 \(\boldsymbol{\alpha_1}, \cdots, \boldsymbol{\alpha_{h}}\),那么方程组的解就是这些向量的线性组合 \(\lambda_1 \boldsymbol{\alpha_1} + \cdots + \lambda_h \boldsymbol{\alpha_h}\)。 其中 \(h\) 为自由变量的个数,它与方程组的秩\(r\)和未知数个数\(n\)之间具有关系,\(r + h = n\)。
2. 解空间
当齐次线性方程组有非零解时,它的解有无限个,并且可以写成若干个列向量的线性组合,构成了一个解空间。我们用符号 \(\mathcal{W}\) 表示一个齐次线性方程组的解集, 解集 \(\mathcal{W}\) 具有如下两个重要的性质:
如果向量 \(\boldsymbol{x}, \boldsymbol{y} \in \mathcal{W}\),那么它们的和也是方程组的解,即\(\boldsymbol{x} + \boldsymbol{y} \in \mathcal{w}\)。
如果向量 \(\boldsymbol{x} \in \mathcal{W}\),那么对于任意常数 \(\lambda\) 都有 \(\lambda \boldsymbol{x} \in \mathcal{W}\)。
对于方程 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{0}\),其中 \(\boldsymbol{A}\) 是一个 \(m \times n\) 的系数矩阵,我们将它写成列向量的形式,记 \(\boldsymbol{a_1} = \begin{bmatrix} a_{11} \\ a_{21} \\ \cdots \\ a_{m1} \end{bmatrix}, \cdots, \boldsymbol{a_n} = \begin{bmatrix} a_{1n} \\ a_{2n} \\ \cdots \\ a_{mn} \end{bmatrix}\), \(n\) 维向量 \(\boldsymbol{x} = \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix}\) 和 \(\boldsymbol{y} = \begin{bmatrix} y_1 \\ \vdots \\ y_n \end{bmatrix}\) 分别是方程组的两个解,有
$$ \begin{cases} x_1 \boldsymbol{a_1} + \cdots + x_n \boldsymbol{a_n} = \boldsymbol{0} \\ y_1 \boldsymbol{a_1} + \cdots + y_n \boldsymbol{a_n} = \boldsymbol{0} \end{cases} \Longrightarrow (x_1 + y_1)\boldsymbol{a_1} + \cdots + (x_n + y_n)\boldsymbol{a_n} = \boldsymbol{0} $$所以,\(\boldsymbol{x} + \boldsymbol{y}\) 也是方程组的解,类似的还可以证明\(\lambda \boldsymbol{x}\) 也是方程组的解。 因为这两条性质的存在,我们可以说解集 \(\mathcal{W}\) 对向量的加法和数乘运算时封闭的,它可以构成一个向量空间。
定义: 向量空间 \(\mathbb{F}^n\) 的非空子集 \(\mathcal{W}\) 如果满足条件: ① \(\boldsymbol{u}, \boldsymbol{v} \in \mathcal{W} \Rightarrow \boldsymbol{u} + \boldsymbol{v} \in \mathcal{W}\), ② \(\boldsymbol{u} \in \mathcal{W}, \lambda \in \mathbb{F} \Rightarrow \lambda \boldsymbol{u} \in \mathcal{W}\), 就称 \(\mathcal{W}\) 是 \(\mathbb{F}^n\) 的子空间。
所以数域 \(\mathbb{F}\) 上的 \(n\) 元齐次线性方程组的解集是 \(\mathbb{F}^n\) 的子空间。因此我们称之为解空间,它的维度是 \(n - r\), 其中 \(r\) 是齐次线性方程组的秩。当齐次线性方程组满秩时,它的解就只有一个零向量,我们称解集 \(\{\boldsymbol{0}\}\) 构成的空间为零空间。 该空间仅有的一个零向量自己是线性相关的,不存在与之线性无关的向量,该空间的维度是 0,最大线性无关组,或者说空间的基,是个空集。
在实际的工程应用当中[1] [2], 经常会见到通过SVD 分解 取 nullspace 的基向量。这个所谓的 nullspace 实际上就是我们这里所说的解空间。 在一些资料里面还称解空间为核空间(kernel)。\(n\)维齐次线性方程组所张成的空间常被人称为象空间(image),或者是值域(range)。
3. 一般线性方程组的解
对于一般线性方程组 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{b}\),我们通常将它写成增广矩阵的形式 \(\boldsymbol{\tilde{A}} = \left[ \boldsymbol{A} | \boldsymbol{b} \right]\)。 对 \(\boldsymbol{\tilde{A}}\) 进行高斯消元,如果方程组不满秩,最后也可以得到一个阶梯形式的矩阵。
$$ \boldsymbol{\tilde{C}} = \begin{bmatrix} c_{1,1} & \cdots & 0 & \cdots & 0 & \cdots & d_1 \\ & & c_{2,j_2} & \cdots & 0 & \cdots & d_2 \\ & & & \ddots & 0 & \cdots & \vdots \\ & & & & c_{r,j_r} & \cdots & d_r \\ & & & & & \boldsymbol{0} & \boldsymbol{d}^h \\ \end{bmatrix} $$矩阵 \(\boldsymbol{\tilde{C}}\) 中 \(c_{r, j_r} = 1\),\(r\) 是线性方程组的秩,\(h = n - r\)。 如果向量 \(\boldsymbol{d}^h\) 非零,那么将出现 \(\boldsymbol{0} = \boldsymbol{b}^h\) 的情况,此时方程无解。 令 \(\boldsymbol{d} = \begin{bmatrix} d_1 \\ \vdots \\ \boldsymbol{d}^h \end{bmatrix}\),并将矩阵\(\boldsymbol{\tilde{C}}\)中的自由变量所在列的系数提取出来写成列向量的形式 \(\boldsymbol{\alpha_1}, \cdots, \boldsymbol{\alpha_{h}}\),那么方程组的解就是这些向量的线性组合 \(\boldsymbol{d} + \lambda_1 \boldsymbol{\alpha_1} + \cdots + \lambda_h \boldsymbol{\alpha_h}\)。 实际上集合 \(\{\boldsymbol{\alpha_1}, \cdots, \boldsymbol{\alpha_{h}}\}\) 就是对应齐次线性方程组 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{0}\) 的解空间。 如果 \(\lambda_1, \cdots, \lambda_h\) 均为 0,那么原方程组的解就是 \(\boldsymbol{d}\),我们可以称之为原方程组的一个特解。 所以一般的线性方程组的解是对应齐次线性方程组的解空间再加上一个偏移向量构成的。特别的,对于齐次线性方程组 \(\boldsymbol{A}\boldsymbol{x} = \boldsymbol{0}\), 我们可以认为零向量 \(\boldsymbol{0}\) 就是其一个特解。