浅谈多元线性方程组

· · 算法·理论

本文章同步发表在博客园。

我们在做题时,经常会遇到这样的题:

::::info[题目]{open} 求方程组

\begin{cases} 2x_1+x_2+x_3+x_4=1\\ x_1+2x_2+x_3+x_4=2\\ x_1+x_2+2x_3+x_4=3\\ x_1+x_2+x_3+2x_4=4 \end{cases}

::::

这时的你欣喜若狂,于是把上面的四个式子相加轻松解出了方程组的解

\begin{cases} x_1=-1\\ x_2=0\\ x_3=1\\ x_4=2 \end{cases}

但是我们换一个方程组

\begin{cases} x_1+x_2+x_3+x_4=10\\ x_1+2x_2+3x_3+4x_4=30\\ 2x_1+x_2+x_3+3x_4=20\\ 4x_1+4x_2+5x_3+8x_4=60 \end{cases}

你就不会做了,今天我们就一起来探讨一下多元线性方程组的做法。

多元齐次线性方程组

首先解释一下这个名称。

举一个例子:

\begin{cases} x_1+x_2+x_3+x_4=0\\ x_1+2x_2+3x_3+4x_4=0\\ 2x_1+x_2+x_3+3x_4=0\\ 2x_2+3x_3+4x_4=0 \end{cases}

这个怎么解呢?读者可以先自己尝试一下用消元的方法解一下,下面介绍一种做法。

我们可以把系数放在矩阵中:

\begin{pmatrix} 1 & 1 & 1 & 1\\ 1 & 2 & 3 & 4\\ 2 & 1 & 1 & 3\\ 0 & 2 & 3 & 4 \end{pmatrix}

原方程就相当于两个矩阵做乘法,即

\begin{pmatrix} 1 & 1 & 1 & 1\\ 1 & 2 & 3 & 4\\ 2 & 1 & 1 & 3\\ 0 & 2 & 3 & 4 \end{pmatrix} \times \begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{pmatrix} =0

上面的 0 相当于 0 矩阵。

我们平时解方程组是可以随便相加减的,所以我们也可以对于这个矩阵进行行的加减乘除,但是列不行。

我们期望这个方程组是有唯一解的,即目标矩阵为

\begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}

设第 i 行是 r_i,第 j 列是 c_j,第 i 行第 j 列的数为 a_{ij}

此时我们的 a_{11} 已经达到了预期。

我们用 r_2r_1 得到

\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 2 & 1 & 1 & 3\\ 0 & 2 & 3 & 4 \end{pmatrix}

此时我们的 a_{21}a_{22} 都已经达到了预期,我们考虑把 r_3 减去 2r_1

\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & -1 & -1 & 1\\ 0 & 2 & 3 & 2 \end{pmatrix} 我们把 $r_3$ 加上 $r_2$ 得到 $$ \begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 2 & 3 & 2 \end{pmatrix} $$ 把 $r_4$ 减去 $2r_2$ 得到 $$ \begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 0 & -1 & -4 \end{pmatrix} $$ 把 $r_4$ 加上 $r_3$ 得到 $$ \begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix} $$ 我们发现 $r_4$ 全都变成了 $0$,说明这是一个不定方程组,我们只能把这个方程组的通解求出来。 $r_2$ 减去 $2r_3$ 得到 $$ \begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix} $$ 把 $$ \begin{pmatrix} 1 & 1 & 0 & -3\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix} $$ 再小小的处理一下 $c_2$,我们将 $r_1$ 减去 $r_2$ 得到 $$ \begin{pmatrix} 1 & 0 & 0 & 2\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix} $$ 经过适当的变形,我们可以把它变成方程组了 $$ \begin{cases} x_1+2x_4=0\\ x_2-5x_4=0\\ x_3+4x_4=0 \end{cases} $$ 这时我们就可以用任意的 $x_4$ 把 $x_1$,$x_2$ 和 $x_3$ 表示出来,于是通解: $$ \begin{cases} x_1=-2x_4\\ x_2=\dfrac{5}{2} x_4\\ x_3=-4x_4 \end{cases} $$ 这样我们就求出了这样一个通解,但是你会发现齐次的方程组一定有 $\forall i,a_i=0$ 这个解,所以你实在不会可以把这个解写上,不知道阅卷老师会不会给分。 ## 多元非齐次线性方程组 什么叫非齐次呢?就是等式右边不为 $0$,其他的都一样。 举个例子,回收开头,这个就是多元非齐次线性方程组: $$ \begin{cases} x_1+x_2+x_3+x_4=10\\ x_1+2x_2+3x_3+4x_4=30\\ 2x_1+x_2+x_3+3x_4=20\\ 4x_1+4x_2+5x_3+8x_4=60 \end{cases} $$ 我们来解一下这个多元非齐次方程组。 --- 如果是多元齐次方程组,那么右边的一串 $0$ 可以忽略,但是这里不行,所以我们在放入矩阵时要把常数项放在最后一列,也就是: $$ \begin{pmatrix} 1 & 1 & 1 & 1 \bigm| & 10 \\ 1 & 2 & 3 & 4 \bigm| & 30 \\ 2 & 1 & 1 & 3 \bigm| & 20 \\ 4 & 4 & 5 & 8 \bigm| & 60 \end{pmatrix} $$ 目标矩阵: $$ \begin{pmatrix} 1 & 0 & 0 & 0 \bigm| & ? \\ 0 & 1 & 0 & 0 \bigm| & ? \\ 0 & 0 & 1 & 0 \bigm| & ? \\ 0 & 0 & 0 & 1 \bigm| & ? \end{pmatrix} $$ 开始操作: 我们将 $r_2$ 减 $r_1$ 得 $$ \begin{pmatrix} 1 & 1 & 1 & 1 \bigm| & 10 \\ 0 & 1 & 2 & 3 \bigm| & 20 \\ 2 & 1 & 1 & 3 \bigm| & 20 \\ 4 & 4 & 5 & 8 \bigm| & 60 \end{pmatrix} $$ 我们将 $r_3$ 减 $2r_1$ 得 $$ \begin{pmatrix} 1 & 1 & 1 & 1 \bigm| & 10 \\ 0 & 1 & 2 & 3 \bigm| & 20 \\ 0 & -1 & -1 & 1 \bigm| & 0 \\ 4 & 4 & 5 & 8 \bigm| & 60 \end{pmatrix} $$ 我们将 $r_4$ 减 $4r_1$ 得 $$ \begin{pmatrix} 1 & 1 & 1 & 1 \bigm| & 10 \\ 0 & 1 & 2 & 3 \bigm| & 20 \\ 0 & -1 & -1 & 1 \bigm| & 0 \\ 0 & 0 & 1 & 4 \bigm| & 20 \end{pmatrix} $$ 于是我们完成了 $c_1$ 的操作,现在进行 $c_2$ 的整改。 我们将 $r_3$ 加 $r_2$ 得 $$ \begin{pmatrix} 1 & 1 & 1 & 1 \bigm| & 10 \\ 0 & 1 & 2 & 3 \bigm| & 20 \\ 0 & 0 & 1 & 4 \bigm| & 20 \\ 0 & 0 & 1 & 4 \bigm| & 20 \end{pmatrix} $$ 我们将 $r_1$ 减 $r_2$ 得 $$ \left( \begin{array}{cccc|c} 1 & 0 & -1 & -2 & -10 \\ 0 & 1 & 2 & 3 & 20 \\ 0 & 0 & 1 & 4 & 20 \\ 0 & 0 & 1 & 4 & 20 \end{array} \right) $$ 现在完成了 $c_2$ 的整改,注意到 $c_3$ 和 $c_4$ 是完全相同的,我们相减会得到一行 $0$,很遗憾,这个方程组变成了不定方程组。 还是先相减: $$ \left( \begin{array}{cccc|c} 1 & 0 & -1 & -2 & -10 \\ 0 & 1 & 2 & 3 & 20 \\ 0 & 0 & 1 & 4 & 20 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right) $$ 接下来不管 $r_4$,来处理 $c_3$。 我们将 $r_2$ 减 $2r_3$ 得: $$ \left( \begin{array}{cccc|c} 1 & 0 & -1 & -2 & -10 \\ 0 & 1 & 0 & -5 & -20 \\ 0 & 0 & 1 & 4 & 20 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right) $$ 我们将 $r_1$ 加 $r_3$ 得: $$ \left( \begin{array}{cccc|c} 1 & 0 & 0 & 2 & 10 \\ 0 & 1 & 0 & -5 & -20 \\ 0 & 0 & 1 & 4 & 20 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right) $$ 这个时候就可以转化为方程组了: $$ \begin{cases} x_1+2x_4=10\\ x_2-5x_4=-20\\ x_3+4x_4=20 \end{cases} $$ 于是对于任意的 $x_4$ 我们都可以把 $x_1$,$x_2$ 和 $x_3$ 表示出来。 $$ \begin{cases} x_1=10-2x_4\\ x_2=5x_4-20\\ x_3=20-4x_4 \end{cases} $$ 即这个方程组的通解。 ## 后记 以上是下午数学老师讲的内容,花了一晚上整理,觉得好的话可以点赞再走哦。