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

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} 1−30010001 130284112 = 1002241−22 (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} 10001−2001 1002241−22 = 1002201−26 (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 12−3×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\| 1002241−22262 *** ** * ** *** 同理,两次操作后矩阵最终为 ∣ 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\| 1002201−2626−10 而这时就可以将这个上三角矩阵向上逐级求解,即6z=-10等等。 ### 总结 矩阵消元就是如上内容了,解方程组只是其中一种用法,后面我们求逆时同样能用到消元矩阵。

相关推荐
3GPP仿真实验室4 小时前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
Σίσυφος19005 小时前
PCL 法向量估计-PCA邻域点(经典 kNN 协方差)的协方差矩阵
人工智能·线性代数·矩阵
_OP_CHEN17 小时前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
芷栀夏18 小时前
CANN ops-math:从矩阵运算到数值计算的全维度硬件适配与效率提升实践
人工智能·神经网络·线性代数·矩阵·cann
种时光的人1 天前
CANN仓库核心解读:catlass夯实AIGC大模型矩阵计算的算力基石
线性代数·矩阵·aigc
Zfox_1 天前
CANN Catlass 算子模板库深度解析:高性能矩阵乘(GEMM)原理、融合优化与模板化开发实践
线性代数·矩阵
lbb 小魔仙2 天前
面向 NPU 的高性能矩阵乘法:CANN ops-nn 算子库架构与优化技术
线性代数·矩阵·架构
空白诗2 天前
CANN ops-nn 算子解读:大语言模型推理中的 MatMul 矩阵乘实现
人工智能·语言模型·矩阵
劈星斩月2 天前
线性代数-3Blue1Brown《线性代数的本质》特征向量与特征值(12)
线性代数·特征值·特征向量·特征方程
池央2 天前
ops-nn 算子库中的数据布局与混合精度策略:卷积、矩阵乘法与 RNN 的优化实践
rnn·线性代数·矩阵