高斯消元和高斯约当消元

注:本文由AI生成

高斯消元法和高斯–约当消元法都是解线性方程组的基本方法。它们的核心思想都一样:对增广矩阵做初等行变换,把方程组变成容易求解的形式。


1. 基本概念

线性方程组

\[A\mathbf{x}=\mathbf{b} \]

可以写成增广矩阵:

\[[A\mid \mathbf{b}] \]

例如:

\[\begin{cases} x+y+z=6\\ 2x-y+z=3\\ x+2y-z=2 \end{cases} \]

对应增广矩阵:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 2&-1&1&3\\ 1&2&-1&2 \end{array}\right] \]

初等行变换有三种:

  1. 交换两行;
  2. 某一行乘以非零常数;
  3. 某一行加上另一行的若干倍。

这些变换不会改变方程组的解。


2. 高斯消元法

高斯消元法分两步:

第一步:前向消元

从左到右,逐列消去主元下方的元素,把矩阵化为行阶梯形矩阵

行阶梯形矩阵满足:

  • 每一行的第一个非零元素称为主元;
  • 主元所在列的位置逐行向右移;
  • 全零行在最下方。

继续上面的例子:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 2&-1&1&3\\ 1&2&-1&2 \end{array}\right] \]

消去第一列主元下方的元素:

\[R_2 \leftarrow R_2-2R_1 \]

\[R_3 \leftarrow R_3-R_1 \]

得到:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 0&-3&-1&-9\\ 0&1&-2&-4 \end{array}\right] \]

为了方便,交换第二、三行:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 0&1&-2&-4\\ 0&-3&-1&-9 \end{array}\right] \]

消去第三行第二列元素:

\[R_3 \leftarrow R_3+3R_2 \]

得到:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 0&1&-2&-4\\ 0&0&-7&-21 \end{array}\right] \]

这就是行阶梯形矩阵。

第二步:回代

从最后一行开始向上求解。

最后一行:

\[-7z=-21 \]

所以:

\[z=3 \]

代入第二行:

\[y-2z=-4 \]

\[y-6=-4 \]

\[y=2 \]

再代入第一行:

\[x+y+z=6 \]

\[x+2+3=6 \]

\[x=1 \]

所以解为:

\[x=1,\quad y=2,\quad z=3 \]

高斯消元法的特点是:只消去主元下方的元素,最后需要回代。


3. 高斯–约当消元法

高斯–约当消元法是高斯消元法的扩展。它不但消去主元下方的元素,还消去主元上方的元素,并且把每个主元都变成 1,最终得到简化行阶梯形矩阵

简化行阶梯形矩阵满足:

  • 它是行阶梯形矩阵;
  • 每个主元都是 1;
  • 主元所在列的其余元素全是 0。

继续上面的例子。

从行阶梯形矩阵开始:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 0&1&-2&-4\\ 0&0&-7&-21 \end{array}\right] \]

先把第三行主元化为 1:

\[R_3 \leftarrow -\frac{1}{7}R_3 \]

得到:

\[\left[\begin{array}{ccc|c} 1&1&1&6\\ 0&1&-2&-4\\ 0&0&1&3 \end{array}\right] \]

现在消去第三列上方的元素。

第二行加上两倍第三行:

\[R_2 \leftarrow R_2+2R_3 \]

第一行减去第三行:

\[R_1 \leftarrow R_1-R_3 \]

得到:

\[\left[\begin{array}{ccc|c} 1&1&0&3\\ 0&1&0&2\\ 0&0&1&3 \end{array}\right] \]

再消去第一行第二列的元素:

\[R_1 \leftarrow R_1-R_2 \]

得到:

\[\left[\begin{array}{ccc|c} 1&0&0&1\\ 0&1&0&2\\ 0&0&1&3 \end{array}\right] \]

这就是简化行阶梯形矩阵。它直接给出:

\[x=1,\quad y=2,\quad z=3 \]

高斯–约当消元法的特点是:消去主元上方和下方的所有元素,最后不需要回代,解可以直接读出。


4. 两者的区别

比较项 高斯消元法 高斯–约当消元法
最终矩阵形式 行阶梯形 简化行阶梯形
是否消去主元上方元素 不消去 消去
是否需要回代 需要 不需要
计算量 约 \(O(n^3/3)\) 约 \(O(n^3/2)\)
主要用途 解单个方程组、LU 分解 求逆矩阵、同时解多个右端项

简单说:

  • 高斯消元法更快,适合只解一个线性方程组;
  • 高斯–约当消元法计算量稍大,但结果更彻底,特别适合求矩阵的逆。

5. 求逆矩阵

高斯–约当消元法常用来求逆矩阵。

要求矩阵 \(A\) 的逆,可以构造增广矩阵:

\[[A\mid I] \]

然后通过初等行变换,把左边变成单位矩阵:

\[[I\mid A^{-1}] \]

例如:

\[A= \begin{bmatrix} 1&2\\ 3&4 \end{bmatrix} \]

构造:

\[\left[\begin{array}{cc|cc} 1&2&1&0\\ 3&4&0&1 \end{array}\right] \]

消元:

\[R_2 \leftarrow R_2-3R_1 \]

得到:

\[\left[\begin{array}{cc|cc} 1&2&1&0\\ 0&-2&-3&1 \end{array}\right] \]

第二行除以 \(-2\):

\[\left[\begin{array}{cc|cc} 1&2&1&0\\ 0&1&\frac{3}{2}&-\frac{1}{2} \end{array}\right] \]

第一行减去两倍第二行:

\[\left[\begin{array}{cc|cc} 1&0&-2&1\\ 0&1&\frac{3}{2}&-\frac{1}{2} \end{array}\right] \]

所以:

\[A^{-1}= \begin{bmatrix} -2&1\\ \frac{3}{2}&-\frac{1}{2} \end{bmatrix} \]


6. 数值稳定性与主元选择

在实际数值计算中,如果主元非常接近 0,直接消元会导致误差放大。因此通常需要使用部分主元法全主元法

  • 部分主元法:每次消元前,在当前列中选取绝对值最大的元素作为主元,并交换到主元位置。
  • 全主元法:在所有剩余子矩阵中选取绝对值最大的元素作为主元。

例如:

\[\begin{cases} 0.001x+y=1\\ x+y=2 \end{cases} \]

如果直接用 \(0.001\) 作主元,会产生较大的舍入误差。更好的做法是先交换两行,用 \(1\) 作主元。


7. 特殊情况:无解与无穷多解

通过行阶梯形矩阵可以判断解的情况。

  • 如果出现类似:

\[[0\ 0\ 0\mid c],\quad c\ne 0 \]

这样的行,说明方程组无解。

  • 如果主元个数小于未知数个数,则方程组有无穷多解,需要引入自由变量。

例如:

\[\left[\begin{array}{ccc|c} 1&2&3&6\\ 0&1&2&4\\ 0&0&0&0 \end{array}\right] \]

第三行全为零,说明第三个变量可以自由取值,因此有无穷多解。


总结:

  • 高斯消元法:前向消元到行阶梯形,再回代求解;
  • 高斯–约当消元法:继续消元到简化行阶梯形,直接读出解;
  • 两者都是线性代数和数值计算中最基础、最重要的算法。
posted @ 2026-09-09 09:52  kingho_zjh  阅读(18)  评论(0)    收藏  举报