本文讨论齐次线性方程组 A x = 0 \mathbf A \boldsymbol x=\boldsymbol 0 Ax=0的解
这里我们主要研究 A \mathbf A A的列数 c o l col col大于行数 r o w row row的情况,这对应了:
注意,对于 A x = 0 \mathbf A \boldsymbol x=\boldsymbol 0 Ax=0,必然有解,因为 0 ⃗ \vec 0 0一定是一个解;
我们进一步关心其解的集合(唯一解?无穷解?):解空间/零空间是方程的所有可能解向量的集合
- 线性变换不压缩空间时,有唯一零解(零空间为一个点);
- 线性变换压缩空间时,有无穷个解(零空间为一条线/一个平面)
如果有系数矩阵
A
=
[
1
2
2
2
2
4
6
8
3
6
8
10
]
\mathbf A=
第三行全为0,说明:通过消元发现,矩阵的第三行是其他行的线性组合
此处与5-1中介绍的高斯消元得到上三角阵的情况不同,这里的消元规则为:
注意,这里的初等行变换,不改变列向量的关系,列空间不变,解空间/零空间也不变,而只是改变了行向量的关系(为什么?)
最终将求解 A x = 0 \mathbf A\boldsymbol x=\boldsymbol 0 Ax=0变为求解 U x = 0 \mathbf U\boldsymbol x=\boldsymbol 0 Ux=0, U \mathbf U U是梯形矩阵,理解为只保留了 A \mathbf A A中的最重要的信息,也使得方程求解更简单
消元后引入几个概念:
对 m × n m\times n m×n的系数矩阵( n n n个变量),结论是:
可见,消元法就是找出方程组中的“有效方程”和“有效变量”(主元)的过程
可以由其余方程线性组合得到的方程,就是无效方程
可以任意取值且保持方程有解的变量,就是无效变量(自由变量)
消元后的系数矩阵
U
=
[
1
2
2
2
0
0
2
4
0
0
0
0
]
\mathbf U=
{
x
1
+
2
x
2
+
2
x
3
+
2
x
4
=
0
2
x
3
+
4
x
4
=
0
这里得到重要结论:矩阵行空间的维数等于列空间的维数,或者说矩阵的行秩=列秩,矩阵转置不改变秩
理解:行向量线性相关则列向量不可能线性无关,假如行向量线性相关,那么消元后一定会出现全零行,对应存在自由列,而自由列可以被左侧的主元列线性表出,也就是说列线性相关
而消元的行变换不改变列向量的相关性,因此行向量线性相关则列向量不可能线性无关
如果给定自由变量的值为 [ 0 , 0 , . . . , 0 ] [0,0,...,0] [0,0,...,0],得到的解向量就是 0 ⃗ \vec 0 0
如果给定自由变量的值为 [ 1 , 0 , . . . , 0 ] [1,0,...,0] [1,0,...,0],相当于是用主元列线性组合得到某一个自由列的问题(当然,这一定是有解的,前面说过自由列可以被其左侧的主元列线性表出)
当然,最简单的方法就是依次带入:每个自由变量的值为1且其余自由变量的值为0
可见:方程消元,给出了列相关性/秩/零空间(基础解系)等所有信息
实际上,上面消元后的矩阵
U
\mathbf U
U还可以进一步化简为行最简阶梯型矩阵RRFE(Reduced row echelon form):保证主元列中,主元是唯一的非零元素,并且主元为1
行最简阶梯型以最简单和清晰的方式表述了方程所含的所有信息
对于本例, U = [ 1 2 2 2 0 0 2 4 0 0 0 0 ] \mathbf U=
U=⎣ ⎡100200220240⎦ ⎤,其行最简阶梯型矩阵 R = [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] \mathbf R=" role="presentation" style="position: relative;"> [ 1 2 2 2 0 0 2 4 0 0 0 0 ] R=⎣ ⎡100200010−220⎦ ⎤" role="presentation" style="position: relative;"> [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ]
在Matlab中,使用rref()函数可以直接得到结果
行最简阶梯型矩阵RRFE的作用是:能够使计算机迅速找出方程的解,过程是:
将各个变量的位置调换(“列变换”),将行最简阶梯型矩阵的主元列集中在左侧(得到单位阵),右侧是自由列
这样,解方程求解 A x = 0 \mathbf A\boldsymbol x=\boldsymbol 0 Ax=0,最终变为求解求解 R x ′ = 0 \mathbf R\boldsymbol x'=\boldsymbol 0 Rx′=0( x ′ \boldsymbol x' x′中变量位置有调换)
然后,在“对自由变量任意取值,求特解”的过程中,仍然每次只令一个自由变量取值1,其余自由变量取值0;
之前说过,问题就转为:求主元列的线性组合,希望获取某一个自由列,而这个系数正是来自于
F
\mathbf F
F!!!
最终,可以将这些特解(基础解系)作为列向量,获得一个矩阵,这个矩阵的列空间就是零空间/解空间
这个“表出零空间的矩阵”就是:
N
=
[
−
F
I
]
\mathbf N=
其上半部分对应主变量的取值,下半部分对应自由变量的取值,每一列向量就是一个特解(零空间的基)