跳至内容

行阶梯形矩阵详解:矩阵变换指南

学习如何使用行变换将矩阵化为行阶梯形,以求解方程组。
已更新 2026年10月6日  · 8分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

如果您开始为数据科学学习线性代数,您很可能经常听到“行阶梯形(row echelon form)”这个术语。

行阶梯形(REF)是一种矩阵形式,有助于求解线性方程组。通过将矩阵变换为这种特殊形式,我们可以判断方程组是否有解、找到这些解,并理解线性系统的结构。

在本文中,我们将探讨什么是行阶梯形,以及它与化简行阶梯形(RREF)的区别。我们还将概述使用初等行变换将矩阵逐步变换的过程,学习如何使用回代法求解线性系统,并探索与行阶梯形相关的进阶技术与概念。

行阶梯形背后的关键概念

让我们来理解什么是行阶梯形及其相关的关键概念。

什么是行阶梯形?

当一个矩阵满足以下三个关键条件时,它处于行阶梯形:

  1. 全零行全部位于矩阵底部
  2. 每个非零行的首个非零元素(首元)出现在其上一行首元的右侧
  3. 每个首元所在列中,首元之下的所有元素为零

这会形成“阶梯”状的模式,首元(称为主元或枢轴)从左到右逐步向下。

例如,下列矩阵就是行阶梯形:

Row echelon form.

行阶梯形。(作者制图)

如上所示,主元(2、1 和 3)构成了阶梯形模式,每个主元下方都填充为零。这一结构使得通过回代法求解系统变得直观(稍后将介绍)。

化简行阶梯形(RREF)

化简行阶梯形在 REF 的基础上增加了两个额外要求:

  1. 每个首元必须为 1
  2. 每个首元 1 在其所在列中应是唯一的非零元素

下面是同一系统转化为 RREF 后的形式:

Reduced row-echelon form.

化简行阶梯形。(作者制图)

尽管同一系统可能对应多个行阶梯形,但化简行阶梯形是唯一的。

这种唯一性使 RREF 有助于识别解集的结构,但达到 RREF 所需的额外计算步骤意味着,常规 REF 结合回代法往往更高效地求解方程组。

构造行阶梯形的初等行变换

有三类初等行变换,它们在变换矩阵的同时保持解集不变。

行交换

行交换用于对调两行,当需要将某个非零元素放到主元位置时很有用:

R₁ ↔ R₂

行倍乘

行倍乘将一行的所有元素乘以一个非零常数,有助于规范化主元:

R₁ → cR₁ (where c ≠ 0)

行加减

行加减用某行与另一行的倍数之和替换该行,有助于在主元下方构造零:

R₂ → R₂ + cR₁

这些操作构成了高斯消元法的基石,该算法使我们能够系统地将任意矩阵变换为行阶梯形,同时保持相同的解集。

如何将矩阵变换为行阶梯形

我们通过一个逐步示例来演示,先取一个线性系统并将其化为行阶梯形。

考虑如下方程组:

System of linear equations.

线性方程组。(作者制图)

步骤 1:写出增广矩阵

首先,将系数矩阵与常数项合并,构造增广矩阵:

Creating the augmented matrix

构造增广矩阵(作者制图)

步骤 2:构造第一个主元

我们希望左上角元素成为第一个主元。虽然可以直接用 2,但交换行将 1 放到主元位置能简化计算:

R₁ ↔ R₂

Creating the first pivot

构造第一个主元(作者制图)

步骤 3:消去第一个主元下方元素

现在通过减去第 1 行的适当倍数,在第一个主元下方构造零:

R₂ → R₂ - 2R₁
R₃ → R₃ - 3R₁

Eliminating below the first pivot.

消去第一个主元下方元素。(作者制图)

步骤 4:构造第二个主元

转到第二列,我们可以通过对第 2 行做倍乘来简化:

R₂ → -½R₂

Creating the second pivot.

构造第二个主元。(作者制图)

步骤 5:消去第二个主元下方元素

在第二个主元下方构造零:

R₃ → R₃ + 7R₂

Eliminating below the second pivot.

消去第二个主元下方元素。(作者制图)

现在矩阵已处于行阶梯形!我们可以通过检查三条准则来确认:

  • 不存在全零行(若存在应位于底部)
  • 主元呈阶梯状:位置为 (1,1)、(2,2) 和 (3,3)
  • 每个主元下方的元素全为零

使用行阶梯形求解线性系统

一旦矩阵化为行阶梯形,我们可以通过回代法提取解,或通过秩分析系统的性质。

用行阶梯形求解线性方程

在矩阵为行阶梯形的情况下,回代法可以自底向上求解变量的取值。

以上述示例为例:

Row-echelon form

行阶梯形(作者制图)

由增广矩阵可写出等价方程组:

  • x + 3y + z = 11
  • y + 2z = 4
  • 12z = 6

自底向上:

  • z = 6/12 = 1/2

代入第二个方程:

  • y + 2(1/2) = 4,因此 y = 3

最后同时代入两者:

  • x + 3(3) + 1/2 = 11,得到 x = 3/2

对于欠定系统(未知数多于方程数),行阶梯形会暴露出自由变量。

再看一个这样的例子:

Row echelon form of underdetermined systems.

欠定系统的行阶梯形。(作者制图)

这里,y 是自由变量(第 2 列没有主元),从而得到参数化解:

  • z = -1–2w
  • x = 5–2y + z — 3w = 5–2y — 1–5w = 4–2y — 5w

可以将该解理解为在四维空间中的一个平面,由 y 和 w 参数化。

用行阶梯形求秩

矩阵的秩等于其行阶梯形中非零行的数量,即主元的个数。

这有助于我们理解解空间:

  • 若系数矩阵 A 的秩等于增广矩阵 [A∣b] 的秩,且两者都等于变量个数 n,则系统有唯一解。
  • 若两者秩相等但小于变量个数,则由于存在自由变量而有无穷多解。
  • 若 A 的秩小于 [A∣b] 的秩,则系统不相容、无解。

这种利用行阶梯形的方法使我们在求解之前就能把握系统的行为。

进阶主题:数值稳定性与选主元

如果您对与 REF 相关的更高级主题感兴趣,本节将探讨在变换矩阵时使用的各种选主元技术。

在计算上取得行阶梯形时,主元的选择会显著影响数值精度。

让我们用一个例子来理解:

Numerical stability example.

数值稳定性示例。(作者制图)

若不进行选主元,我们可以用 0.0001 去除第二行以消去这个很小的主元:

R₂ → R₂ — (1/0.0001)R₁ = R₂ — 10,000R₁

乘以 10,000 会放大任意的舍入误差,可能破坏解的精度。

然而,如果我们先交换两行,矩阵将变为:

Numerical stability example.

数值稳定性示例。(作者制图)

此时我们只需进行 R₂ → R₂ — 0.0001R₁,这是一种更稳定、能保持数值精度的操作。这一思想构成了部分选主元的基础,并被诸如 NumPy、SciPy 和 MATLAB 等数值软件广泛采用。

部分选主元

部分选主元会在当前列(自当前行向下)选择绝对值最大的元素,通过交换行将其移到主元位置。

在下例中,处理第二列时:

Partial pivoting example.

部分选主元示例。(作者制图)

部分选主元会交换第 2、3 行,使 −0.5 成为主元,因为 |−0.5| > |0.1|。这种策略提升了稳定性,已成为 NumPy、SciPy 和 MATLAB 等数值库的标准做法。

比例部分选主元

比例部分选主元增加了一步:在选择主元前,将每个候选元素除以其所在行中绝对值最大的元素。

这种“比例因子”会考虑各行元素量级,避免偏向数值本身较大的行。

完全选主元

在完全选主元中,会同时交换行与列,以确保主元是在剩余子矩阵中(不只是该列)绝对值最大的元素。

虽然这样可以得到数值上最稳定的消元过程,但代价是计算开销更大。因此除非需要极高精度(如符号计算或高风险的科学仿真),实际中很少采用。

行阶梯形 vs. 化简行阶梯形

如前所述,这两种形式在线性代数中都很有用,但我们也需要了解何时使用各自的形式。

下表总结了两种形式之间的差异:

特性

行阶梯形(REF)

化简行阶梯形(RREF)

主元要求

任意非零值

必须为 1

主元上方元素

可为任意值

必须为 0

唯一性

不唯一

对每个矩阵唯一

计算成本

较低(操作更少)

较高(需要额外步骤)

求解方式

需要回代

可直接读出解

最佳适用场景

快速求解方程组

理解解的结构

当我们需要快速求解系统时,行阶梯形最为合适,特别是在大矩阵场景下,得到 RREF 的额外操作代价高。它也是 LU 分解等数值算法的首选形式。

化简行阶梯形更适用于研究与理论场景,在这些场景中我们需要直接理解线性变换的基本结构、寻找行空间与列空间的基,或判断向量的线性无关性。其唯一性使之非常适合理论分析与自动定理证明。

结论

本文介绍了如何通过初等行变换在保持解不变的前提下变换矩阵,并理解了 REF 与 RREF 的差异。此外,我们学习了若干进阶的选主元策略以及在特定情境下有用的 REF 变体。

若想进一步提升您对线性代数及其在数据科学中的应用的理解,欢迎报名我们的Linear Algebra for Data Science课程,您将更深入地学习线性代数中的若干概念与技术,以及关键的矩阵运算。


Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

作为一名高级数据科学家,我设计、开发并部署大规模机器学习解决方案,帮助企业做出更明智的数据驱动决策。作为数据科学写作者,我分享所学心得、职业建议以及深入的实践型教程。

常见问题

矩阵成为行阶梯形需要满足哪三个条件?

1)全零行在矩阵底部;2)每一行的首元出现在其上一行首元的右侧;3)每个首元所在列的首元下方元素全为零。

行阶梯形(REF)与化简行阶梯形(RREF)的主要区别是什么?

RREF 额外有两条要求:每个首元必须为 1;且每个首元 1 是其所在列中唯一的非零元素。REF 可能有多种形式,而 RREF 对每个矩阵都是唯一的。

用于变换矩阵的三类初等行变换是什么?

行交换(对调两行)、行倍乘(将一行乘以非零常数)和行加减(用自身与另一行的倍数之和替换该行)。

矩阵的秩与其行阶梯形有什么关系?

秩等于行阶梯形中非零行(或主元)的数量,这能够反映系统解空间的情况。

达到行阶梯形后如何求解方程组?

达到行阶梯形后,使用回代法:从最底行开始求出最后一个变量的值,然后逐步向上代入,依次求出其余变量。

主题
数据科学

与 DataCamp 一起学习

课程

R 数据科学的线性代数

4 小时
21.8K
本课程介绍线性代数,这是支撑数据科学的最重要数学主题之一。
查看详情Right Arrow
开始课程
查看更多Right Arrow