高斯消元与高斯-若尔当消元详解
行阶梯形、简化行阶梯形、主元,以及三种初等行变换,在一个具体矩阵上完整演算。
消元是线性代数中最有用的算法。秩、行列式、逆矩阵以及线性方程组的解都由它得出。它建立在三种初等行变换之上,而它们都不会改变原方程组的解集:
- 交换两行:
R(i) ↔ R(j) - 把某一行乘以非零标量:
R(i) → k·R(i) - 把某行的倍数加到另一行:
R(i) → R(i) + k·R(j)
行阶梯形
矩阵处于行阶梯形,当且仅当:
- 全零行都排在最下面;
- 每行第一个非零元素(主元)严格位于上一行主元的右侧;
- 主元下方全为零。
| 2 | 1 | −1 |
| 0 | 3 | 2 |
| 0 | 0 | 5 |
简化行阶梯形
简化形更进一步:每个主元都等于 1,且是所在列唯一的非零元素。关键在于,每个矩阵的简化行阶梯形都是唯一的——结果与你做变换的顺序无关。
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
算法步骤
- 从左上角开始,在当前列中找绝对值最大的元素——这叫部分主元选取,能把舍入误差压到最小。
- 若整列都是零,就右移一列重新来过。
- 把那一行换到主元位置。
- 用主元去除主元所在行,使主元变为 1。
- 从其余各行中减去主元行的适当倍数,把该列其余元素消为零。
- 下移一行、右移一列,重复以上步骤。
如果第 5 步只消去主元下方的行,得到的是高斯消元(行阶梯形);连上方也一起消去,就是高斯-若尔当消元(简化形)。
如何读出解
- 唯一解:系数矩阵的每一列都有主元。
- 无穷多解:某列没有主元——对应的变量是自由变量。
- 无解:出现形如
0 0 0 | c(c ≠ 0)的行,它声称 0 = c。