同微分方程一样,线性代数也可以称得上是一门描述自然的语言,它在众多自然科学、经济学有着广阔的建模背景,这里笔者学识有限暂且不列举了,那么这片文章来简单的讨论一个问题——线性方程组。
首先从我们中学阶段就很熟系的二元一次方程组,我们采用换元(其实就是高斯消元)的方法。但是现在我们需要讨论更加一般的情况,对于线性方程,有如下形式:
a1x1+a2x2+…anxn = b.
现在我们给出多个这样的方程构成方程组,我们是否有通用的解法呢?
在《Linear Algebra and Its Applications》一书中一开始给出了非常棒的引入,在这里限于篇幅,笔者只进行简单的概括。
通过多元线性方程组的朴素高斯消元过程,我们发现这个过程其实就是方程之间的加减运算,将含n个未知数的线性方程的n个系数和1个常数视为n+1个参数来表征这个线性方程,然后我们将所有线性方程的系数都给抽出来,得到系数矩阵,再在每一行后面添加常数,形成增广矩阵。这其实是一种引入工具来简化运算的方法,而基于朴素高斯消元各个方程相加相减的等价性,我们也应该赋予我们新引入的这个工具——“矩阵”以相同的性质,即矩阵的初等行变换:
(1) 每行乘以常数c,矩阵不变。
(2) 某行乘以常数c加到另外一行,矩阵不变。
(3) 任意两行交换位置,矩阵不变。
为什么要注意到矩阵的这些性质呢?因为它们非常有用啊!有什么用呢?
对于任意一个线性方程组,我们想要基于其增广矩阵进行简化运算以求得解,而这个过程基于高斯消元法的思路,就是消除掉一个一个的未知数,放到增广矩阵里,就可以看成自上而下,变量的数量越拉越少,在矩阵中越往下,系数为0的变量个数越多,这就自然而然的引出了行阶梯型矩阵的定义:
很容易看到,如果我们面对一个线性方程组的增广矩阵,并将其转化成行阶梯型,然后在将其转化成线性方程组,这无疑是利于我们解这个线性方程的。为什么呢?很简单啊,基于行阶梯型的特点,我们从下往上可以逐个确定变量,然后用已经确定的变量来表示其他变量,那么这个线性方程组便可求解了。
那么好了,现在我们面临的这样几个问题:
Q1:面对一个普通的增广矩阵,我们如何将其化成我们喜欢的行阶梯型呢?
Q2:基于行阶梯型,我们容易写出解的形式(这里涉及主元的概念,将主元视为基本变量,其余视为自由变量,解的基本形式就是基本变量用自由变量表示),但是,如何判断它一定有解呢?有解的情况下,是唯一解还是无穷解呢?
针对Q1:它其实是一个计算性质的问题,在这里本书给出了如下的化简算法:
针对Q2:基于我们对行阶梯型矩阵与线性方程组之间的转化的理解,我们能够很自然的看到,对于n元的线性方程组:
(i) 如果其增广矩阵不含自由变量,则我们可以自下(xn)而上(x1)一一确定各变量的值,有唯一解
(ii) 如果至少存在一个自由变量,那么显然整个解空间会随着自由变量的改变而对应的发生改变,有无穷个解。
(iii) 如果在行阶梯型中出现了某行是<0,0,0…,b>的形式(b≠0),则将其转化成线性方程会出现0 = b的结果,这与数学现实矛盾,表明此线性方程组无解。