Lecture7 求解齐次线性方程组 A x = 0 Ax=0 Ax=0
1.零空间的计算
- 计算方法
例如:
A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] A=\begin{bmatrix} 1&2&2&2\\ 2&4&6&8\\ 3&6&8&10 \end{bmatrix} A=⎣⎡1232462682810⎦⎤
求解A的零空间。
方法:利用消元法
(消元法的本质是将一个方程的n倍加到另一个方程,因此不会改变方程组的解,可以用来求解零空间):
过程如下:
Step1:
A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] → [ 1 2 2 2 0 0 2 4 0 0 2 4 ] A= \begin{bmatrix} 1&2&2&2\\ 2&4&6&8\\ 3&6&8&10 \end{bmatrix}\rightarrow \begin{bmatrix} 1&2&2&2\\ 0&0&2&4\\ 0&0&2&4 \end{bmatrix} A=⎣⎡1232462682810⎦⎤→⎣⎡100200222244⎦⎤
通过消元,我们发现在第二行第二列的位置为0且在下面的几行中也找不到可以替换的行,说明第二列其实是前面各列的线性组合,也即和前面的列线性相关。这时候可以称第二列是自由(free)的。
Step2:
[ 1 2 2 2 0 0 2 4 0 0 2 4 ] → [ 1 2 2 2 0 0 2 4 0 0 0 0 ] = U \begin{bmatrix} 1&2&2&2\\ 0&0&2&4\\ 0&0&2&4 \end{bmatrix} \rightarrow \begin{bmatrix} 1&2&2&2\\ 0&0&2&4\\ 0&0&0&0 \end{bmatrix}=U ⎣⎡100200222244⎦⎤→⎣⎡100200220240⎦⎤=U
进一步,将矩阵可以化成如下的阶梯状的形式(echelon form)。通过观察可以看出矩阵的主元数量为2,也就是有效方程的个数为2,矩阵的秩(rank)是2。
秩(Rank)在算法中的意义:
对于一个 m × n m \times n m×n的矩阵,
它的秩 r = r= r= 消元后主元的个数,从方程组的角度本质是有效方程的数量。
如果它的秩为 r r r,它的自由变量的个数为 n − r n-r n−r。
Step3:
根据 U U U的主元变量,即每一行第一个不为零的数,得到主元列(pivot columns)和自由列(free columns),上例中主元列为1,3列,自由列为2,4列。
free的含义:
对于2,4列而言,我们可以取任意的两个数 x 2 x_2 x2和 x 4 x_4 x4,之后可以根据任取的 x 2 x_2 x2和 x 4 x_4 x4,利用方程组来求解 x 1 x_1 x1和 x 3 x_3 x3。
Step4:
(1) 假设: x 2 = 1 x_2=1 x2=1, x 4 = 0 x_4=0 x4=0:
可以解得: x 1 = − 2 x_1=-2 x1=−2, x 3 = 0 x_3=0 x3=0,也即 x = [ − 2 1 0 0 ] x=\begin{bmatrix}-2\\1\\0\\0\end{bmatrix} x=⎣⎢⎢⎡−2100⎦⎥⎥⎤。
对于 x x x:
通过 x x x可知第一列的-2倍加上第二列等于0向量。
x x x是方程组的一个特解。
x x x是0空间中的1个向量。
(2) 假设: x 2 = 0 x_2=0 x2=0, x 4 = 1 x_4=1 x4=1:
可以解得: x 1 = − 2 x_1=-2 x1=−2, x 3 = 0 x_3=0 x3=0,也即 x ′ = [ 2 0 − 2 1 ] x^\prime=\begin{bmatrix}2\\0\\-2\\1\end{bmatrix} x′=⎣⎢⎢⎡20−21⎦⎥⎥⎤。 x ′ x^\prime x′也是0空间中的1个向量。
(3) 由以上两步得到零空间中的两个向量,由这两个向量的线性组合,可以得到整个零空间中的向量满足。
x N = c [ − 2 1 0 0 ] + d [ 2 0 − 2 1 ] x_N=c\begin{bmatrix}-2\\1\\0\\0\end{bmatrix}+d\begin{bmatrix}2\\0\\-2\\1\end{bmatrix} xN=c⎣⎢⎢⎡−2100⎦⎥⎥⎤+d⎣⎢⎢⎡20−21⎦⎥⎥⎤
Step5:
为了以一种更清楚的方式得到零空间中的一组线性无关列向量:
将 U U U简化得到简化的阶梯矩阵 R R R(reduced row echelon form):
向上进行消元,将主元列中除主元外其他项变成0,然后将主元变为1;
U = [ 1 2 2 2 0 0 2 4 0 0 0 0 ] → [ 1 2 0 − 2 0 0 2 4 0 0 0 0 ] → [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] = R U= \begin{bmatrix} 1&2&2&2\\ 0&0&2&4\\ 0&0&0&0 \end{bmatrix}\rightarrow \begin{bmatrix} 1&2&0&-2\\ 0&0&2&4\\ 0&0&0&0 \end{bmatrix}\rightarrow \begin{bmatrix} 1&2&0&-2\\ 0&0&1&2\\ 0&0&0&0 \end{bmatrix}=R U=⎣⎡100200220240⎦⎤→⎣⎡100200020−240⎦⎤→⎣⎡100200010−220⎦⎤=R
通过观察可以看出,在主元列和主元行恰好构成了一个单位阵 I I I,
而自由列和自由行构成的部分,设为 F F F。
假设 R R R的前 r r r列为主元列。
R R R可以写为: R = [ I ∣ F ] R=\begin{bmatrix}I&| \ \ \ F&\end{bmatrix} R=[I∣ F]
设 R R R的0空间为 N N N列向量构成的空间,
R N = 0 , R = [ I ∣ F ] RN = 0,R=\begin{bmatrix}I&| \ \ \ F&\end{bmatrix} RN=0,R=[I∣ F]
⇒ N = [ − F − − I ] \Rightarrow N= \begin{bmatrix}-F\\-\ -\\I\end{bmatrix} ⇒N=⎣⎡−F− −I⎦⎤
上述寻找 N N N的过程可以描述为:
(1)先在自由变量的位置写上一个 I I I矩阵
相当于寻找每个特解时,将一个自由变量设为1,其余全部设为0,对于上例:
N = [ ∗ ∗ 1 0 ∗ ∗ 0 1 ] N= \begin{bmatrix} *&*\\ 1&0\\ *&*\\ 0&1 \end{bmatrix} N=⎣⎢⎢⎡∗1∗0∗0∗1⎦⎥⎥⎤
(2)将 R R R的自由列取反后补充到剩余位置
N = [ − 2 2 1 0 0 − 2 0 1 ] N= \begin{bmatrix} -2&2\\ 1&0\\ 0&-2\\ 0&1 \end{bmatrix} N=⎣⎢⎢⎡−210020−21⎦⎥⎥⎤
Lecture8 求解非齐次线性方程组 A x = b Ax=b Ax=b
1.解法
- 例如:
A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] , A x = b , b = [ 1 5 6 ] A=\begin{bmatrix} 1&2&2&2\\ 2&4&6&8\\ 3&6&8&10 \end{bmatrix} ,Ax=b,b=\begin{bmatrix}1\\5\\6\end{bmatrix} A=⎣⎡1232462682810⎦⎤,Ax=b,b=⎣⎡156⎦⎤
与 A x = 0 Ax=0 Ax=0类似,也是利用消元法:
写出 A x = b Ax=b Ax=b的增广矩阵(augmented matrix),之后经过消元变为阶梯矩阵的形式。
[ 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 ( 1 ) 0 0 2 4 ∣ b 2 − 2 b 1 ( 3 ) 0 0 0 0 ∣ b 3 − b 2 − b 1 ( 0 ) ] \begin{bmatrix} 1&2&2&2&|&b_1\\ 2&4&6&8&|&b_2\\ 3&6&8&10&|&b_3 \end{bmatrix}\rightarrow \begin{bmatrix} 1&2&2&2&|&b_1\\ 0&0&2&4&|&b_2-2b_1\\ 0&0&2&4&|&b_3-3b_1 \end{bmatrix}\rightarrow \begin{bmatrix} 1&2&2&2&|&b_1(1)\\ 0&0&2&4&|&b_2-2b_1(3)\\ 0&0&0&0&|&b_3-b_2-b_1(0) \end{bmatrix} ⎣⎡1232462682810∣∣∣b1b2b3⎦⎤→⎣⎡100200222244∣∣∣b1b2−2b1b3−3b1⎦⎤→⎣⎡100200220240∣∣∣b1(1)b2−2b1(3)b3−b2−b1(0)⎦⎤ - 方程组可解性(Solve Ability):
由之前学过的知识可知 b b b在 A A A的列空间时,方程组有解。
这里可以用另一种思维考虑:
若A的行的线性组合可以产生0行,右侧b按同种规则组合也为0。 - 如何求解
A
x
=
b
Ax=b
Ax=b
(1) Step1:找到一个特解(particular solution)
将方程组的所有自由变量设成0,求解主元变量。
上例中为:
{ x 1 + 2 x 3 = 2 2 x 3 = 3 \begin{cases} x_1+2x_3=2\\ 2x_3=3\\ \end{cases} {x1+2x3=22x3=3
特解可以得出为: x p = [ − 2 0 3 / 2 0 ] x_p=\begin{bmatrix}-2\\0\\3/2\\0\end{bmatrix} xp=⎣⎢⎢⎡−203/20⎦⎥⎥⎤。
(2)Step2:方程的解可以加上0空间中任何向量,得到通解(complete solution)
x = x p + x N x = x_p+x_N x=xp+xN
解释:
由 x p x_p xp得到的过程可知 A x p = b Ax_p=b Axp=b。而 A x N = 0 Ax_N=0 AxN=0
得到: A ( x p + x N ) = A x p + A x N = 0 A(x_p+x_N)=Ax_p+Ax_N=0 A(xp+xN)=Axp+AxN=0。
所以例子中的解为:
x = x N + x p = c [ − 2 1 0 0 ] + d [ 2 0 − 2 1 ] + [ − 2 0 3 / 2 0 ] x=x_N+x_p=c\begin{bmatrix}-2\\1\\0\\0\end{bmatrix}+d\begin{bmatrix}2\\0\\-2\\1\end{bmatrix}+\begin{bmatrix}-2\\0\\3/2\\0\end{bmatrix} x=xN+xp=c⎣⎢⎢⎡−2100⎦⎥⎥⎤+d⎣⎢⎢⎡20−21⎦⎥⎥⎤+⎣⎢⎢⎡−203/20⎦⎥⎥⎤
是4维空间内的一个平面。 - 关于矩阵秩的讨论
m × n m\times n m×n矩阵秩为 r r r。
r ≤ m , r ≤ n r\leq m,r\leq n r≤m,r≤n
满秩情况分为两种:
(1)列满秩( r = n r = n r=n):意味着每一列都有主元,也就是没有自由变量。 N ( A ) N(A) N(A)中只有零向量。
x = x p x = x_p x=xp(Unique solution if it exist)
A x = b Ax=b Ax=b如果存在解则为有唯一解。
(2)行满秩( r = m r = m r=m):每一行都有主元。
A x = b Ax=b Ax=b一定有解,因为无解只出现在消元后方程组左侧为0,右侧不为0的情况。行满秩意味着消元后左侧没有零行。
将会有 n − r n-r n−r个自由变量。
(3)总结-
r
=
m
=
n
r = m = n
r=m=n:有且仅有唯一解,方阵可逆。
A消元后的矩阵为 [ I ] \begin{bmatrix} \ I \ \end{bmatrix} [ I ]。 -
r
=
n
<
m
r = n < m
r=n<m:有唯一解或无解。
A消元后的矩阵为 [ I − − 0 ] \begin{bmatrix} \ I \ \\ -- \\ 0\end{bmatrix} ⎣⎡ I −−0⎦⎤。 -
r
=
m
<
n
r = m < n
r=m<n:一定有无穷多解,且解的形式为一个特解+零空间内任意向量。
A消元后的矩阵为 [ I ∣ F ] \begin{bmatrix} \ I \ &| \ \ &F\end{bmatrix} [ I ∣ F]。 -
r
<
m
,
r
<
n
r < m \ , \ r<n
r<m , r<n:可能无解,也可能有无穷多解。
A消元后的矩阵为 [ I ∣ F − − − − − − 0 ∣ 0 ] \begin{bmatrix} \ I \ &| \ \ &F \\ --&--&--\\ \ 0\ &| \ \ &0 \end{bmatrix} ⎣⎡ I −− 0 ∣ −−∣ F−−0⎦⎤。
-
r
=
m
=
n
r = m = n
r=m=n:有且仅有唯一解,方阵可逆。