当前位置: 首页 > article >正文

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

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| 1002201262610

而这时就可以将这个上三角矩阵向上逐级求解,即6z=-10等等。

总结

矩阵消元就是如上内容了,解方程组只是其中一种用法,后面我们求逆时同样能用到消元矩阵。


http://www.kler.cn/news/327877.html

相关文章:

  • 需求6:如何写一个后端接口?
  • 使用JavaScript实现动态表格
  • 【MYSQL】授权远程连接的用户
  • Web认识 -- 第一课
  • 使用AT command 修改手机APN
  • Python Pandas轻松实现函数式编程
  • springboot+neo4j demo
  • jQuery UI 工作原理
  • 基于微信小程序的旅游助手的设计与实现(源码+定制+文档讲解)
  • Android常用C++特性之std::make_unique
  • 【机器学习基础】Transformer学习
  • CATIA风扇
  • 数据可视化分析系统-解锁企业信息的利器
  • 小徐影院:Spring Boot技术下的影院革新
  • SOMEIP_ETS_143: SD_Request_non_existing_ServiceID
  • 完整网络模型训练(一)
  • c语言实例
  • GWAS分析中显著位点如何注释基因:excel???
  • Ubuntu22.04安装VMware Tools
  • Autosar CP系列:传感器/执行器设计模式
  • Python机器学习:数据预处理与清洗的打开方式
  • wordpress Contact form 7发件人邮箱设置
  • 大数据、人工智能、云计算、物联网、区块链序言【大数据导论】
  • 【Linux】进程+权限管理+软硬链接+其他命令
  • 【网络安全】PII:接口未授权访问敏感数据
  • Leecode热题100-48.旋转图像
  • Java基础(Arrays工具类)(asList()方法)(详细)
  • SpringBoot实现社区医院数据集成解决方案
  • 【C++】I/O流的使用介绍
  • SpringCloud-Alibaba第二代微服务快速入门