贡献者: LittleFeng; int256; addis; Giacomo
1. 低维简单例子
二元一次方程组
在许多实际生活中,我们往往需要解决类似的问题:
小明拿着家长给的 $100$ 元去超市买饮料。超市里有 $3$ 元钱一瓶的可口可乐和 $5$ 元钱一瓶的奶茶,最后他带着 $28$ 瓶饮料回家过暑假了。求问小明买了多少瓶可口可乐,多少瓶奶茶?
这个问题实际上是一个二元一次方程组的问题,我们设小明买了 $x$ 瓶可口可乐,$y$ 瓶奶茶,可以列出一个方程组:
\begin{equation}
\left\{\begin{aligned}
100 &= 3x + 5y & &(a)\\
28 &= x + y & &(b)~.\\
\end{aligned}\right. \end{equation}
一个简单的解决方法是计算 $(a)-3 \cdot (b)$,得到 $16 = 0x + 2y$ 即 $y = 8$,进一步就知道 $x = 20$.
三元一次方程组
类似的在三维坐标系里面,考察三个平面:$S_1:x - 3y-2z=3$,$S_2:-2x+y-4z=-9$ 与 $S_3:-x+3y-z=-7$ 的交点。
那么这个问题等价于解决如下三元一次方程组:
\begin{equation}
\left\{\begin{aligned}
x - 3y - 2z &= 3\\
- 2x + y - 4z &= -9\\
- x + 3y - z &= -7~.\\
\end{aligned}\right. \end{equation}
解得
\begin{equation}
\left\{\begin{aligned}
x &= 2\\
y &= -1\\
z &= 1~.\\
\end{aligned}\right. \end{equation}
那么 $(2,-1,1)$ 就是三维坐标系中平面 $S_1$,$S_2$ 与 $S_3$ 的交点。
2. 一般情况下的定义
一般的,形如:
\begin{equation}
\left\{\begin{aligned}
a_{1,1}x_1 + a_{1,2}x_2 + \dots + a_{1,n}x_n &= y_1~,\\
a_{2,1}x_1 + a_{2,2}x_2 + \dots + a_{2,n}x_n &= y_2~,\\
\vdots \\
a_{m,1}x_1 + a_{m,2}x_2 + \dots + a_{m,n}x_n &= y_m~. \end{aligned}\right.
\end{equation}
的等式组统称为线性方程组,也可以根据其未知数的个数称为 $n$ 元一次方程组。
其中 $x_1\dots x_n$ 为 $n$ 个未知量(又称元),$y_1\dots y_m$ 与 $a_{1,1} ,a_{1,2}\dots a_{1,n},a_{2,1} \dots a_{n,m}$ 为给定的系数。(形如 $a_{i.j}$ 的系数表示它是方程组中第 $i$ 个方程的 $x_j$ 对应的系数,也即第 $i$ 行第 $j$ 列系数)
3. 求解线性方程组
对于一个 $n$ 元一次方程组:有 $n$ 个等式的一般可解且有唯一解;低于 $n$ 个等式的将会有自由元(也就是会有未知量可以取任意实数,解不唯一);多于 $n$ 个等式的,一般等式间有冲突,无冲突的有唯一解。
解不唯一的时候,可以通过假定某些未知量为常数,解出未知量之间的关系式。
求解线性方程组,我们考虑如下有 $n$ 个等式的 $n$ 元一次方程组,
\begin{equation}
\left\{\begin{aligned}
a_{1,1}x_1 + a_{1,2}x_2 + \dots + a_{1,n}x_n &= y_1~,\\
a_{2,1}x_1 + a_{2,2}x_2 + \dots + a_{2,n}x_n &= y_2~,\\
\vdots \\
a_{n,1}x_1 + a_{n,2}x_2 + \dots + a_{n,n}x_n &= y_n~. \end{aligned}\right.
\end{equation}
对于这样一个方程组,我们的做法是 “消元” 求解,不停地利用上面的行乘以某个倍数,使得可以与下面某行消掉一个或多个未知量(这个做法在将来会叫做初等行变换)。
首先我们可以通过交换各个方程(也就是各行)的顺序,让第一行的 $x_1$ 的系数非零。
我们让第一行的作用是消元掉第一行往后每行的 $x_1$,第二行的作用是消元掉第二行往后每行的 $x_2$(如果第二个未知数的系数为 $0$,我们考虑与下面的某行交换使得他不为 $0$),...,第 $k$ 行的作用是消元掉第 $k$ 行往后每行的 $x_k$。这样最终最后的一行(第 $n$ 行)将只剩 $x_n$ 这个未知数,可以解这个一元一次方程得到其值,将其反代回上面的各个方程,在倒数第二行此时将只剩下 $x_{n-1}$ 这个未知数,可以解得其值,再反代,...,依此类推,求得各个未知量 $x_i$ 的值。
如果中间的过程出现了某行是形如 “常数=常数” 的,这将对于一个恒成立的等式,要考虑这个方程组的其他方程,如果有解(或解不唯一)则这方程组解不唯一、如果其他方程无解则这方程组无解;如果这个等式是恒不成立的(例如得到了 $3=4$),则方程组无解。
下面通过举例说明解方程组的过程。
例 1
\begin{equation}
\left\{\begin{aligned}
& 4x_2 + 4x_3 + 3x_4= 2~, &\cdots (*1)\\
6x_1 + & 4x_2 + 9x_3 + 2x_4= 5~, &\cdots (*2)\\
3x_1 + & 2x_2 + 5x_3 + 4x_4= 7~, &\cdots (*3)\\
9x_1 + & 3x_2 + 7x_3 + 8x_4= 9~. &\cdots (*4)
\end{aligned}\right.
\end{equation}
解:
首先,考虑用 $(*1)$ 式消元掉未知数 $x_1$,发现 $(*1)$ 式的 $x_1$ 项系数为 $0$,与一个 $x_1$ 项系数非零的式子交换。不妨与 $(*2)$ 式交换,得到
\begin{equation}
\left\{\begin{aligned}
6x_1 + & 4x_2 + 9x_3 + 2x_4= 5~, &\cdots (*2)\\
& 4x_2 + 4x_3 + 3x_4= 2~, &\cdots (*1)\\
3x_1 + & 2x_2 + 5x_3 + 4x_4= 7~, &\cdots (*3)\\
9x_1 + & 3x_2 + 7x_3 + 8x_4= 9~. &\cdots (*4)
\end{aligned}\right.
\end{equation}
发现第二个式子 $(*1)$ 不带 $x_1$ 项,幸运的不用消元,跳过其,对第三个式子 $(*3)$ 做消元。
观察 $x_1$ 的系数比,$(*2)$ 是 $(*3)$ 的 $2$ 倍,故将 $(*2)/2$ 并与 $(*3)$ 相减,得到 $(*2)/2-(*3)$ 的结果为
$$
(6x_1 + 4x_2 + 9x_3 + 2x_4)/2 - (3x_1 + 2x_2 + 5x_3 + 4x_4) = 5/2 - 7~,
$$
即
$$-\frac12 x_3 - 3x_4 = - \frac 92 ~,$$
可以化为 $x_3 + 6x_4 = 9$,用这替换掉 $(*3)$ 得到原方程组化为
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +9x_3 + 2x_4&= 5~, &\cdots (*2)\\
4x_2 +4x_3 + 3x_4&= 2~, &\cdots (*1)\\
x_3 + 6x_4 &= 9~, &\cdots (*5)\\
9x_1 + 3x_2 +7x_3 + 8x_4&= 9~. &\cdots (*4)
\end{aligned}\right.
\end{equation}
类似的,观察系数比,发现应当将 $(*2)/2\times3$ 后与 $(*4)$ 相减,得到 $(*2)/2\times3-(*4)$,结果为
$$
(6x_1 + 4x_2 +9x_3 + 2x_4)/2\times3-(9x_1 + 3x_2 +7x_3 + 8x_4) = 5/2\times 3-9~,
$$
即
$$
3x_2+(13/2) x_3-5x_4 = -3/2 ~,
$$
可化为 $6x_2 + 13x_3 - 10x_4 = -3$,将其替换 $(*4)$ 后原方程组化为
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +~~9x_3 + ~~2x_4&= 5~, &\cdots (*2)\\
4x_2 +~~4x_3 + ~~3x_4&= 2~, &\cdots (*1)\\
x_3 + ~~6x_4 &= 9~, &\cdots (*5)\\
6x_2 + 13x_3 - 10x_4 &= -3~. &\cdots (*6)
\end{aligned}\right.
\end{equation}
接下来考虑用第二个式子消掉第二个未知量 $x_2$。第二个式子 $(*1)$ 的 $x_2$ 项系数不为零,不用交换。同时注意到第三个式子 $(*5)$ 的 $x_2$ 项系数幸运的刚好为 $0$ 不用消元,考虑对现在的第四个式子 $(*6)$ 做消元。
观察系数比,发现 $(*1)$ 的 $x_2$ 项系数是 $(*6)$ 的 $2/3$,故将 $(*1)/(2/3)$ 后与 $(*6)$ 相减,得到 $(*1)/2\times 3-(*6)$,结果为
$$
(4x_2 +4x_3 + 3x_4)/2\times3-(6x_2 + 13x_3 - 10x_4)=2/2\times3-(-3)~,
$$
即
$$
-7x_3 + (29/2) x_4 = 6 ~,
$$
可化为 $-14x_3 + 29x_4 = 12$,将其替换掉 $(*6)$,原方程组可化为
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +~~9x_3 + ~~2x_4&= 5~~~, &\cdots (*2)\\
4x_2 +~~4x_3 + ~~3x_4&= 2~~~, &\cdots (*1)\\
x_3 + ~~6x_4 &= 9~~~, &\cdots (*5)\\
-14x_3 + 29x_4&= 12~. &\cdots (*7)
\end{aligned}\right.
\end{equation}
接下来是用第三个式子 $(*5)$ 消元掉后面式子(实际仅有第四个式子 $(*7)$)的第三个未知量 $x_3$。对比 $(*5)$ 与 $(*7)$ 的 $x_3$ 项系数比,发现 $(*5) \times (-14)$ 后与 $(*6)$ 系数相同,于是考虑 $(*5)\times (-14) - (*7)$,得到
$$
(x_3+6x_4)\times (-14)-(-14x_3+29x_4)=9\times(-14)-12~,
$$
即 $ -113x_4 = -138 $,可化为 $113x_4=138$,将其替换掉原方程组的第四个式子,得到
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +9x_3 + 2x_4&= 5~~~, &\cdots (*2)\\
4x_2 +4x_3 + 3x_4&= 2~~~, &\cdots (*1)\\
x_3 + 6x_4 &= 9~~~, &\cdots (*5)\\
113x_4&= 138~. &\cdots (*8)
\end{aligned}\right.
\end{equation}
现在开始从下向上往回解,并反代各个未知量的值。
由 $(*8)$ 可知 $x_4 = 138/113$,将其代入其前面(在写的过程中体现为 “上面”)的式子 $(*2), (*1), (*5)$ 得
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +9x_3 + 2\cdot \frac{138}{113}&= 5~~~, &\cdots (*2)\\
4x_2 +4x_3 + 3\cdot \frac{138}{113}&= 2~~~, &\cdots (*1)\\
x_3 + 6\cdot \frac{138}{113} &= 9~~~, &\cdots (*5)\\
x_4 &= \frac{138}{113} ~.
\end{aligned}\right.
\end{equation}
解倒数第二式的方程可得,$x_3 = 189/113$,将其代入其前面的式子 $(*2), (*1)$ 得
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4x_2 +9\cdot \frac{189}{113} + 2\cdot \frac{138}{113}&= 5~~~, &\cdots (*2)\\
4x_2 +4\cdot \frac{189}{113} + 3\cdot \frac{138}{113}&= 2~~~, &\cdots (*1)\\
x_3 &= \frac{189}{113} ~,\\
x_4 &= \frac{138}{113} ~.
\end{aligned}\right.
\end{equation}
解倒数第三式的方程可得,$x_2 = -236/113$,将其带入其前面的式子 $(*2)$ 得
\begin{equation}
\left\{\begin{aligned}
6x_1 + 4\cdot \left(-\frac{236}{113}\right)+9\cdot \frac{189}{113} + 2\cdot \frac{138}{113}&= 5~~~, &\cdots (*2)\\
x_2 &= -\frac{236}{113} ~,\\
x_3 &= \frac{189}{113} ~,\\
x_4 &= \frac{138}{113} ~.
\end{aligned}\right.
\end{equation}
解 $(*2)$ 的方程得 $x_1 = -78/113$。这就将所有的未知数解出,故原方程组的解为
\begin{equation}
\left\{\begin{aligned}
x_1 &= -\frac{78}{113}\\
x_2 &= -\frac{236}{113}\\
x_3 &= \frac{189}{113} \\
x_4 &= \frac{138}{113}
\end{aligned}\right. ~~
\end{equation}
可以代回检验得这结果是正确的。
对于一个方程组的解不唯一的情况,一个例子是:
\begin{equation}
\left\{\begin{aligned}
x_1 + 2x_2 &= 3 ~,\\
3x_1 + 6x_2 &= 6 ~.
\end{aligned}\right.
\end{equation}
我们发现上面的式子乘以 $3$ 之后与下面的式子完全相同,也就是第二个式子是 “毫无作用的”(以后会称第二个式子为可以被前面
线性表示)。实际情况还可能例如
\begin{equation}
\left\{\begin{aligned}
x_1 + ~~2x_2 + 3x_3&= 3 ~,\\
3x_1 + ~~6x_2 + 2x_3 &= 6 ~, \\
5x_1 + 10x_2 + ~~x_3 &= 9 ~.
\end{aligned}\right.
\end{equation}
我们发现第三个式子是可以被前面两个式子表示的(第二个式子的 $2$ 倍减去第一个式子),即他可以被
线性表示,所以这个方程组解不唯一。
类似的,如果仍为刚才这个方程组但是第三个式子右侧改为 $10$:
\begin{equation}
\left\{\begin{aligned}
x_1 + ~~2x_2 + 3x_3&= 3 ~,\\
3x_1 + ~~6x_2 + 2x_3 &= 6 ~, \\
5x_1 + 10x_2 + ~~x_3 &= 10 ~.
\end{aligned}\right.
\end{equation}
这将使得第三个式子与前面两个式子冲突,也就是对应方程组
无解的情况。