以矩阵的视角解多元一次方程组——矩阵消元

时间:2024-10-05 07:24:01

x + 2 y + z = 2 x +2y+z=2 x+2y+z=2
3 x + 8 y + z = 12 3x+8y+z=12 3x+8y+z=12
4 y + z = 2 4y+z=2 4y+z=2

上面这是一个三元一次方程组,相信大家都知道如何解,现在这里给出另外一种视角,即从矩阵的角度来解方程组,从而学习在后面的线性代数学习中会用到的一种思维——矩阵消元


如果你是来学线性代数的,强烈建议你去看看我的上一篇博文,着重理解线性组合这一概念,这对你是否能明白这篇博文,以及未来讲解线性代数的博文尤为重要。

如果仅是来学用矩阵来解方程组,暂时不需深究线性组合这一概念,中途有一些关于线性代数的文字可以适当跳过,只看最后用矩阵解决方程组的文字,等未来需要学线代时在回来看看这篇博文吧。


好了,回归正题。首先,要知道,矩阵消元的逻辑是从普通方法消元化生而来的。所以,我们便由普通消元的逻辑过渡到矩阵消元。

以上述方程组为例,普通的消元思路大致是将第一行乘上一个系数然后与其他行相增减来达到消元的目的。

而这样的做法不就是相当于是这一个方程组行与行之间的线性组合吗?
暂且停下来,好好品味一下这句话吧,是否有一种豁然开朗,让你对接下来该做什么有一种大致的感觉了?不管有没有,明白这句话后,随我一同来看接下来的解法吧。

既然提到行与行的线性组合,那我们便将这个方程组写成矩阵的形式吧。

1 2 1 3 8 1 0 4 2   \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \ 130284112 

以(1,1)的元素为主元(第一行不变),我们将第二行减去第一行的三倍,这个过程得到的正是第一行与第二行的一个线性组合,这个过程我们又可以用矩阵乘矩阵来替代。如下:

[ 1 0 0 − 3 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 2 ] = [ 1 2 1 0 2 − 2 0 4 2 ] (1) \left[ \begin{matrix} 1 & 0 & 0\\ -3 & 1 & 0\\ 0 & 0 & 1 \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 2 \end{matrix} \right] \tag{1} 130010001 130284112 = 100224122 (1)

可以看到,第二行经过矩阵乘法后已经消去了一个未知数(2,1)。我们这时候用同样的手法处理第二行与第三行。

[ 1 0 0 0 1 0 0 − 2 1 ] [ 1 2 1 0 2 − 2 0 4 2 ] = [ 1 2 1 0 2 − 2 0 0 6 ] (1) \left[ \begin{matrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & -2 & 1 \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 2 \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 6 \end{matrix} \right] \tag{1} 100012001 100224122 = 100220126 (1)

此时我们就得到了一个一个上三角矩阵(正对角线以下的元素为0)U。


然而,此时能够明白,我们的方程组只处理了左边的未知数部分,没有代入左边的常数,无法解方程组。
因此,这里我们引入新的概念,增广炬阵,如下:

∣ 1 2 1 2 3 8 1 12 0 4 2 2 ∣ \left| \begin{array}{lcc|c} {1}&{2}&{1}&{2}\\ {3}&{8}&{1}&{12}\\ {0}&{4}&{2}&{2} \end{array} \right| 1302841122122

我们在处理矩阵时将左边添加的部分当做单独的列向量来处理,如第一次操作:第二行减去三倍第一行,即为
12 − 3 × 2 = 6 12-3\times2=6 123×2=6
第一次操作后矩阵变为:

∣ 1 2 1 2 0 2 − 2 6 0 4 2 2 ∣ \left| \begin{array}{lcc|c} {1}&{2}&{1}&{2}\\ {0}&{2}&{-2}&{6}\\ {0}&{4}&{2}&{2} \end{array} \right| 100224122262


同理,两次操作后矩阵最终为

∣ 1 2 1 2 0 2 − 2 6 0 0 6 − 10 ∣ \left| \begin{array}{lcc|c} {1}&{2}&{1}&{2}\\ {0}&{2}&{-2}&{6}\\ {0}&{0}&{6}&{-10} \end{array} \right| 100220