(邱维声)高等代数课程笔记:解线性方程组的矩阵消元法

news/2024/2/28 0:19:35

1.1 解线性方程组的矩阵消元法

\quad前面说过,高等代数实质上是在解决数个大问题,线性方程组的求解问题 是高等代数中的第一个大问题。本节将介绍线性方程组的一种解法——矩阵消元法。

\quad对于求解线性方程组,在中学阶段,我们已经学习过 加减消元法 以及 代入消元法。这两种消元法对于求解方程个数较多的方程组来说太过随意(每一步能消元就行,两种方法任意用)。我们期望能够找到一种更加规范、统一的方法,使得可以使用计算机进行处理,这就是本节所要介绍的 矩阵消元法

\quad结合中学的数学知识,很容易对 例 1 作如下求解。

例 1

{x1+3x2+x3=23x1+4x2+2x3=9−x1−5x2+x3=102x1+7x2+x3=1\begin{cases} x_{1} + 3 x_{2} + x_{3} = 2 \\ 3 x_{1} + 4 x_{2} + 2 x_{3} = 9 \\ - x_{1} - 5 x_{2} + x_{3} = 10 \\ 2 x_{1} + 7 x_{2} + x_{3} = 1 \end{cases} x1+3x2+x3=23x1+4x2+2x3=9x15x2+x3=102x1+7x2+x3=1

解:

\quad对上述方程组中的方程组依次标序: ①、②、③、④。

\quad作如下操作:② + ① x (-3)、③ + ① x 1、④ + ① x (-2) 得:

{x1+3x2+x3=2−5x2−x3=3−2x2+5x3=12x2−x3=−3\begin{cases} \begin{aligned} x_{1} + 3 x_{2} + x_{3} &= 2 \\ -5 x_{2} - x_{3} &= 3 \\ -2 x_{2} + 5 x_{3} &= 12 \\ x_{2} - x_{3} &= -3 \end{aligned} \end{cases} x1+3x2+x35x2x32x2+5x3x2x3=2=3=12=3

\quad为了方便处理,调换 (②,④) 得:

{x1+3x2+x3=2x2−x3=−3−2x2+5x3=12−5x2−x3=3\begin{cases} \begin{aligned} x_{1} + 3 x_{2} + x_{3} &= 2 \\ x_{2} - x_{3} &= -3 \\ -2 x_{2} + 5 x_{3} &= 12 \\ -5 x_{2} - x_{3} &= 3 \end{aligned} \end{cases} x1+3x2+x3x2x32x2+5x35x2x3=2=3=12=3

\quad作如下操作:③ + ② x 2、④ + ② x 5 得:

{x1+3x2+x3=2x2−x3=−33x3=6−6x3=12\begin{cases} \begin{aligned} x_{1} + 3 x_{2} + x_{3} &= 2 \\ x_{2} - x_{3} &= -3 \\ 3 x_{3} &= 6 \\ -6 x_{3} &= 12 \end{aligned} \end{cases} x1+3x2+x3x2x33x36x3=2=3=6=12

\quad作如下操作:④ + ③ x 2、③ x (1/3) 得:

{x1+3x2+x3=2x2−x3=−3x3=2\begin{cases} \begin{aligned} x_{1} + 3 x_{2} + x_{3} &= 2 \\ x_{2} - x_{3} &= -3 \\ x_{3} &= 2 \end{aligned} \end{cases} x1+3x2+x3x2x3x3=2=3=2

\quad代入消元,将 x3=2x_{3} = 2x3=2 代入 ② 可得 x2=−1x_{2} = -1x2=1,再将 x2=−1,x3=2x_{2} = -1,x_{3} = 2x2=1,x3=2 代入 ① 可得 x1=3x_{1} = 3x1=3.

\quad综上,方程组的解为:

{x1=3x2=−1x3=2\begin{cases} x_{1} = 3 \\ x_{2} = -1 \\ x_{3} = 2 \end{cases} x1=3x2=1x3=2

#

\quad可以看出,在 例 1 的求解过程中,实质上只是进行了系数的运算,未知量的作用仅为标明次序,并未参与运算。

\quad 下面,我们用 增广矩阵 表示各个过程。

(13123429−1−54102711)→②+①×(−3)③+①×1④+①×(−2)(13120−5−130−251201−1−3)→(②,④)(131201−1−30−25120−5−1−3)→③+②×2④+②×5(131201−13003600−6−12)→④+③×2(131201−1300360000)\left( \begin{matrix} 1& 3& 1& 2\\ 3& 4& 2& 9\\ -1& -5& 4& 10\\ 2& 7& 1& 1\\ \end{matrix} \right) \xrightarrow{\begin{aligned} &②+①\times \left( -3 \right)\\ &③+①\times 1\\ &④+①\times \left( -2 \right)\\ \end{aligned}}\left( \begin{matrix} 1& 3& 1& 2\\ 0& -5& -1& 3\\ 0& -2& 5& 12\\ 0& 1& -1& -3\\ \end{matrix} \right) \xrightarrow{\left( ②,④ \right)}\left( \begin{matrix} 1& 3& 1& 2\\ 0& 1& -1& -3\\ 0& -2& 5& 12\\ 0& -5& -1& -3\\ \end{matrix} \right) \xrightarrow{\begin{array}{c} ③+②\times 2\\ ④+②\times 5\\ \end{array}}\left( \begin{matrix} 1& 3& 1& 2\\ 0& 1& -1& 3\\ 0& 0& 3& 6\\ 0& 0& -6& -12\\ \end{matrix} \right) \xrightarrow{④+③\times 2}\left( \begin{matrix} 1& 3& 1& 2\\ 0& 1& -1& 3\\ 0& 0& 3& 6\\ 0& 0& 0& 0\\ \end{matrix} \right) 13123457124129101+×(3)+×1+×(2)10003521115123123(,)10003125115123123+×2+×510003100113623612+×21000310011302360

\quad 根据最后一个矩阵,列出与之对应的线性方程组:

(131201−1300360000)⟷{x1+3x2+x3=2x2−x3=−33x3=6.\left( \begin{matrix} 1& 3& 1& 2\\ 0& 1& -1& 3\\ 0& 0& 3& 6\\ 0& 0& 0& 0\\ \end{matrix} \right) \longleftrightarrow \begin{cases} \begin{aligned} x_1+3x_2+x_3&=2\\ x_2-x_3&=-3\\ 3x_3&=6. \end{aligned}\end{cases} 1000310011302360x1+3x2+x3x2x33x3=2=3=6.

\quad 可以抽象出 “阶梯形矩阵” 的概念。

阶梯形矩阵:满足以下条件的矩阵称为 阶梯形矩阵

  • 000 行都在下方;
  • 主元(首个非 000 元)的列指标随着行指标的增加而严格增大。

\quad 若对 例 1 得到的 阶梯形矩阵 继续 “操作”,则有:

(131201−1300360000)→②+③×1①+③×(−1)(1300010−100120000)→①+②×(−3)(1003010−100120000)\left( \begin{matrix} 1& 3& 1& 2\\ 0& 1& -1& 3\\ 0& 0& 3& 6\\ 0& 0& 0& 0\\ \end{matrix} \right) \xrightarrow{\begin{aligned} &② + ③\times 1 \\ &① + ③\times (-1) \end{aligned}} \left( \begin{matrix} 1 & 3 & 0 & 0\\ 0 & 1 & 0 & -1\\ 0 & 0 & 1 & 2\\ 0 & 0 & 0 & 0 \end{matrix}\right) \xrightarrow{① + ②\times (-3) } \left( \begin{matrix} 1 & 0 & 0 & 3\\ 0 & 1 & 0 & -1\\ 0 & 0 & 1 & 2\\ 0 & 0 & 0 & 0 \end{matrix}\right) 1000310011302360+×1+×(1)1000310000100120+×(3)1000010000103120

\quad 根据最后一个矩阵,列写出与之对应的线性方程组:

(1003010−100120000)⟷{x1=3x2=−1x3=2\left( \begin{matrix} 1 & 0 & 0 & 3\\ 0 & 1 & 0 & -1\\ 0 & 0 & 1 & 2\\ 0 & 0 & 0 & 0 \end{matrix}\right) \longleftrightarrow \begin{cases} x_1 = 3 \\ x_{2} = -1 \\ x_{3} = 2 \end{cases} 1000010000103120x1=3x2=1x3=2

可以看到,该方程组实质上就是原方程组的解!

\quad 可以抽象出 “简化行阶梯形矩阵” 的概念。

简化行阶梯形矩阵:满足以下条件的矩阵称为 简化行阶梯形矩阵

  • 主元全为 111
  • 主元所在列的其余元素全为 000
  • 同时又是一个阶梯形矩阵。

\quad 总结一下,上面所谓的“操作” 涉及到了 333 种变换:

  • 一行的倍数加到另一行上;
  • 互换两行的未知;
  • 一行乘以一个非零数。

我们称这 333 种操作为 矩阵的初等行变换

\quad对应地,可定义线性方程组地初等行变换。显然,经过初等行变换后的线性方程组与原方程组同解(可以自己验证)。从而:矩阵的初等行变换得到的方程组与原方程组同解!

\quad 现在,可以对求解线性方程组的矩阵消元法作一下总结:

  1. 写出线性方程组对应的增广矩阵;
  2. 使用初等行变换将增广矩阵化为简化行阶梯形矩阵;
  3. 从简化行阶梯形矩阵中就可以看出原方程组是否有解。

作业:思考与阅读;上册 P12~P15:例 1,例 4;习题1.1:1, 2.

参考

  • 邱维声. 高等代数课程.

http://www.ppmy.cn/news/28609.html

相关文章

【算法设计-分治】快速幂与龟速乘

文章目录1. 快速幂2. 龟速乘3. 快速幂取模4. 龟速乘取模5. 快速幂取模优化1. 快速幂 算法原理: 计算 311: 311 (35)2 x 335 (32)2 x 332 3 x 3仅需计算 3 次,而非 11 次 计算 310: 310 (35)235 (32)2 x 332 3 x 3仅需计算…

【现在努力还不晚】--MySQL数据库的数据模型

目录 1、关系型数据库(RDBMS) 特点 2、数据模型 在学习MySQL之前要了解一下数据库的数据模型,我们就知道在MySQL当中,数据是如何存储的,我们了解一下概念! 1、关系型数据库(RDBMS&#xff0…

2023年最新qq空间说说怎么全部删除_QQ空间说说如何批量删除

2023年最新QQ空间自动删除说说_2023批量删除QQ空间说说插件小工具_QQ空间如何一次性批量删除说说 一千多条说说怎么删?QQ空间说怎么批量删除_怎样把发的空间说说全删了 使用谷歌浏览器插件,一键安装之后,就可以实现「自动删除」和「手动批量…

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序) 目录 时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)预测结果评价指标基本介绍完整程序参考资料预测结果 评价指标 训练集数据的R2为:0.99302 测试集数据的R2为&…

《NFL橄榄球》:旧金山49人·橄榄1号位

旧金山四九人(San Francisco 49ers,又译旧金山淘金者) 是美国全国橄榄球联盟球队。成立于1946年,最初作为全美橄榄球联合会(AAFC)的一员参加比赛,后于1950年与克利夫兰布朗一同加入由美国橄榄球联合会合并而成的NFL。现任主教练为…

一条 SQL 查询语句是如何执行的?

MySQL是典型的C/S架构(客户端/服务器架构),客户端进程向服务端进程发送一段文本(MySQL指令),服务器进程进行语句处理然后返回执行结果。 问题来了。服务器进程对客户端发送的请求究竟做了什么处理呢&#…

ChatGPT提高你日常工作的五个特点,以及如何使用它来提高代码质量

ChatGPT已经完全改变了代码开发模式。然而,大多数软件开发者和数据专家们仍然不使用ChatGPT来完善——并简化他们的工作。 这就是我们在这里列出提升日常工作效率和质量的5个不同的特点的原因。 让我们一起来看看在日常工作中如何使用他们。 警告:不要…

【3】MyBatis+Spring+SpringMVC+SSM整合一套通关

三、SpringMVC 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体…

[蓝帽杯 2021]One Pointer PHP

知识点&#xff1a;php 数组整型溢出&#xff0c;open_basedir 绕过分析 利用数组整型溢出绕过&#xff0c;因为PHP 会对溢出的数字处理为 float 类型。 <?php include "user.php"; if($userunserialize($_COOKIE["data"])){$count[$user->count]…

第三节 流程控制语句

流程控制语句 顺序结构 分支结构 if分支结构&#xff1a; 格式1: if(条件表达式){ 代码 } 格式2&#xff1a; if(条件表达式){ 代码 }else{ 代码 } 格式3&#xff1a; if(条件表达式){ 代码 }else if&#xff08;&#xff09;{ 代码 }else if&#xff08;&#xff09;{ 代码…

【数据结构】队列的接口实现(附图解和源码)

队列的接口实现&#xff08;附图解和源码&#xff09; 文章目录队列的接口实现&#xff08;附图解和源码&#xff09;前言一、定义结构体二、接口实现&#xff08;附图解源码&#xff09;1.初始化队列2.销毁队列3.队尾入队列4.判断队列是否为空5.队头出队列6.获取队列头部元素7…

如何查看Spring Boot各版本的变化

目录 1.版本 2.基础特性和使用 3.新增特性和Bug修复 1.版本 打开Spring官网&#xff0c;点进Spring Boot项目我们会发现在不同版本后面会跟着不同的标签&#xff1a; 这些标签对应不同的版本&#xff0c;其意思如下&#xff1a; GA正式版本&#xff0c;通常意味着该版本已…

实践IC-GVINS: 以惯导为核心的GNSS-Visual-INS组合导航系统

视觉导航系统对环境比较敏感&#xff0c;受到光照变化、重复纹理、动态物体等影响&#xff1b;惯性导航系统(INS)则完全自主工作&#xff0c;不受外部环境影响&#xff0c;能够实现连续、高频的自主导航&#xff0c;但其误差发散较快。两者组合能够取长补短&#xff0c;形成视觉…

【C++】map和set的封装(红黑树)

map和set的封装一、介绍二、stl源码剖析三、仿函数获取数值四、红黑树的迭代器五、map的[]5.1 普通迭代器转const迭代器六、set源码七、map源码八、红黑树源码一、介绍 首先要知道map和set的底层都是用红黑树实现的 【数据结构】红黑树 set只需要一个key&#xff0c;但是map既…

JAVA中 throw 和 throws 的区别含案例

JAVA中 throw 和 throws 的区别含案例 在 Java 中&#xff0c;throw 和 throws 是两个关键字&#xff0c;它们用于处理异常。 throw 关键字用于抛出一个异常对象。一旦抛出异常&#xff0c;程序将停止执行当前方法的剩余代码&#xff0c;并尝试寻找与该异常匹配的 catch 块来…

Java反射系列--方法大全

原文网址&#xff1a;Java反射系列--方法大全_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java反射相关的方法。 Class相关方法 方法 说明 getName() 返回String形式的该类的名称。 newInstance() 根据某个Class对象产生其对应类的实例&#xff0c;它调用的是此类的默认构…

【手撕面试题】JavaScript(高频知识点二)

目录 面试官&#xff1a;请你谈谈JS的this指向问题 面试官&#xff1a;说一说call apply bind的作用和区别&#xff1f; 面试官&#xff1a;请你谈谈对事件委托的理解 面试官&#xff1a;说一说promise是什么与使用方法&#xff1f; 面试官&#xff1a;说一说跨域是什么&a…

【笔记】C# 数据类型转换

文章目录前言类型转换的概念1&#xff0c;隐式转换2&#xff0c;显式转换3&#xff0c;程序类转换结语前言 &#x1f33b; 大家好啊&#xff0c;我是writer桑&#xff0c;本章是关于 C# 数据类型转换的一个总结&#xff0c;其中包含隐式、显示转换和程序类转换&#xff0c;方便…

微服务框架-学习笔记

1 微服务架构介绍 1.1 系统架构演变历史 单体架构垂直应用架构&#xff1a;按照业务线垂直划分分布式架构&#xff1a;抽出业务无关的公共模块SOA架构&#xff1a;面向服务微服务架构&#xff1a;彻底的服务化1.2 微服务架构概览 1.3 微服务架构核心要素 服务治理&#xff1…

Benchmark测试——fio——源码分析

1. main 1.1 parse_options() 解析选项&#xff0c;更新数据结构 1.1.1 fio_init_options() 1.1.2 fio_test_cconv(&def_thread.o) <cconv.c> 1.1.2.1 convert_thread_options_to_cpu() 传递options给数据结构 1.1.3 parse_cmd_line() switch语句多路选择&am…
最新文章