本篇为MIT公开课——线性代数 笔记。
这节课开始我们将把重点转向如何在空间中计算出向量,由定义转向算法。
\(Ax=0\)的求解
求解\(Ax=0\) 的算法就是消元。
举例
\[A=\left(
\begin{array}{cccc}
1 & 2 & 2 & 2 \\
2 & 4 & 6 & 8 \\
3 & 6 & 8 & 10 \\
\end{array}
\right)
\]
消元
\(E_{21}、E_{31}\) 消元:
主元是第一行第一列的"1",结果为
\[\left(
\begin{array}{cccc}
1 & 2 & 2 & 2 \\
0 & 0 & 2 & 4 \\
0 & 0 & 2 & 4 \\
\end{array}
\right)
\]
发现主元2出现0,而且行交换无效,说明:第二列相关于第一列,所以我们不去管第二列,继续找主元2:第二行第三列 "2".
继续消元
\(E_{33}\) 消元,结果为 阶梯形式矩阵 \(U\)
\[\left(
\begin{array}{cccc}
1 & 2 & 2 & 2 \\
0 & 0 & 2 & 4 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)=U
\]
消元完后,就变成求解 \(Ux=0\) 。
秩
这个例子中,矩阵的主元的数量只有 \(2\) ,该数字称为矩阵的 “秩”(rank)。 它的意义就是表示主元的个数。
主列和自由列
主列:主元所在的列。其他列称为自由列。
该例子中,主列是列 \(1\) 和列 \(3\).
自由列是 列 \(2\) 和列 \(4\) .
自由列的意思是,可以自由或任意分配数值给对应列的未知数。
我们可以对列二和列四的乘数项 \(x_{2}、x_{4}\) 任意取值。
然后只需要求解 \(x_{1}\) 和 \(x_{3}\).
取值:
\[x=\left(
\begin{array}{c}
\square \\
1 \\
\square \\
0 \\
\end{array}
\right)
\]
回代和特解
\[x_1+2 x_2+2 x_3+2 x_4=0 \\
2 x_3+4 x_4=0
\]
可以求得
\[x=\left(
\begin{array}{c}
-2 \\
1 \\
0 \\
0 \\
\end{array}
\right)
\]
这是零空间的一个向量,也是\(Ax=0\) 的一个解。
将她乘以任意倍数,就能得到四维空间中一条无限延申的直线。
\[x=c\left(
\begin{array}{c}
-2 \\
1 \\
0 \\
0 \\
\end{array}
\right)
\]
但它不是整个零空间,因为 \(x_{2}、x_{4}\) 还可以取其他的值。
取值:
\[x=\left(
\begin{array}{c}
\square \\
0 \\
\square \\
1 \\
\end{array}
\right)
\]
可以求得另一个零空间中的向量:
\[x=d\left(
\begin{array}{c}
2 \\
0 \\
-2 \\
1 \\
\end{array}
\right)
\]
这样我们就得到零空间中的两个向量,下面我们就能求出整个零空间。 \(Ax=0\) 的所有解。
这两个解称为特解,即特定的解。特定在于给自由变量分配特定值。给自由变量分配的是0和1. 每对自由变量都对应着一个特解。
两个特解的所有的线性组合就是整个零空间。即
\[x=c\left(
\begin{array}{c}
-2 \\
1 \\
0 \\
0 \\
\end{array}
\right)+d\left(
\begin{array}{c}
2 \\
0 \\
-2 \\
1 \\
\end{array}
\right)
\]
总结
对于\(m*n\) 矩阵,\(n\) 变量,若 秩 \(r=2\),主变量就有 r 个,自由变量 就有 \(n-r\) 。
\(r\) 个主变量,表示只有 \(r\) 个方程起作用。
剩下的 \(n-r\) 个自由变量可以任意赋值。
简化行阶梯形式
简化行阶梯形式我们称为 \(R\).她是对阶梯形式矩阵 \(U\) 的简化。
\[\left(
\begin{array}{cccc}
1 & 2 & 2 & 2 \\
0 & 0 & 2 & 4 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)=U
\]
通过消元我们发现,行三全部是0的出现,是因为,行三是行一和行二的线性组合。消元会把它剔除。
简化的方法就是"向上消元",让主元上方都是0.
在主元二向上消元
\[\left(
\begin{array}{cccc}
1 & 2 & 2 & 2 \\
0 & 0 & 2 & 4 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{cccc}
1 & 2 & 0 & -2 \\
0 & 0 & 2 & 4 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)
\]
将结果再除以主元"2",解不变。
因为\(2 x_3+4 x_4=0\)和 \(x_3+2 x_4=0\) 的解是一样的,除以某个倍数解不会变。所以我们可以再次化简,记为矩阵 \(R\):
\[\left(
\begin{array}{cccc}
1 & 2 & 0 & -2 \\
0 & 0 & 1 & 2 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)=R
\]
现在所有主元都是"1"。这就是矩阵 \(A\) 的简化行阶梯形式。她可以通过matlab的 rref 函数得出来。
这样我们就经过 \(\text{Ax}=0\rightarrow \text{Ux}=0\rightarrow \text{Rx}=0\) 的过程。
我们重新进行回代,通过 \(R\) 也可以求解两个特解。
\[x_1+2 x_2-2 x_4=0\\
x_3+2 x_4=0\\
\]
解没有改变。
设想:如果我们把 \(R\) 的主列和自由列各放在一边,即列交换:
\[\left(
\begin{array}{cccc}
1 & 0 & 2 & -2 \\
0 & 1 & 0 & 2 \\
0 & 0 & 0 & 0 \\
\end{array}
\right)
\]
左边两列是主列,右边两列就是自由列。
第三行因为是前两行线性组合,不管她。
左边得到一个单位矩阵 \(I\) ,右边自由部分记为 \(F\) .
再看零空间:
\[x=c\left(
\begin{array}{c}
-2 \\
1 \\
0 \\
0 \\
\end{array}
\right)+d\left(
\begin{array}{c}
2 \\
0 \\
-2 \\
1 \\
\end{array}
\right)
\]
由于系数矩阵进行列交换,我们需要将她的两个特解行交换。
\[x=c\left(
\begin{array}{c}
-2 \\
0 \\
1 \\
0 \\
\end{array}
\right)+d\left(
\begin{array}{c}
2 \\
-2 \\
0 \\
1 \\
\end{array}
\right)
\]
会发现:
\(x_{1}、x_{3}\) 的两个特解上半部分正好是自由部分的相反数。
因为 \(F\) 回代后,需要移动到等式的另一侧,正好就是 \(x_{1}、x_{3}\) 的两个特解。
零空间矩阵
假设方程组已经是 \(rref\) 形式,即
\[R=\left(
\begin{array}{cc}
I & F \\
0 & 0 \\
\end{array}
\right)
\]
\(I\) 为 \(r*r\) 矩阵,于是有 \(r\) 个主行,\(n-r\) 个自由列, 我们要解 \(Rx=0\) .
我们可以构建一个 “零空间矩阵”,记为 \(N\),她的各列由特解组成。
简化行阶梯形式的目的在于,她可以一次性给出特解,
什么 \(N\) 可以满足\(RN=0\) ,我们将 \(I\) 放在主变量位置,\(-F\) 放在自由变量位置,通过乘法法则,我们就能知道满足。
\[N=\left(
\begin{array}{c}
-F \\
I \\
\end{array}
\right)
\]
总结举例
对 \(Ax=0\) 整个算法举例
\[A=\left(
\begin{array}{ccc}
1 & 2 & 3 \\
2 & 4 & 6 \\
2 & 6 & 8 \\
2 & 8 & 10 \\
\end{array}
\right)
\]
他有两个主元,因为第三列是前两列的线性组合。在消元过程中就会体现出哪些是主元行/列,并把相关项剔除。
第一步:向下消元
\(E_{21}、E_{31}、E_{41}\)消元
\[\left(
\begin{array}{ccc}
1 & 2 & 3 \\
2 & 4 & 6 \\
2 & 6 & 8 \\
2 & 8 & 10 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 0 & 0 \\
0 & 2 & 2 \\
0 & 4 & 4 \\
\end{array}
\right)
\]
主元2为“0”,发现可以行交换解决:
\[\left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 0 & 0 \\
0 & 2 & 2 \\
0 & 4 & 4 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 4 & 4 \\
\end{array}
\right)
\]
主元2为"2",继续向下消元,\(E_{42}\):
\[\left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 4 & 4 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right)=U
\]
第二步:特解
秩为2.两个主变量 \(x_{1}、x_{2}\)和一个自由变量 \(x_{3}\)。
为自由变量赋上方便计算的数值,将\(x_{3}\) 取值 为1,因为取值为0求主变量,全部变量都是0,没有意义。
\[x=\left(
\begin{array}{c}
\square \\
\square \\
1 \\
\end{array}
\right)
\]
回代:
\[x_{1}+2x_{2}+3x_{3}=0\\
2x_{2}+2x_{3}=0
\]
代入,可以求得特解
\[x=\left(
\begin{array}{c}
-1 \\
-1 \\
1 \\
\end{array}
\right)
\]
第三步:零空间
将特解乘以某个倍数,即可得到整个零空间:
\[x=c\left(
\begin{array}{c}
-1 \\
-1 \\
1 \\
\end{array}
\right)
\]
整个零空间是一条直线。
第四步:简化矩阵\(R\)
从最后面主元开始向上消元:
\[\left(
\begin{array}{ccc}
1 & 2 & 3 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{ccc}
1 & 0 & 1 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right)
\]
行二可以除以主元2继续化简:
\[\left(
\begin{array}{ccc}
1 & 0 & 1 \\
0 & 2 & 2 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right)\rightarrow \left(
\begin{array}{ccc}
1 & 0 & 1 \\
0 & 1 & 1 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right)=R
\]
\(R\) 中单位阵 \(I=\left(
\begin{array}{cc}
1 & 0 \\
0 & 1 \\
\end{array}
\right)\) ,自由部分 \(F=\left(
\begin{array}{c}
1 \\
1 \\
\end{array}
\right)\) .
可以看到 \(x\) 的特解也包含
\(I=\left(
\begin{array}{c}
1 \\
\end{array}\right)\),
\(-F=\left(
\begin{array}{c}
-1 \\
-1 \\
\end{array}\right)\)
零空间矩阵 \(N\) 就是
\[N=\left(
\begin{array}{c}
-F \\
I \\
\end{array}
\right)
\]
她是将所有特解作为列的矩阵。