本篇为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) \]
她是将所有特解作为列的矩阵。