可解性和解的结构⚓︎
约 2144 个字 预计阅读时间 7 分钟
大纲
- 方程有解的条件(\(Ax = b\))
- 寻找特殊解;
- 寻找通解;
- 秩(rank)🌟
方程有解的条件 \(Ax = b\)⚓︎
\(\begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ b_3 \end{bmatrix}\),这个方程组有解的话,必须满足 \(b_1 + b_2 = b_3\)。也就是,如果左侧矩阵的行的线性变换的结果是\(0\),那么右侧对应常数的相同组合必然也等于\(0\)。
这里我们引入“增广矩阵”的概念(Augumented Matrix),把 \(b\) 接到原来矩阵\(A\)的右侧;比如下面的变换:
\(\begin{bmatrix} 1 & 2 & 2 & 2 & b_1 \\ 2 & 4 & 6 & 8 & b_2 \\ 3 & 6 & 8 & 10 & b_3 \end{bmatrix} = \begin{bmatrix} 1 & 2 & 0 & -2 & 3 b_1 - b_2 \\ 0 & 0& 1 & 2 & \frac{1}{2}b_2 - b_1 \\ 0 & 0 & 0 & 0 & b_3 - b_2 - b_1 \end{bmatrix}\)
比如说,此时如果 \(b = \begin{bmatrix} 1 \\ 5 \\ 6 \end{bmatrix}\),此时是有解的(Solvability)。我们可以得到以下启发: \(Ax = b\) is Solvable exactly when \(b\) is in the column space of \(A\)。当\(b\)是在\(A\)的列空间中的时候,这个方程组才是有解的。
如果用另一种语言表述的话,就是:
If a combination of \(A\) gives zeros rows, then the same combination of \(b\) must be zero. 如果 \(A\) 的行的线性组合得到了\(0\)向量,那么 \(b\) 的同样的行线性组合也一定得到 \(0\)
那么,找到 \(Ax = b\) 的完整解的算法是什么样的呢?
寻找特殊解(Particular Solution)⚓︎
首先,我们进行消元之后,总可以先解出A的主变量和其余的自由变量。把所有的自由变量设为\(0\),直接求解主变量的值。我们在 \(b = \begin{bmatrix} 1 \\ 5 \\6 \end{bmatrix}\)的情况下令\(x_2 = x_4 = 0\),变换后有 \(\begin{bmatrix} 1 & 2 & 2 & 2& b_1 \\ 0 & 0 & 1 & 2 & (b_2 - 2b_1) / 2 \\ 0 & 0 & 0& 0 & b_3 - b_2 - b_1\end{bmatrix}\),公式写下就是:\(x_1 + 2x_3 = 1 ,x_3 = 3 / 2\)。
此时可以解出特解为 \(x_p = \begin{bmatrix} -2 \\ 0 \\ 3 /2 \\ 0 \end{bmatrix}\)
为什么可以把自由变量设为0?
很简单,因为我们定义自由变量就是可以取得任何数的变量,他们总能被主变量进行表示。见前一份笔记。
寻找通解⚓︎
这一步实际上是在求\(A\)的零空间,\(N(A)\)。也就是\(Ax = 0\)情况下的解。这个部分已经在MIT-7课程,也就是前一章详细地阐述了,不再重复。我们求得: \(N(A) = c_1 \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix} + c_2 \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}\)
于是乎,我们结合前面一小节求得的特殊解,可以得出 \(Ax = b\) 的所有解的一个表示:\(x_{\text{complete}} = x_p + x_n = \begin{bmatrix} -2 \\ 0 \\ 3 /2 \\ 0 \end{bmatrix} + c_1 \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix} + c_2 \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}, \hspace{3pt} c_1, c_2 \in \mathbb{R}\)
P.S. 在中国的教科书里面,后面\(c_1, c_2\) 的向量组合有一个熟悉而响亮的名字:基础解系。
为什么可以这么做?
回答:我们首先求的是特殊解,这个解可以满足 \(Ax_p = b\),其次我们又求得了零空间,这个解空间可以满足 \(Ax_n = 0\)。 把这两个等式相加,我们可以得到:\(Ax_p + Ax_n = b + 0 = b\). 也就是 \(A(x_p + x_n) = b\)。故所有的解可以表示为 \(x_p + x_n\)。
补充:为什么 \(x_{\text{complete}}\) 不需要乘一个系数?因为此时右端项是一个具体的数值,不能随意放大;而零空间右端项都是0,所以可以随意乘以具体数值,而不改变运算结果。
对这个解的进一步思考
从形式上看,这个解是 “一个特解 + 一个子空间(其实就是零空间了)中的任意向量”。在这个问题中,后面零空间实际上是四维空间中的一个二维子空间。这里“二维”的“维”的含义是,向量可以选取的无关数字的个数,也就对应是 \(A\) 当时自由变量的个数。
从图形上看,这个解就是:一个四维空间中的一个二维平面,加上一个不在此二维平面中的四维向量。
注意,这个二维平面本来是过原点的,但是方程组的解的图像不过原点。根本原因就是这个零空间加上了一个四维向量。所以,最后的表述是“一个四维空间中的二维平面,不过不经过原点,而是经过一个点 \(x_p\).
秩⚓︎
现在我们要进行一些更加深入的探讨了。比如我们抽象成 \(m \times n\) 的矩阵 \(A\),有秩为 \(r\)。(复习一波:根据前一个笔记的情况,\(r\) 对应的是主元的个数)
在实际研究中,我们对“满秩”的情况十分感兴趣。
列满秩的情况⚓︎
此时 n = r,每一列都有主元,也就是说我们找不到自由变量。此时零空间里只有一个向量:零向量。此时 \(Ax = b\) 的解实际上只有一个,就是 \(x_p\)。也就是唯一解(Unique Solution if it exists)。在实际中,“线性无关”的场景非常常见,此时方程组只有 \(0\) 或者1个解。
0个解对应什么情况
比如 \(\begin{bmatrix} 1 & 3 \\ 2 & 4 \\ 3 & 5 \\ 4 & 6 \end{bmatrix}\) ,最终会化到 \(\begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \\ 0 & 0 \end{bmatrix}\),此时只有一些恰好的线性组合,比如 \(\begin{bmatrix} 4 \\ 6 \\ 8 \\ 10\end{bmatrix}\) 才有解。像是 \(\begin{bmatrix} 4 \\ 6 \\ 8 \\ 9 \end{bmatrix}\) 就不行。
行满秩的情况⚓︎
在行满秩的情况下,\(r = m\),每一行都有一个主元,此时矩阵是个宽的矩阵,列数比行数多的情况。此时\(Ax=b\)的可解性如何?什么样的右侧向量\(b\)能使得问题有解?
答案是对右侧向量b没有要求,因为不会出现0行。意思是说,对任意\(b\)而言,\(Ax=b\)都有解。这时候,因为每一行都有主元,所以对应的,有 \(n - r\) 个自由变量。
e.g. 此时矩阵 \(\begin{bmatrix} 1 & 2 & 3& 4 \\ 3 & 4 & 5 & 6 \end{bmatrix}\) 化简一定可以化成 \(\begin{bmatrix} 1 & 0 & \cdots & \cdots \\ 0 & 1 & \cdots & \cdots \end{bmatrix}\) 的形式。右边没写出的部分就是之前的自由变量 \(F\),它们构成零空间的特殊解。
行满秩且列满秩的情况⚓︎
此时一定是一个方阵了,\(r = m = n\)。此时意味着这个方阵一定可逆。这些矩阵的rref(行简化梯形矩阵)就是同维度的单位向量。
此时,这个矩阵的零空间 \(N(A)\) 是什么?因为\(N(A)\) 对应 \(Ax = 0\)的部分,所以只有零向量满足条件。零空间里只有零向量。
此时,\(Ax = b\) 对 \(b\) 是否有要求?也没有要求,因为满秩,没有 0 行。此时,\(Ax = b\) 一定有一个解。
总结
针对行、列数和秩的情况,我们可以进行如下的划分:
- \(r = m = n\),此时满秩,\(Ax = b\) 一定只有一个解;
- \(r = n < m\) 的情况,此时列满秩,有0行,所以b不能任意取了,否则==可能无解==;同时由于列满秩,所以没有自由变量,不可能有无穷多的解,即使 b 满足条件,也==最多只有一个解==;
- \(r = m < n\) 的情况,此时行满秩,对 \(b\) 的取值没有要求,但是有自由变量,意味着零空间内除了零向量还有别的,一定有无穷多解;
- \(r < m , r < n\) 的情况,此时有 0 行,因此对 \(b\) 一定有要求,同时,也有自由变量,所以要么是无解的(\(b\) 在零行为非零),要么是有无穷多解的。
- 如果列满秩,那么要么无解,要么只有一个解;
- 如果行满秩,那么 \(b\) 就可以随便取,此时要么一个解,要么无穷多解;
- 如果行列都不满秩,要么无解,要么有无穷多解;
反过来也是:
- 如果有无穷多解,那么一定列不满秩;
- 如果有唯一解,那么一定列满秩;
- 如果无解,那么一定行不满秩;
- 如果 \(b\) 可以取任意向量,那么行一定满秩;
“一句话,矩阵的秩决定了方程组解的数目,但是具体解是什么,取决于\(A\)和\(b\)”