高斯消元
简介
高斯消元 主要用于求线性方程组,也可以求矩阵的秩、矩阵的逆
时间复杂度为 \(O(n^3)\)
思想:初中解方程的加减消元,最后得到类似 \(kx = b\) ,然后逐一往回带,求出其他的未知数
解方程
\[\begin{cases}
3x + 2y + z = 6~~① \\
\\
2x + 2y + 2z = 4~~②\\
\\
4x - 2y - 2z = 2~~③
\end{cases}
\]
消 \(x\)
① 式除以 3,然后让 ② - 2 * ①,③ - 4 * ① 得到
\[\begin{cases}
x + \frac {2}{3}y + \frac{1}{3}z = 2~~④ \\
\\
\frac{2}{3}y + \frac{3}{4}z = 0~~⑤\\
\\
-\frac{14}{3}y - \frac{10}{3}z = -6~~⑥
\end{cases}
\]
然后让 ⑤ 除以 \(\frac{2}{3}\), 然后让 ⑥ - ⑤ * (\(-\frac{14}{3}\))
得到
\[\begin{cases}
y + 2z = 0~~⑦\\
~~\\
\frac{18}{3} z = -6~~⑧
\end{cases}
\]
由 ⑧ 得 \(z = -1\)
然后再把 \(z = 1\) 代入 ⑦ 得到 \(y = 2\)
然后把 \(z=1,y = 2\) 代入 ④ 得到 \(x = 1\)
矩阵运算消元
把上面的柿子的系数放在矩阵中
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
3&2&1&6\\
2&2&2&4\\
4&-2&-2&2
\end{array}
\right]
\]
左边是系数,右边是结果
然后再这个矩阵中进行上述操作
消去 x
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
1&\frac{2}{3}&\frac{1}{3}&2\\
0&\frac{2}{3}&\frac{4}{3}&0\\
0&-\frac{14}{3}&-\frac{10}{3}&-6
\end{array}
\right]
\]
消去 y
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
1&\frac{2}{3}&\frac{1}{3}&2\\
0&1&2&0\\
0&0&\frac{18}{3}&-6
\end{array}
\right]
\]
解得
\[\left[
\begin{array}
11\\
2\\
-1\\
\end{array}
\right]
\]
判断解得情况
- 无解:若有一行系数全是 0,且 val 不为 0,那么方程无解
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
1&\frac{2}{3}&\frac{1}{3}&2\\
0&1&2&0\\
0&0&0&-7
\end{array}
\right]
\]
- 有多个解,有多行系数和 val 都为 0
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
1&\frac{2}{3}&\frac{1}{3}&2\\
0&0&0&0\\
0&0&0&0
\end{array}
\right]
\]
优点:可以判断无解,有无数解情况
缺点:需要回代
高斯-约当消元
高斯消元是执行到第 \(i\) 个方程 \(x_k\) 去消后面的 \(x_k\) , 而约当消元是同时消掉前面的 \(x_k\)
初始形式:
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
3&2&1&6\\
2&2&2&4\\
4&-2&-2&2
\end{array}
\right]
\]
最终形式
\[\left[
\begin{array}{ccc|c}
x&y&z&val\\
1&0&0&?\\
0&1&0&?\\
0&0&1&?
\end{array}
\right]
\]
呈对角线形式
优点:省掉了回代过程
缺点:只能判断是否有唯一解,不能判断是否有解
写在最后
鸣谢Alex_McAvoy 提供栗子