本节是Gilbert Strang的MIT线性代数Linear Algebra公开课中【第八讲 求解 A x = b Ax=b Ax=b:可解性和解的结构(lecture 8 Solving A x = b Ax = b Ax=b :Row Reduced Form R R R)】的笔记,参考他在 MIT Linear Algebra课程网站上公开分享的 lecture summary (PDF) & Lecture video transcript (PDF)等文档,整理笔记如下,笔记中的大部分内容是从 MIT Linear Algebra课程网站上的资料中直接粘贴过来的,本人只是将该课程视频中讲述的内容整理为文字形式,前面的章节可在本人的其他博客中找到(此处戳第一讲,第二讲,第三讲,第四讲,第五讲,第六讲,第七讲),后面的章节会按照视频顺序不断更新~
文章目录
lecture 8 Solving Ax = b : Row Reduced Form R
When does A x = b Ax = b Ax=b have solutions x x x , and how can we describe those solutions?
一. 可解性(Solvability conditions on b)
1. 可解性
——可解性: b b b 满足什么条件,才能让 A x = b Ax=b Ax=b 有解?(solvability:condition on the right-hand side b b b )
——有两种描述方法:
- b b b 必须属于 A A A 的列空间(when b b b is in the column space of A A A , C ( A ) C(A) C(A) ),即 b b b 必须是 A A A 各列的线性组合(用列空间描述);
- 如果 A A A 各行的线性组合得到零行,那么 b b b 中元素的同样组合也必须为零。
2. 判断可解性的方法
判断可解性的方法( A x = b Ax=b Ax=b 有解的条件):
- 法一:直接看方程组:如果方程组左侧各行的线性组合得到 0 0 0 ,那么右侧常数的相同组合必然也等于 0 0 0 .
- 法二:对增广矩阵(Augmented matrix)进行消元:如果矩阵 A A A 的某一行已被完全消除(即变为全零行),那么右侧向量 b b b 的对应位置元素应该也变为0。
Example 1: 仍以上节课中的
A
A
A 为例:
A
=
[
1
2
2
2
2
4
6
8
3
6
8
10
]
A=\left[\begin{array}{llll} {1} & {2} & {2} & {2} \\ {2} & {4} & {6} & {8} \\ {3} & {6} & {8} & {10} \end{array}\right]
A=⎣⎡1232462682810⎦⎤
-
法一:对应所需求解的方程组 A x = b Ax=b Ax=b ( b ≠ 0 b\not= 0 b=0 )如下:
x 1 + 2 x 2 + 2 x 3 + 2 x 4 = b 1 2 x 1 + 4 x 2 + 6 x 3 + 8 x 4 = b 2 3 x 1 + 6 x 2 + 8 x 3 + 10 x 4 = b 3 x_{1} + 2x_{2} + 2x_{3} + 2x_{4} = b_1 \\ 2x_{1} + 4x_{2} + 6x_{3} + 8x_{4} = b_2 \\ 3x_{1} + 6x_{2} + 8x_{3} + 10x_{4} = b_3 x1+2x2+2x3+2x4=b12x1+4x2+6x3+8x4=b23x1+6x2+8x3+10x4=b3
显然,矩阵 A A A 的行三是行二与行一的和,因此,若要方程组有解,右侧需满足 b 1 + b 2 = b 3 b_1+b_2=b_3 b1+b2=b3 ; -
法二:此方程组对应的增广矩阵如下:
[ A b ] = [ 1 2 2 2 b 1 2 4 6 8 b 2 3 6 8 10 b 3 ] \left[\begin{array}{llll} A & b \end{array}\right]= \left[\begin{array}{llll} {1} & {2} & {2} & {2} & b_1\\ {2} & {4} & {6} & {8} & b_2\\ {3} & {6} & {8} & {10}& b_3 \end{array}\right] [Ab]=⎣⎡1232462682810b1b2b3⎦⎤
对增广矩阵进行消元:
[
1
2
2
2
b
1
2
4
6
8
b
2
3
6
8
10
b
3
]
→
[
1
2
2
2
b
1
0
0
2
4
b
2
−
2
b
1
0
0
2
4
b
3
−
3
b
1
]
→
[
1
2
2
2
b
1
0
0
2
4
b
2
−
2
b
1
0
0
0
0
b
3
−
3
b
1
−
(
b
2
−
2
b
1
)
]
\left[\begin{array}{llll} {1} & {2} & {2} & {2} & b_1\\ {2} & {4} & {6} & {8} & b_2\\ {3} & {6} & {8} & {10}& b_3 \end{array}\right] \rightarrow \left[\begin{array}{llll} {1} & {2} & {2} & {2} & b_1\\ {0} & {0} & {2} & {4} & b_2-2b_1\\ {0} & {0} & {2} & {4} & b_3-3b_1 \end{array}\right] \rightarrow \left[\begin{array}{llll} {1} & {2} & {2} & {2} & b_1\\ {0} & {0} & {2} & {4} & b_2-2b_1\\ {0} & {0} & {0} & {0} & b_3-3b_1-(b_2-2b_1) \end{array}\right]
⎣⎡1232462682810b1b2b3⎦⎤→⎣⎡100200222244b1b2−2b1b3−3b1⎦⎤→⎣⎡100200220240b1b2−2b1b3−3b1−(b2−2b1)⎦⎤ 即
[
1
2
2
2
b
1
0
0
2
4
b
2
−
2
b
1
0
0
0
0
b
3
−
b
1
−
b
2
]
\left[\begin{array}{llll} {1} & {2} & {2} & {2} & b_1\\ {0} & {0} & {2} & {4} & b_2-2b_1\\ {0} & {0} & {0} & {0} & b_3-b_1-b_2 \end{array}\right]
⎣⎡100200220240b1b2−2b1b3−b1−b2⎦⎤
现在方程三为 0 = b 3 − b 1 − b 2 0=b_3-b_1-b_2 0=b3−b1−b2 ,这就是有解条件。
- 综上,两种方法的结果一致;在本例中,只要满足 b 1 + b 2 = b 3 b_1+b_2=b_3 b1+b2=b3 ,方程组就有解。可见当 b = [ 1 5 6 ] b=\left[\begin{array}{llll}{1} \\ {5} \\{6} \end{array}\right] b=⎣⎡156⎦⎤ 时,方程组有解。
二. 通解(Complete solution)
求 A x = b Ax=b Ax=b 的所有解(即通解或完全解)步骤:
- 判断方程组是否可解(若可解继续下一步);
- 求方程组 A x = b Ax=b Ax=b 的一个特解(particular solution): x particular \mathbf{x}_\text{particular} xparticular ,即 x p \mathbf{x}_p xp ;
- 求零空间中的所有向量:矩阵 A A A 的零空间中的所有向量,等效于求 A x = 0 Ax=0 Ax=0 的所有解: x nullspace \mathbf{x}_\text{nullspace} xnullspace ,即 x n \mathbf{x}_n xn ;
- 将特解和零空间中的所有向量相加,构成方程组的通解,即: x complete = x p + x n \mathbf{x}_{\text{complete}}=\mathbf{x}_p+\mathbf{x}_n xcomplete=xp+xn 。
1. 特解(A particular solution)
求方程组 A x = b Ax=b Ax=b 的一个特解的简单方法:将所有的自由变量设为 0 0 0 (因为自由变量的值可以任取,取 0 0 0 简单),然后求解主变量,结果即为特解。
2. 零空间 (Combined with the nullspace)
上节课讲过如何求解零空间: A A A 的零空间由其special solutions的所有的线性组合构成( A x = 0 Ax=0 Ax=0 的所有解),(令自由变量中有一个是 1 1 1 ,其他自由变量取 0 0 0 ,然后带回求主变量);
3. 通解(Complete solution)
将特解
x
p
\mathbf{x}_p
xp 与零空间中的向量
x
n
\mathbf{x}_n
xn 相加,即得到方程组
A
x
=
b
Ax=b
Ax=b 的所有解(即通解或完全解):
x
complete
=
x
particular
+
x
nullspace
=
x
p
+
x
n
\mathbf{x}_{\text{complete}}=\mathbf{x}_\text{particular} + \mathbf{x}_\text{nullspace}=\mathbf{x}_p+\mathbf{x}_n
xcomplete=xparticular+xnullspace=xp+xn
其中,
x
p
\mathbf{x}_{p}
xp 是特解,
x
n
\mathbf{x}_{n}
xn 是整个零空间,特解加上零空间中的向量即为方程组
A
x
=
b
Ax=b
Ax=b 的所有解,这是因为:
A
x
p
=
b
A \mathbf{x}_{p}=\mathbf{b}
Axp=b ,
A
x
n
=
0
A \mathbf{x}_{n}=0
Axn=0 ,可得
A
(
x
p
+
x
n
)
=
b
A\left(\mathbf{x}_{p}+\mathbf{x}_{n}\right)=\mathbf{b}
A(xp+xn)=b ;即对于方程组某解,将其与零空间内任意向量相加仍为方程组的解,因为零空间内的向量得到的右侧向量为
0
0
0 ,故此时右侧
b
b
b 不会发生变化,这样就得到方程组的所有解了。
Example 2:
仍继续Example 1中的矩阵 A A A 且 b = [ 1 5 6 ] b=\left[\begin{array}{llll}{1} \\ {5} \\{6} \end{array}\right] b=⎣⎡156⎦⎤ ,那么 A x = b Ax=b Ax=b 的所有解是什么?
-
看是否满足有解条件(保证方程组有解):
法一:在Example 1中已经求过其有解条件: b 1 + b 2 = b 3 b_1+b_2=b_3 b1+b2=b3 ,此时 b = [ 1 5 6 ] b=\left[\begin{array}{llll}{1} \\ {5} \\{6} \end{array}\right] b=⎣⎡156⎦⎤ ,可见该 b b b 满足有解条件,方程组有解;
法二:将 b = [ 1 5 6 ] b=\left[\begin{array}{llll}{1} \\ {5} \\{6} \end{array}\right] b=⎣⎡156⎦⎤ 代入,则增广矩阵消元的最终形式如下:
[ 1 2 2 2 1 0 0 2 4 3 0 0 0 0 0 ] \left[\begin{array}{llll} {1} & {2} & {2} & {2} & 1\\ {0} & {0} & {2} & {4} & 3\\ {0} & {0} & {0} & {0} & 0 \end{array}\right] ⎣⎡100200220240130⎦⎤
即最后一个方程成立,满足有解条件。注:此时只有两个方程,但是未知数有四个,故理论上应该是有一堆解,而不是一个解;
-
求一个特解 x particular \mathbf{x}_\text{particular} xparticular :将所有自由变量设为 0 0 0 ,然后解出 A x = b Ax=b Ax=b 中的主变量。
本例中,令自由变量 x 2 = 0 , x 4 = 0 x_2=0,x_4=0 x2=0,x4=0 ,此时方程组只剩下主列,方程组的具体形式如下:
x 1 + 2 x 3 = 1 2 x 3 = 3 x_{1} + 2x_{3} = 1 \\ 2x_{3} = 3 x1+2x3=12x3=3
回代求解: x 3 = 3 2 , x 1 = − 2 x_3=\frac{3}{2},x_1=-2 x3=23,x1=−2 ,即一个特解为 x p = [ − 2 0 3 / 2 0 ] \mathbf{x}_{p}=\left[\begin{array}{r}{-2} \\ {0} \\ {3 / 2} \\ {0}\end{array}\right] xp=⎣⎢⎢⎡−203/20⎦⎥⎥⎤ ,然后可以代回最初的原方程组进行检验。 -
零空间: A x = 0 Ax=0 Ax=0 的special solutions,即基础解系;自由变量中有一个是 1 1 1 ,其他自由变量取 0 0 0 ,然后带回求主变量;
上节课已经讲过,本例中的零空间中有两个特解(因为有两个自由变量): [ − 2 1 0 0 ] \left[\begin{array}{r}{-2} \\ {1} \\ {0} \\ {0}\end{array}\right] ⎣⎢⎢⎡−2100⎦⎥⎥⎤ 和 [ 2 0 − 2 1 ] \left[\begin{array}{r}{2} \\ {0} \\ {-2} \\ {1}\end{array}\right] ⎣⎢⎢⎡20−21⎦⎥⎥⎤ ,则 x n = c 1 [ − 2 1 0 0 ] + c 2 [ 2 0 − 2 1 ] \mathbf{x}_n=c_1 \left[\begin{array}{r}{-2} \\ {1} \\ {0} \\ {0}\end{array}\right]+c_2 \left[\begin{array}{r}{2} \\ {0} \\ {-2} \\ {1}\end{array}\right] xn=c1⎣⎢⎢⎡−2100⎦⎥⎥⎤+c2⎣⎢⎢⎡20−21⎦⎥⎥⎤ 为 A A A 的零空间( A x = 0 Ax=0 Ax=0 的所有special solutions的线性组合);
-
综上,完全解即通解为: x complete = x p + x n = [ − 2 0 3 / 2 0 ] + c 1 [ − 2 1 0 0 ] + c 2 [ 2 0 − 2 1 ] \mathbf{x}_{\text {complete }}=\mathbf{x}_p+\mathbf{x}_n=\left[\begin{array}{r}{-2} \\ {0} \\ {3 / 2} \\ {0}\end{array}\right]+c_1 \left[\begin{array}{r}{-2} \\ {1} \\ {0} \\ {0}\end{array}\right]+c_2 \left[\begin{array}{r}{2} \\ {0} \\ {-2} \\ {1}\end{array}\right] xcomplete =xp+xn=⎣⎢⎢⎡−203/20⎦⎥⎥⎤+c1⎣⎢⎢⎡−2100⎦⎥⎥⎤+c2⎣⎢⎢⎡20−21⎦⎥⎥⎤ 。
可见,此时 A A A 的零空间是 R 4 \mathcal{R}^4 R4 中的两维子空间,并且 A x = 0 Ax=0 Ax=0 的解构成了一个通过 x p x_p xp 且与之平行的平面。
注:特解不能乘以倍数,因为它要保证右侧等于 b b b .
4. 几何图形
将所有的解都画出来(plot all solutions x x x in R 4 \mathcal{R}^4 R4 ):四维图像
—— A x = b Ax=b Ax=b 的解是子空间吗?
——不是(因为它不包含零)
x n = c 1 [ − 2 1 0 0 ] + c 2 [ 2 0 − 2 1 ] \mathbf{x}_n=c_1 \left[\begin{array}{r}{-2} \\ {1} \\ {0} \\ {0}\end{array}\right]+c_2 \left[\begin{array}{r}{2} \\ {0} \\ {-2} \\ {1}\end{array}\right] xn=c1⎣⎢⎢⎡−2100⎦⎥⎥⎤+c2⎣⎢⎢⎡20−21⎦⎥⎥⎤ 是子空间,这是 R 4 \mathcal{R}^4 R4 中的二维子空间(有两个参数),是个二维平面(维数表示可以任意选取的自由独立的数字的个数);该二维平面不穿过原点,而是过点 [ − 2 0 3 / 2 0 ] \left[\begin{array}{r}{-2} \\ {0} \\ {3 / 2} \\ {0}\end{array}\right] ⎣⎢⎢⎡−203/20⎦⎥⎥⎤ ,即特解 x p \mathbf{x}_{p} xp ,构成通解 x complete \mathbf{x}_{\text {complete }} xcomplete 。
三. 秩(Rank)
考虑一个秩为 r r r 的 m × n m×n m×n 的矩阵 A A A : r ≤ n , r ≤ m r\leq n,r \leq m r≤n,r≤m 。
秩 = 矩阵的主元的个数;
矩阵 A A A 共 m m m 行,主元不可能超过 m m m 个(最多 m m m 个),故 r ≤ m r \leq m r≤m ;又因为矩阵 A A A 共 n n n 列,每一列的主元不会超过 1 1 1 个,总主元数不超过 n n n 个,故 r ≤ n r\leq n r≤n 。
满秩: r r r 取最大时的情况,存在两种情况:分别对应于 m m m 值和 n n n 值,先讨论列满秩:
1. 列满秩(Full column rank): r = n r=n r=n
——列满秩( r = n r=n r=n )时,零空间是什么样的?
—— r = n r=n r=n 意味着每一列都有主元,即主变量有 n n n 个(一共就 n n n 个变量),此时所有列都含有主元,没有自由变量,故零空间的维数为: n − r = 0 n-r=0 n−r=0 维,即零空间内只有零向量: N ( A ) = zero vector N(A)= \text{zero vector} N(A)=zero vector;综上,列满秩时不需要求零空间;
——列满秩( r = n r=n r=n )对于方程组的解意味着什么?通解是什么样的?
——此时如果方程组有解,那么只有唯一解 x p x_p xp ,也就是 A x = b Ax=b Ax=b 的全部解为: x = x p x=x_p x=xp ,因为此时没有自由变量可以进行赋值,故只有特解 x p x_p xp 这一个解,没有别的解,称其为唯一解;(只有 b b b 刚好是左侧列向量的线性组合时,才有解;即对于 R m \mathcal{R}^m Rm 中的任意向量 b b b ,只要它不是 A A A 的各列的线性组合,方程组 A x = b Ax=b Ax=b 就无解)。综上,列满秩时,只有 0 0 0 个或者 1 1 1 个解。(此时 r = n < m r=n<m r=n<m )。另外,已知 r ≤ m r \leq m r≤m ,又 r = n r=n r=n , 故矩阵的列数 ≤ \leq ≤ 行数,此时矩阵的行最简形式一般为: R = [ I 0 ] R=\left[\begin{array}{llll} {I} \\ {0} \end{array}\right] R=[I0] .
在实际应用中,这种各列线性无关的情况很常见。
Example 3:
A
=
[
1
3
2
1
6
1
5
1
]
A=\left[\begin{array}{llll} {1} & {3} \\ {2} & {1} \\ {6} & {1} \\ {5} & {1} \end{array}\right]
A=⎣⎢⎢⎡12653111⎦⎥⎥⎤
矩阵
A
A
A 的秩为
2
2
2,两个列向量的方向不同,其简化行阶梯形式
R
R
R 如下:
R
=
[
1
0
0
1
0
0
0
0
]
R=\left[\begin{array}{llll} {1} & {0} \\ {0} & {1} \\ {0} & {0} \\ {0} & {0} \end{array}\right]
R=⎣⎢⎢⎡10000100⎦⎥⎥⎤
该矩阵只有两个无关的行,即前两行线性无关(不共线),其他行均是这两行的线性组合。
——此时 A x = b Ax=b Ax=b 是否总有解?
——不是总有解。只有 b b b 选择的刚好是左侧列向量的线性组合时,才有解;矩阵 A A A 是列满秩,其两列给出两个主元,其零空间中只有 0 0 0 ,因为列之间的线性组合无法产生零列(零零组合不算);这里有四个方程两个未知数。如果恰好 b = [ 4 3 7 6 ] b=\left[\begin{array}{llll} {4}\\{3} \\{7} \\{6} \end{array}\right] b=⎣⎢⎢⎡4376⎦⎥⎥⎤ ,即 b b b 是左侧两列的和,那么特解为 x p = [ 1 1 ] \mathbf{x}_{p}=\left[\begin{array}{r}{1}\\{1} \end{array}\right] xp=[11] ,这是方程组的唯一解。
2. 行满秩(Full row rank): r = m r=m r=m
行满秩时,消元后,每一行都有主元,共有 m m m 个主元,没有零行,故有 r = m r = m r=m 个主变量;由于一共就 n n n 个变量,故有 n − r = n − m n-r=n-m n−r=n−m 个自由变量。( r = m < n r=m < n r=m<n )
——右侧向量 b b b 取什么时, A x = b Ax=b Ax=b 有解?
——行满秩,消元时不会出现零行,因此对 b b b 没有要求,即对于任意 b b b , A x = b Ax=b Ax=b 都有解,故必然有解。综上,行满秩时,方程组 A x = b Ax=b Ax=b 总有解,另外由于有 n − m n-m n−m 个自由变量,因此方程组 A x = 0 Ax=0 Ax=0 有 n − m n-m n−m 个special solutions。此时 r = m ≤ n r=m \leq n r=m≤n ,行数 ≤ \leq ≤ 列数,则其行最简形式一般为 R = [ I F ] R=\left[\begin{array}{llll}I & F\end{array}\right] R=[IF] 。
Example 4: (将Example 2 中的例子转置一下)
A
=
[
1
2
6
5
3
1
1
1
]
A=\left[\begin{array}{llll} {1} & {2} & {6} & {5} \\ {3} & {1} & {1} & {1} \end{array}\right]
A=[13216151]
此时矩阵的秩为
2
2
2 ,有两个主元,其行最简如下:
R
=
[
1
0
−
−
0
1
−
−
]
=
[
I
F
]
R=\left[\begin{array}{llll} {1} & {0} & {-} & {-} \\ {0} & {1} & {-} & {-} \end{array}\right]=\left[\begin{array}{llll} I & F \end{array}\right]
R=[1001−−−−]=[IF]
注意:
F
F
F 处有值,该部分将构成零空间的special solution;即
R
R
R 中的各主列构成单位阵,
R
R
R 中没有零行,因此秩是2;
3. 行列均满秩(Full row and column rank): r = m = n r=m=n r=m=n
Example 5:
A
=
[
1
2
3
1
]
A=\left[\begin{array}{llll} {1} & {2} \\ {3} & {1} \end{array}\right]
A=[1321]
行列均满秩的矩阵一定是方阵,即称为满秩,无需说明是列或者行满秩,因为行等于列,是一回事,此时秩已经达到最大了,
r
=
m
=
n
r=m=n
r=m=n ,即行列均满秩的矩阵
A
A
A 为可逆方阵,其行最简形式
R
R
R 是单位阵:
R
=
[
1
0
0
1
]
=
I
R=\left[\begin{array}{llll} {1} & {0} \\ {0} & {1} \end{array}\right]=I
R=[1001]=I
该矩阵的零空间的维数是
0
0
0 ,即零空间中只有零向量,同时,方程组
A
x
=
b
Ax=b
Ax=b 一定有解,且是唯一解;因为
r
=
m
r=m
r=m 时,总有解,而
r
=
n
r=n
r=n 时,解唯一。
4. 总结(Summary)
注意:第三种情况中的行最简形式 R R R 不一定就是:前面全是主列、后面全是自由列的形式,即行最简形式不一定就是 [ I F ] \left[\begin{array}{llll}I & F\end{array}\right] [IF] 形式,也有可能主列和自由列穿插着,即 I I I 和 F F F 混在一起的。
矩阵的秩决定了方程组解的个数,秩 r r r 包含了所有信息(除了具体的计算结果)。