用代入法或消元法求解线性方程组,通常要重写各项并仔细处理正负号。随着方程或变量数量增加,这种做法会变得繁琐。
增广矩阵是一种紧凑的表示方式,把所有系数与常数项合并成一个对象。借助这种形式,我们可以只对行做少量运算,在不重写原方程的情况下简化整个系统。
接下来,我将定义什么是增广矩阵,演示如何构造它,并说明用它求解方程组的标准方法。
什么是增广矩阵?
增广矩阵是在左侧包含各变量的系数、右侧包含常数项的矩阵,中间用一条竖线作视觉区分。这条竖线仅用于分隔显示,对计算没有影响。
方程组的增广矩阵形式
要构造增广矩阵,应按相同的变量顺序列出每个方程的系数,然后在额外的一列中附加常数项。矩阵的每一行都应与原方程组中的一个方程一一对应。
考虑下列方程组:

其对应的增广矩阵为:
![$ \left[ \begin{array}{cc|c} 2 & 1 & 5 \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/1b43c2a81ce4d19dda05804ab649a73d.png)
可以看到,第一行对应第一条方程,第二行对应第二条。
增广矩阵的用处
增广矩阵把描述方程组所需的所有数字集中在一个地方。后续的运算都直接对这一对象进行行变换。因此,无需反复重写方程,也不必分别记录系数和常数列表。该方法可顺畅扩展到更大的系统,并降低抄写错误的概率。
对增广矩阵的行变换
允许使用三种初等行变换。每一种都对应一种不改变解集的代数操作,包括:
- 任意两行互换。
- 用同一个非零常数乘以一行中的每个元素。
- 把一行的若干倍加到另一行(或相减)。
由于这些操作都保持解集不变,变换后的矩阵表示与原系统等价的方程组。需要注意的是,同样的操作也可以对列进行。
用增广矩阵求解方程组
求解过程分为三个阶段:
- 把方程组写成增广矩阵。
- 进行行变换,使其变为更简单的形式。
- 从简化后的矩阵读出解。
目标形式称为行阶梯形,其特征是每个非零行的首个非零元(即主元)为1,主元下方元素全为0,且主元的位置随行向下逐步右移。从行阶梯形出发,通过回代可得到各变量的取值。
增广矩阵的高斯消元
高斯消元通过从左到右依次在每个主元下方构造0来实现。目标是得到一个上三角矩阵。
从最左侧可作为主元的列开始。如有需要,先对主元所在行进行缩放,使主元等于1,然后把该行的适当倍数加到其下方各行,使该列下方元素变为0。
接着移动到下一列,重复相同步骤。得到的三角矩阵从最底行开始用回代求解。
如果这听起来有些抽象,也没关系,稍后的示例会让它更清晰。
最简行阶梯形(RREF)
最简行阶梯形是在行阶梯形的基础上再进一步。
除了满足行阶梯形的条件外,每个主元上方的元素也必须为0,且每个主元都等于1。对于有唯一解的系统,矩阵左侧会成为单位矩阵。右侧的常数列即可直接给出变量的精确值,此时无需回代。
用增广矩阵求解方程组的示例
考虑方程组:

写出增广矩阵:
![$ \left[ \begin{array}{cc|c} 2 & 1 & 5 \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/ac312dc2de2f85a82688c9822933096a.png)
第1行除以2:
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/c978fb965317c3958007d5104c40d970.png)
用第1行减第2行:
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 0 & -\frac{3}{2} & -\frac{3}{2} \end{array} \right] $](https://media.datacamp.com/cms/d53fd90648d45966012b43e918ecbab3.png)
第2行乘以 -2/3:
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 0 & 1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/b1f97689a2caa6be9cd6eba5bd982ba4.png)
第1行减去第2行的 1/2 倍:
![$ \left[ \begin{array}{cc|c} 1 & 0 & 2 \\ 0 & 1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/ecfa74efaa9b0dd99bf4d6c0bfc5c80c.png)
此时矩阵已为最简行阶梯形。解为 x=2,y=1。
增广矩阵 vs. 系数矩阵
系数矩阵只包含变量的系数。对上述系统,它为:

增广矩阵在其后附加了常数项这一列,提供了用于求解过程的完整表示。
增广矩阵与线性方程组
增广矩阵的每一行对应一个方程,因此矩阵编码了整个系统。行化简后,可能出现以下三种结果:
- 非零主元的数量与变量数量相同,表示存在唯一解。
- 出现形如 [0 0 … 0 | c] 的行,其中 c 非零,表示无解。
- 主元少于变量且没有矛盾行,表示有无穷多解。
结论
增广矩阵把线性方程组的求解转化为对单个数组施加一系列定义明确的行变换。
可用的工具是三种初等行变换,它们在简化矩阵的同时保持解集不变。一旦熟悉这一技巧,您就能更好地掌握高斯消元和最简行阶梯形,这些概念是线性代数的基础,几乎无处不在,如数据科学、优化、数值分析、图像处理等诸多领域。
增广矩阵常见问答
系数矩阵与增广矩阵有何区别?
系数矩阵只包含变量的系数。增广矩阵在最后一列加入原方程中的常数项。
行变换会改变方程组的解吗?
不会。三种初等行变换——交换两行、用非零常数缩放一行、将一行的若干倍加到另一行——都会产生与原系统等价、解完全相同的系统。
如何通过增广矩阵判断系统无解或有无穷多解?
化简后,若出现形如 [0 0 … 0 | c] 且 c ≠ 0 的行,说明系统不相容、无解。若主元少于变量且没有这样的矛盾行,则表示存在无穷多解。
行阶梯形与最简行阶梯形有何区别?
行阶梯形要求主元为1,且主元下方为0。最简行阶梯形还要求主元上方也为0,使左侧在唯一解情形下成为单位矩阵,因此可以直接读出解。
增广矩阵方法只适合小型系统吗?
不是。该方法适用于任意数量的方程与变量,也是在线性代数与数据科学中用于求解大型线性系统的计算机算法基础。