专栏文章

浅谈多元线性方程组

算法·理论参与者 8已保存评论 10

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
10 条
当前快照
1 份
快照标识符
@mlia4myw
此快照首次捕获于
2026/02/12 01:04
上周
此快照最后确认于
2026/02/19 01:12
14 小时前
查看原文
本文章同步发表在博客园
我们在做题时,经常会遇到这样的题:
题目
求方程组
{2x1+x2+x3+x4=1x1+2x2+x3+x4=2x1+x2+2x3+x4=3x1+x2+x3+2x4=4\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}
这时的你欣喜若狂,于是把上面的四个式子相加轻松解出了方程组的解
{x1=1x2=0x3=1x4=2\begin{cases} x_1=-1\\ x_2=0\\ x_3=1\\ x_4=2 \end{cases}
但是我们换一个方程组
{x1+x2+x3+x4=10x1+2x2+3x3+4x4=302x1+x2+x3+3x4=204x1+4x2+5x3+8x4=60\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}
你就不会做了,今天我们就一起来探讨一下多元线性方程组的做法。

多元齐次线性方程组

首先解释一下这个名称。
  • 多元:即多个未知数。
  • 齐次:次数均相等。
  • 线性:未知数次数为 11
举一个例子:
{x1+x2+x3+x4=0x1+2x2+3x3+4x4=02x1+x2+x3+3x4=02x2+3x3+4x4=0\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}
这个怎么解呢?读者可以先自己尝试一下用消元的方法解一下,下面介绍一种做法。
我们可以把系数放在矩阵中:
(1111123421130234)\begin{pmatrix} 1 & 1 & 1 & 1\\ 1 & 2 & 3 & 4\\ 2 & 1 & 1 & 3\\ 0 & 2 & 3 & 4 \end{pmatrix}
原方程就相当于两个矩阵做乘法,即
(1111123421130234)×(x1x2x3x4)=0\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
上面的 00 相当于 00 矩阵。
我们平时解方程组是可以随便相加减的,所以我们也可以对于这个矩阵进行行的加减乘除,但是列不行。
我们期望这个方程组是有唯一解的,即目标矩阵为
(1000010000100001)\begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}
设第 ii 行是 rir_i,第 jj 列是 cjc_j,第 ii 行第 jj 列的数为 aija_{ij}
此时我们的 a11a_{11} 已经达到了预期。
我们用 r2r_2r1r_1 得到
(1111012321130234)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 2 & 1 & 1 & 3\\ 0 & 2 & 3 & 4 \end{pmatrix}
此时我们的 a21a_{21}a22a_{22} 都已经达到了预期,我们考虑把 r3r_3 减去 2r12r_1
(1111012301110232)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & -1 & -1 & 1\\ 0 & 2 & 3 & 2 \end{pmatrix}
c1c_1 的建设已经完成,接下来我们建设 c2c_2
我们把 r3r_3 加上 r2r_2 得到
(1111012300140232)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 2 & 3 & 2 \end{pmatrix}
r4r_4 减去 2r22r_2 得到
(1111012300140014)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 0 & -1 & -4 \end{pmatrix}
r4r_4 加上 r3r_3 得到
(1111012300140000)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 2 & 3\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix}
我们发现 r4r_4 全都变成了 00,说明这是一个不定方程组,我们只能把这个方程组的通解求出来。
r2r_2 减去 2r32r_3 得到
(1111010500140000)\begin{pmatrix} 1 & 1 & 1 & 1\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix}
(1103010500140000)\begin{pmatrix} 1 & 1 & 0 & -3\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix}
再小小的处理一下 c2c_2,我们将 r1r_1 减去 r2r_2 得到
(1002010500140000)\begin{pmatrix} 1 & 0 & 0 & 2\\ 0 & 1 & 0 & -5\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 \end{pmatrix}
经过适当的变形,我们可以把它变成方程组了
{x1+2x4=0x25x4=0x3+4x4=0\begin{cases} x_1+2x_4=0\\ x_2-5x_4=0\\ x_3+4x_4=0 \end{cases}
这时我们就可以用任意的 x4x_4x1x_1x2x_2x3x_3 表示出来,于是通解:
{x1=2x4x2=52x4x3=4x4\begin{cases} x_1=-2x_4\\ x_2=\dfrac{5}{2} x_4\\ x_3=-4x_4 \end{cases}
这样我们就求出了这样一个通解,但是你会发现齐次的方程组一定有 i,ai=0\forall i,a_i=0 这个解,所以你实在不会可以把这个解写上,不知道阅卷老师会不会给分。

多元非齐次线性方程组

什么叫非齐次呢?就是等式右边不为 00,其他的都一样。
举个例子,回收开头,这个就是多元非齐次线性方程组:
{x1+x2+x3+x4=10x1+2x2+3x3+4x4=302x1+x2+x3+3x4=204x1+4x2+5x3+8x4=60\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}
我们来解一下这个多元非齐次方程组。

如果是多元齐次方程组,那么右边的一串 00 可以忽略,但是这里不行,所以我们在放入矩阵时要把常数项放在最后一列,也就是:
(111110123430211320445860)\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}
目标矩阵:
(1000?0100?0010?0001?)\begin{pmatrix} 1 & 0 & 0 & 0 \bigm| & ? \\ 0 & 1 & 0 & 0 \bigm| & ? \\ 0 & 0 & 1 & 0 \bigm| & ? \\ 0 & 0 & 0 & 1 \bigm| & ? \end{pmatrix}
开始操作:
我们将 r2r_2r1r_1
(111110012320211320445860)\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}
我们将 r3r_32r12r_1
(11111001232001110445860)\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}
我们将 r4r_44r14r_1
(11111001232001110001420)\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}
于是我们完成了 c1c_1 的操作,现在进行 c2c_2 的整改。
我们将 r3r_3r2r_2
(111110012320001420001420)\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}
我们将 r1r_1r2r_2
(101210012320001420001420)\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)
现在完成了 c2c_2 的整改,注意到 c3c_3c4c_4 是完全相同的,我们相减会得到一行 00,很遗憾,这个方程组变成了不定方程组。
还是先相减:
(10121001232000142000000)\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)
接下来不管 r4r_4,来处理 c3c_3
我们将 r2r_22r32r_3 得:
(10121001052000142000000)\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)
我们将 r1r_1r3r_3 得:
(10021001052000142000000)\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)
这个时候就可以转化为方程组了:
{x1+2x4=10x25x4=20x3+4x4=20\begin{cases} x_1+2x_4=10\\ x_2-5x_4=-20\\ x_3+4x_4=20 \end{cases}
于是对于任意的 x4x_4 我们都可以把 x1x_1x2x_2x3x_3 表示出来。
{x1=102x4x2=5x420x3=204x4\begin{cases} x_1=10-2x_4\\ x_2=5x_4-20\\ x_3=20-4x_4 \end{cases}
即这个方程组的通解。

后记

以上是下午数学老师讲的内容,花了一晚上整理,觉得好的话可以点赞再走哦。

评论

10 条评论,欢迎与作者交流。

正在加载评论...