线性方程组与高斯消元
线性方程组(system of linear equations)要求若干个一次等式同时成立。高斯消元(Gaussian elimination)通过不改变解集的行运算,逐步消去未知数,最后回代;它也能辨认方程组是有唯一解、无解,还是有无穷多解。
先看平面上的两条直线: 同时满足两式的点,就是两条直线的交点。第二式乘 2 后,从第一式减去它,得 ,所以 、。图上的交点 与代入核对一致。
消元保持解集
对两个方程 、,把第二个改成 。若原来两式成立,新式当然成立;反过来,保留第一式后,用 可以恢复第二式。因此这一步前后的共同解完全相同。
交换两行、把某一行乘非零常数,也都能反向恢复。三种操作叫初等行变换。但把一行乘零会抹掉信息,不能算可逆操作;“把两行相加后只保留和”若同时丢掉两条原式,也不能保证等价。
三元方程组的完整计算
考虑 按变量 的顺序,把系数和右端写成增广矩阵。竖线右侧是常数,不是第四个未知数: 用第一行消去下面两行的 ,即 、: 第二行乘 后是 。再用它消去第三行的 ,即新第三行加上新第二行的两倍: 从最后一行得到 ;第二行给出 ;第一行给出 。代回原式,三个左端分别为 ,验证了 的确是解。因为每一步可逆,而且每个未知数都有一个非零主元,这里没有剩下可自由选择的变量,解也唯一。
若某列预定的主元为零,可以与下方非零行交换;若整列下方都为零,就跳过这一列,留待辨认自由变量。计算机使用浮点数时,还常优先选绝对值较大的主元,以减轻舍入误差;精确代数和数值稳定性是两件事。
零行与解的三种情形
考虑第二行是第一行两倍的方程组 消元后第二行变成 。它没有增加新约束,因此可令 ,得到全部解 ;图上是两条完全重合的直线。
若右端的 6 改成 7,消元后第二行变为 。没有数能满足,原方程组无解;几何上两条直线平行且不同。非零主元覆盖所有未知数且不出现矛盾行时,才有唯一解。这个判断以后可用矩阵的秩精确表述。
矩阵语言和方法的边界
把系数矩阵记为 、未知量列向量记为 、右端记为 ,方程组便是 。行变换等于对所有方程同时做等价改写;它不会改变解,但通常会改变系数矩阵原来的几何映射,所以中途的矩阵不应被误认为原来的变换。
高斯消元适合求精确的小方程组,也是一系列数值方法的基础。对巨大稀疏矩阵或含测量误差的数据,还需考虑存储、舍入和问题是否本来就无精确解;后一种情况可转向最小二乘法。若只想知道方阵是否可逆,行列式也给出一个判据,但实际求解时通常仍要消元。
若右端全是零,方程组称为齐次,总有零解;有自由变量时还会有非零解。若右端不全为零,必须先检查有无矛盾行:存在一个解时,全部解是它加上齐次方程组的全部解。这个判断与三维平面的交集及秩的条件,见三元线性方程组的解集。当三阶系数矩阵的行列式非零,还可以用克拉默法则逐列写出三个未知量;它适合小规模的符号计算。
参考资料
- OpenStax,College Algebra 2e,§7.6 Solving Systems with Gaussian Elimination:增广矩阵和行阶梯形。
- MIT OpenCourseWare,18.06 Linear Algebra:消元、主元与矩阵空间的课程路径。
- 继续阅读:矩阵的秩、行列式、线性代数。