自在学
分类课程智能体订阅
分类课程AI导师价格
课程进度
4 / 12
上一节矩阵与线性方程组下一节矩阵运算与逆矩阵
自在学

© 2025 - 2026 自在学,保留所有权利。

公网安备湘公网安备43020302000292号 | 湘ICP备2025148919号-1

关于我们隐私政策使用条款

© 2025 自在学,保留所有权利。

公网安备湘公网安备43020302000292号湘ICP备2025148919号-1

数学线性代数 I:向量、矩阵与线性变换高斯消元与阶梯形

高斯消元与阶梯形

上一章把线性方程组写成了矩阵方程 Ax=bAx=bAx=b,也把增广矩阵作为记录工具。本章要做一件更实际的事:用有限次、可检查的行变换,把一个方程组化成容易读的形状。

高斯消元的目标不是“把数字变漂亮”,而是保留原方程组的全部解,同时把信息整理出来。阶梯形告诉我们哪里有主元,哪里有自由变量;回代把主元变量算出来;行最简形则把答案直接摆在矩阵里。

原方程组与行变换后的方程组都在同一交点相交,说明初等行变换不改变解集。

行变换会改变方程组的外观,但不改变代表解集的交点。


为什么行变换不改变解集

一个线性方程组的每一行都是一个方程。对行做操作,其实是在用已有方程制造新的等价方程。只要这个操作能反向做回来,就不会丢掉任何解,也不会凭空增加解。

例如有两行方程 R1R_1R1​ 和 R2R_2R2​。如果把第二行替换成 R2−2R1R_2-2R_1R2​−2R1​,得到的新方程组中仍然保留 R1R_1R1​。从新方程组出发,也可以把第二行加回 2R12R_12R1​,恢复原来的 R2R_2R2​。所以两边的解完全一样。

高斯消元中真正被保护的是解集。矩阵里的行、数字和方程外观可以变化,但所有能同时满足方程组的向量 xxx 必须保持不变。

把方程组写成增广矩阵时,竖线左边是系数矩阵,右边是常数列:

[a11a12a13b1a21a22a23b2a31a32a33b3]\left[ \begin{array}{ccc|c} a_{11} & a_{12} & a_{13} & b_1\\ a_{21} & a_{22} & a_{23} & b_2\\ a_{31} & a_{32} & a_{33} & b_3 \end{array} \right]​a11​a21​a31​​a12​a22​a32​​a13​a23​a33​​b1​b2​b3​​​

行变换必须作用在整行上,包括竖线右边的常数。只改左边不改右边,相当于换了一个问题。


三种允许的行变换

高斯消元只使用三种初等行变换。它们看起来简单,但共同点很关键:每一种都可以反向执行。

三栏中文信息图,展示换行、倍乘(非零)和倍加三种初等行变换及其可逆操作。

三种初等行变换都能反向做,所以解集不变。

行变换记号为什么不改变解集
交换两行Ri↔RjR_i \leftrightarrow R_jRi​↔Rj​方程顺序变了,条件本身没有变
某行乘非零数Ri←cRi, c≠0R_i \leftarrow cR_i,\ c\neq 0Ri​←cRi​, c=0等式两边同乘非零数,可以再除回去
某行加上另一行的倍数Ri←Ri+cRjR_i \leftarrow R_i+cR_jRi​←Ri​+cRj​保留 RjR_jRj​ 时,可以用 Ri−cRjR_i-cR_jRi​−cRj​ 反向恢复

第二种行变换里,倍数不能是 000。把一整行乘以 000 会把一个方程抹掉,通常会扩大解集;这不是等价变换。


消元的核心动作

消元的基本想法是:先选一个主元,用它把下方同列的数消成 000。然后到下一行、下一列继续做,直到非零行形成楼梯状。

设第一列第一行的数 a11a_{11}a11​ 不是 000。为了消去第二行第一列的数 a21a_{21}a21​,可以做:

R2←R2−a21a11R1R_2 \leftarrow R_2-\frac{a_{21}}{a_{11}}R_1R2​←R2​−a11​a21​​R1​

这个倍数叫消元倍数。它的作用很单纯:让新第二行的第一项变成

a21−a21a11a11=0a_{21}-\frac{a_{21}}{a_{11}}a_{11}=0a21​−a11​a21​​a11​=0

如果当前位置是 000,不要硬除。先在下面找一个非零数换上来;如果这一列从当前行往下全是 000,就跳到下一列找主元。

先从最左边还没有处理的列开始找主元。如果当前行的候选主元是 000,就尝试和下面某一行交换;找不到非零数时,说明这一列没有新的主元。

找到主元后,用主元所在行消去它下面同列的数。每次倍加都要整行一起改,增广矩阵右端也要跟着变。

当前列处理完后,向右下方移动。新的主元必须在上一主元的右边,这样矩阵会逐步形成阶梯。

得到阶梯形后,如果每个主元都已经确定,就从最后一个方程开始回代;如果有非主元列,就把对应变量设成参数。


阶梯形和行最简形

阶梯形的重点是“楼梯”。每个非零行的第一个非零数叫这一行的主元;越往下,主元越靠右;主元下面全是 000。零行如果出现,要放在最下面。

行最简形比阶梯形更进一步。每个主元都化成 111,并且主元所在列除了这个 111 以外全是 000。从阶梯形继续向上消元并把主元归一化,就能得到行最简形。

阶梯形与行最简形对比示意图,展示主元位置、向上消元归一化以及主元列上下清零。

阶梯形通过继续向上消元并归一化得到行最简形,行最简形的主元为 111,且主元列上下清零。

例如下面的矩阵是阶梯形:

[2−1034051−270006−100000]\left[ \begin{array}{cccc|c} 2 & -1 & 0 & 3 & 4\\ 0 & 5 & 1 & -2 & 7\\ 0 & 0 & 0 & 6 & -1\\ 0 & 0 & 0 & 0 & 0 \end{array} \right]​2000​−1500​0100​3−260​47−10​​

它的主元分别在第 111、第 222、第 444 列。第 333 列没有主元,所以对应变量会成为自由变量。

阶梯形适合手算,因为它已经足够回代。行最简形适合读结构,因为每个主元列都像一个坐标轴,主元变量和自由变量的关系更直接。


例题:用阶梯形回代

解下面的方程组:

{x+y+z=62x+3y+z=11x−y+2z=5\begin{cases} x+y+z=6\\ 2x+3y+z=11\\ x-y+2z=5 \end{cases}⎩⎨⎧​x+y+z=62x+3y+z=11x−y+2z=5​

对应的增广矩阵是:

[1116231111−125]\left[ \begin{array}{ccc|c} 1 & 1 & 1 & 6\\ 2 & 3 & 1 & 11\\ 1 & -1 & 2 & 5 \end{array} \right]​121​13−1​112​6115​​

用第一行作为第一列的主元行,先消去第一列下面的两个数:

R2←R2−2R1,R3←R3−R1R_2\leftarrow R_2-2R_1,\qquad R_3\leftarrow R_3-R_1R2​←R2​−2R1​,R3​←R3​−R1​

得到:

[111601−1−10−21−1]\left[ \begin{array}{ccc|c} 1 & 1 & 1 & 6\\ 0 & 1 & -1 & -1\\ 0 & -2 & 1 & -1 \end{array} \right]​100​11−2​1−11​6−1−1​​

用第二行作为第二列的主元行,消去第三行第二列的 −2-2−2:

R3←R3+2R2R_3\leftarrow R_3+2R_2R3​←R3​+2R2​

得到阶梯形:

[111601−1−100−1−3]\left[ \begin{array}{ccc|c} 1 & 1 & 1 & 6\\ 0 & 1 & -1 & -1\\ 0 & 0 & -1 & -3 \end{array} \right]​100​110​1−1−1​6−1−3​​

从最后一行开始回代。第三行给出 −z=−3-z=-3−z=−3,所以 z=3z=3z=3。第二行给出 y−z=−1y-z=-1y−z=−1,代入 z=3z=3z=3 得到 y=2y=2y=2。第一行给出 x+y+z=6x+y+z=6x+y+z=6,所以 x=1x=1x=1。

上三角方程组从底行先求 z,再向上回代求 y 和 x 的中文教学图

回代从最后一个方程开始,先解最靠后的主元,再代回前面的方程。

因此方程组有唯一解:

(x,y,z)=(1,2,3)(x,y,z)=(1,2,3)(x,y,z)=(1,2,3)

从阶梯形读出变量

在一个阶梯形矩阵中,含有主元的列叫主元列。主元列对应的未知数叫主元变量;没有主元的未知数叫自由变量。

高斯消元阶梯形中主元列、自由变量与参数解关系的中文教学图

主元列决定主元变量,非主元列给自由变量;一个自由变量对应一个参数。

看下面这个增广矩阵:

[12−1130011200000]\left[ \begin{array}{cccc|c} 1 & 2 & -1 & 1 & 3\\ 0 & 0 & 1 & 1 & 2\\ 0 & 0 & 0 & 0 & 0 \end{array} \right]​100​200​−110​110​320​​

主元在第 111 列和第 333 列,所以 x1x_1x1​、x3x_3x3​ 是主元变量。第 222 列和第 444 列没有主元,所以 x2x_2x2​、x4x_4x4​ 是自由变量。

设:

x2=s,x4=tx_2=s,\qquad x_4=tx2​=s,x4​=t

第二行给出:

x3+x4=2x_3+x_4=2x3​+x4​=2

所以:

x3=2−tx_3=2-tx3​=2−t

第一行给出:

x1+2x2−x3+x4=3x_1+2x_2-x_3+x_4=3x1​+2x2​−x3​+x4​=3

代入 x2=sx_2=sx2​=s、x3=2−tx_3=2-tx3​=2−t、x4=tx_4=tx4​=t:

x1+2s−(2−t)+t=3x_1+2s-(2-t)+t=3x1​+2s−(2−t)+t=3

因此:

x1=5−2s−2tx_1=5-2s-2tx1​=5−2s−2t

完整参数解是:

x1=5−2s−2tx2=sx3=2−tx4=t\begin{aligned} x_1&=5-2s-2t\\ x_2&=s\\ x_3&=2-t\\ x_4&=t \end{aligned}x1​x2​x3​x4​​=5−2s−2t=s=2−t=t​

其中 s,ts,ts,t 可以取任意实数。自由变量越多,解集的自由方向越多。


读出解的类型

把增广矩阵化到阶梯形后,解的类型通常可以直接读出来。

三栏教学图:从行最简形判断唯一解、无解与无穷多解

从增广矩阵的矛盾行、主元数量和自由变量判断解的类型。

如果出现矛盾行:

[00001]\left[ \begin{array}{cccc|c} 0 & 0 & 0 & 0 & 1 \end{array} \right][0​0​0​0​1​]

它代表:

0=10=10=1

这不可能成立,所以方程组无解。

如果没有矛盾行,并且每个未知数所在列都有主元,那么每个变量都会被确定,方程组有唯一解。

如果没有矛盾行,但至少有一个未知数列没有主元,那么这些变量是自由变量,方程组有无穷多解。

判断顺序很重要:先看有没有矛盾行,再看有没有自由变量。只要出现矛盾行,方程组就是无解,即使别的列看起来还有自由变量也没有意义。


真实问题中的消元

很多应用题最后都会落到线性方程组上。电路中用节点电流和回路电压列方程,桥架或桁架中用受力平衡列方程,化学配平中用每种元素的原子数守恒列方程。建模部分可能来自物理或化学,但求解阶段经常就是消元。

例如一个电路里有三个未知电流 i1,i2,i3i_1,i_2,i_3i1​,i2​,i3​。节点守恒和回路电压可能给出:

{i1−i2−i3=04i1+2i2=126i3−2i2=3\begin{cases} i_1-i_2-i_3=0\\ 4i_1+2i_2=12\\ 6i_3-2i_2=3 \end{cases}⎩⎨⎧​i1​−i2​−i3​=04i1​+2i2​=126i3​−2i2​=3​

这个系统是否有唯一电流分配,取决于消元后是否每个未知数都有主元。这里的主元不是抽象符号,它对应模型里真正被约束住的未知量。


常见错误

消元中的错误常常不是因为概念太难,而是因为某一步没有同时维护“等价”和“顺序”。

最危险的错误是只改增广矩阵左边,不改右端常数。行变换作用在整行上,竖线只是视觉分隔,不是计算边界。

把行变换写得不够明确

写 R2−2R1R_2-2R_1R2​−2R1​ 只是一个表达式,不等于告诉读者哪一行被替换。推荐写:

R2←R2−2R1R_2\leftarrow R_2-2R_1R2​←R2​−2R1​

这样可以清楚地知道只有第二行改变,第一行保留。

在同一步里混用已经改变的行

如果先做 R2←R2−2R1R_2\leftarrow R_2-2R_1R2​←R2​−2R1​,再做 R3←R3+R2R_3\leftarrow R_3+R_2R3​←R3​+R2​,第二个操作里的 R2R_2R2​ 已经是新第二行。手算时最好一行一行写清,避免把旧行和新行混在一起。

过早宣布自由变量

自由变量来自最终阶梯形或行最简形的非主元列。还没完成消元时,某一列暂时没有主元,不代表它最终一定是自由变量。

忽略零主元

遇到候选主元为 000 时,不能除以它。先尝试换行;如果下面全是 000,这一列没有主元,向右找下一列。


练习

练习一:判断行变换是否合法

下面哪些操作一定保持解集不变?

  1. R1↔R3R_1\leftrightarrow R_3R1​↔R3​
  2. R2←0R2R_2\leftarrow 0R_2R2​←0R2​
  3. R3←R3−5R1R_3\leftarrow R_3-5R_1R3​←R3​−5R1​
  4. 只把增广矩阵左边的第二行乘以 222,右边常数不变

合法的是 1 和 3。交换两行只是改变方程顺序;用一行加上另一行的倍数可以反向恢复。第 2 个操作把一行乘以 000,会丢掉一个方程。第 4 个操作没有对整行做同一个变换,已经改变了原方程组。

练习二:消元并回代

解方程组:

{x+2y−z=22x+5y+z=9−x−y+2z=1\begin{cases} x+2y-z=2\\ 2x+5y+z=9\\ -x-y+2z=1 \end{cases}⎩⎨⎧​x+2y−z=22x+5y+z=9−x−y+2z=1​

增广矩阵为:

[12−122519−1−121]\left[ \begin{array}{ccc|c} 1 & 2 & -1 & 2\\ 2 & 5 & 1 & 9\\ -1 & -1 & 2 & 1 \end{array} \right]​12−1​25−1​−112​291​​

先做 R2←R2−2R1R_2\leftarrow R_2-2R_1R2​←R2​−2R1​,R3←R3+R1R_3\leftarrow R_3+R_1R3​←R3​+R1​:

[12−1201350113]\left[ \begin{array}{ccc|c} 1 & 2 & -1 & 2\\ 0 & 1 & 3 & 5\\ 0 & 1 & 1 & 3 \end{array} \right]​100​211​−131​253​​

再做 R3←R3−R2R_3\leftarrow R_3-R_2R3​←R3​−R2​:

[12−12013500−2−2]\left[ \begin{array}{ccc|c} 1 & 2 & -1 & 2\\ 0 & 1 & 3 & 5\\ 0 & 0 & -2 & -2 \end{array} \right]​100​210​−13−2​25−2​​

回代得 z=1z=1z=1,y+3z=5y+3z=5y+3z=5,所以 y=2y=2y=2;再由 x+2y−z=2x+2y-z=2x+2y−z=2 得 x=−1x=-1x=−1。答案是:

(x,y,z)=(−1,2,1)(x,y,z)=(-1,2,1)(x,y,z)=(−1,2,1)

练习三:写出参数解

把下面的阶梯形矩阵翻译成参数解:

[1−2034001−1500000]\left[ \begin{array}{cccc|c} 1 & -2 & 0 & 3 & 4\\ 0 & 0 & 1 & -1 & 5\\ 0 & 0 & 0 & 0 & 0 \end{array} \right]​100​−200​010​3−10​450​​

主元在第 111 列和第 333 列,所以 x1,x3x_1,x_3x1​,x3​ 是主元变量,x2,x4x_2,x_4x2​,x4​ 是自由变量。设 x2=sx_2=sx2​=s,x4=tx_4=tx4​=t。第二行给出 x3−t=5x_3-t=5x3​−t=5,所以 x3=5+tx_3=5+tx3​=5+t。第一行给出 x1−2s+3t=4x_1-2s+3t=4x1​−2s+3t=4,所以 x1=4+2s−3tx_1=4+2s-3tx1​=4+2s−3t。参数解为:

x1=4+2s−3tx2=sx3=5+tx4=t\begin{aligned} x_1&=4+2s-3t\\ x_2&=s\\ x_3&=5+t\\ x_4&=t \end{aligned}x1​x2​x3​x4​​=4+2s−3t=s=5+t=t​

其中 s,ts,ts,t 为任意实数。

练习四:判断解的类型

不用继续化简,判断下面阶梯形对应的方程组解的类型:

[102301−140000]\left[ \begin{array}{ccc|c} 1 & 0 & 2 & 3\\ 0 & 1 & -1 & 4\\ 0 & 0 & 0 & 0 \end{array} \right]​100​010​2−10​340​​

没有矛盾行,第三列没有主元,所以 x3x_3x3​ 是自由变量。这个方程组有无穷多解。若设 x3=tx_3=tx3​=t,则 x1=3−2tx_1=3-2tx1​=3−2t,x2=4+tx_2=4+tx2​=4+t。


本章小结

高斯消元把线性方程组变成阶梯形。它只允许使用可逆的初等行变换,所以解集保持不变。阶梯形用于回代,行最简形用于直接读结构。

主元列告诉我们哪些变量被方程约束住;非主元列给出自由变量。没有矛盾行时,自由变量会带来参数解;出现矛盾行时,方程组无解。后面学习秩、零空间和四个基本子空间时,本章的主元和自由变量会继续出现。

  • 为什么行变换不改变解集
  • 三种允许的行变换
  • 消元的核心动作
  • 阶梯形和行最简形
  • 例题:用阶梯形回代
  • 从阶梯形读出变量
  • 读出解的类型
  • 真实问题中的消元
  • 常见错误
    • 把行变换写得不够明确
    • 在同一步里混用已经改变的行
    • 过早宣布自由变量
    • 忽略零主元
  • 练习
    • 练习一:判断行变换是否合法
    • 练习二:消元并回代
    • 练习三:写出参数解
    • 练习四:判断解的类型
  • 本章小结

目录

  • 为什么行变换不改变解集
  • 三种允许的行变换
  • 消元的核心动作
  • 阶梯形和行最简形
  • 例题:用阶梯形回代
  • 从阶梯形读出变量
  • 读出解的类型
  • 真实问题中的消元
  • 常见错误
    • 把行变换写得不够明确
    • 在同一步里混用已经改变的行
    • 过早宣布自由变量
    • 忽略零主元
  • 练习
    • 练习一:判断行变换是否合法
    • 练习二:消元并回代
    • 练习三:写出参数解
    • 练习四:判断解的类型
  • 本章小结