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

线性代数笔记2--矩阵消元

0. 简介

矩阵消元

1. 消元过程

实例方程组
{ x + 2 y + z = 2 3 x + 8 y + z = 12 4 y + z = 2 \begin{cases} x+2y+z=2\\ 3x+8y+z=12\\ 4y+z=2 \end{cases} x+2y+z=23x+8y+z=124y+z=2
矩阵化
A = [ 1 2 1 3 8 1 0 4 1 ] X = [ x y z ] A= \begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix} \\ X= \begin{bmatrix} x\\y\\z \end{bmatrix} A= 130284111 X= xyz
B = [ 2 12 2 ] B= \begin{bmatrix} 2\\12\\2 \end{bmatrix} B= 2122
消元

[ 1 2 1 3 8 1 0 4 1 ] ⟶ ( 2 , 1 ) [ 1 2 1 0 2 − 2 0 4 1 ] ⟶ ( 3 , 2 ) [ 1 2 1 0 2 − 2 0 0 5 ] \begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix} \stackrel{(2,1)}{\longrightarrow} \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{bmatrix} \stackrel{(3,2)}\longrightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2\\ 0 & 0 & 5 \end{bmatrix} 130284111 (2,1) 100224121 (3,2) 100220125
回代
[ 2 12 2 ] ⟶ r o w 2 − 3 r o w 1 [ 2 6 2 ] ⟶ r o w 3 − 2 r o w 2 [ 2 6 − 10 ] \begin{bmatrix} 2 \\ 12 \\ 2 \end{bmatrix} \stackrel{row_2-3row_1}\longrightarrow \begin{bmatrix} 2 \\ 6 \\ 2 \end{bmatrix} \stackrel{row_3-2row_2}\longrightarrow \begin{bmatrix} 2 \\ 6 \\-10 \end{bmatrix} 2122 row23row1 262 row32row2 2610
求解
[ 1 2 1 0 2 − 2 0 0 5 ] [ x y z ] = [ 2 6 − 10 ] \begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2\\ 0 & 0 & 5 \\ \end{bmatrix} \begin{bmatrix} x \\ y \\z \end{bmatrix} =\begin{bmatrix} 2 \\ 6 \\ -10 \end{bmatrix} 100220125 xyz = 2610
结果
[ x y z ] = [ 2 1 − 2 ] \begin{bmatrix} x \\y \\z \end{bmatrix}= \begin{bmatrix} 2\\1 \\ -2 \end{bmatrix} xyz = 212

2. 消元矩阵

将上述消元的过程变为矩阵相乘的形式。

向量式思考
矩阵乘列向量
[ . . . . . . . . . ] [ x y z ] = [ x ∗ c o l 1 + y ∗ c o l 2 + z ∗ c o l 3 ] \begin{bmatrix} . & . & .\\ . & . & .\\ . & . & . \end{bmatrix} \begin{bmatrix}\ x \\ y\\ z \end{bmatrix}= \begin{bmatrix} x*col1 +y*col2 +z*col3 \end{bmatrix} .........  xyz =[xcol1+ycol2+zcol3]
行向量乘矩阵
[ x y z ] [ . . . . . . . . . ] = [ x ∗ r o w 1 + y ∗ r o w 2 + z ∗ r o w 3 ] \begin{bmatrix}\ x \ y\ z \end{bmatrix} \begin{bmatrix} . & . & .\\ . & . & .\\ . & . & . \end{bmatrix}= \begin{bmatrix} x*row1 \\+\\y*row2 \\+\\z*row3 \end{bmatrix} [ x y z] ......... = xrow1+yrow2+zrow3
一个矩阵左边乘一个单位矩阵并不改变其值
A = [ 1 2 1 3 8 1 0 4 1 ] = [ 1 0 0 0 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 1 ] A= \begin{bmatrix} 1 & 2 & 1\\ 3 & 8 & 1\\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 1\\ 3 & 8 & 1\\ 0 & 4 & 1 \end{bmatrix} A= 130284111 = 100010001 130284111
而做行的加减则可以
A = [ 1 2 1 3 8 1 0 4 1 ] A ′ = [ 1 0 0 − 3 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 1 ] = [ 1 2 1 0 2 − 2 0 4 1 ] A= \begin{bmatrix} 1 & 2 & 1\\ 3 & 8 & 1\\ 0 & 4 & 1 \end{bmatrix}\\ A'= \begin{bmatrix} 1 & 0 &0\\ -3 & 1 & 0\\ 0 &0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 2 & 1\\ 3 & 8 & 1\\ 0 & 4 &1 \end{bmatrix}=\\ \begin{bmatrix} 1 & 2 &1 \\ 0 & 2 & -2\\ 0& 4 & 1 \end{bmatrix} A= 130284111 A= 130010001 130284111 = 100224121
实际上这个过程就是,我们在之前的消元过程中的第二行减去三倍第一行的过程。我们继续下去将这个矩阵对角化。
A ′ ′ = [ 1 0 0 0 1 0 0 − 2 1 ] A ′ = [ 1 0 0 0 1 0 0 − 2 1 ] [ 1 2 1 0 2 − 2 0 4 1 ] = [ 1 2 1 0 2 − 2 0 0 5 ] A''= \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & -2 & 1 \end{bmatrix} A'\\= \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & -2 & 1 \end{bmatrix} \begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{bmatrix}\\= \begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2\\ 0 & 0 & 5 \end{bmatrix} A′′= 100012001 A= 100012001 100224121 = 100220125

我们令最后的上三角矩阵为
U = [ 1 2 1 0 2 − 2 0 0 5 ] U=\begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2\\ 0 & 0 & 5 \end{bmatrix} U= 100220125
两个变换矩阵为
E 21 = [ 1 0 0 − 3 1 0 0 0 1 ] E 32 = [ 1 0 0 0 1 0 0 − 2 1 ] E_{21}=\begin{bmatrix} 1 & 0 &0\\ -3 & 1 & 0\\ 0 &0 & 1 \end{bmatrix} \\ E_{32}=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & -2 & 1 \end{bmatrix} E21= 130010001 E32= 100012001
E 32 ( E 21 A ) = U E_{32}(E_{21}A)=U E32(E21A)=U
而矩阵乘法满足结合律证明即
E 32 E 21 A = E 32 ( E 21 A ) E_{32}E_{21}A=E_{32}(E_{21}A) E32E21A=E32(E21A)
所以最终消元的过程变成了寻找矩阵E的过程
E = E 32 E 21 E=E_{32}E_{21} E=E32E21
这一过程。

3. 置换矩阵

在上述的消元矩阵中,我们并没有进行列的交换。那么如何进行交换呢?

我们知道在原矩阵基础左边乘单位矩阵,矩阵不会发生变化。
A = [ 1 2 3 4 ] = [ 1 0 0 1 ] [ 1 2 3 4 ] A= \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}=\ \begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[1324]= [1001][1324]

如何交换两行呢,将单位矩阵变形
A ′ = [ 0 1 1 0 ] [ 1 2 3 4 ] = [ 3 4 1 2 ] A'= \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 & 2\\ 3 & 4 \end{bmatrix}= \begin{bmatrix} 3 & 4\\ 1 & 2 \end{bmatrix} A=[0110][1324]=[3142]
推广到多行
A = [ 1 2 3 4 5 6 7 8 9 ] A= \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{bmatrix} A= 147258369

  • 行变换
    交换第一行和第三行
    A ′ = [ 0 0 1 0 1 0 1 0 0 ] [ 1 2 3 4 5 6 7 8 9 ] A'= \begin{bmatrix} 0 & 0 & 1\\ 0 & 1 & 0\\ 1 & 0 & 0 \end{bmatrix} \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} A= 001010100 147258369
    交换第一行和第二行
    A ′ ′ = [ 0 1 0 1 0 0 0 0 1 ] [ 1 2 3 4 5 6 7 8 9 ] A''= \begin{bmatrix} 0 & 1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} A′′= 010100001 147258369

所以交换任意两行,只需将单位矩阵中对应行 1 1 1的位置进行交换。

  • 列变换

在矩阵左边乘是对原矩阵行变换,而在矩阵右边则是列变换
交换矩阵两列
A = [ 1 2 3 4 ] A ′ = [ 1 2 3 4 ] [ 0 1 1 0 ] = [ 2 1 4 3 ] A= \begin{bmatrix} 1 & 2\\ 3 & 4 \end{bmatrix} \\ A'= \begin{bmatrix} 1 & 2\\ 3 & 4 \end{bmatrix} \begin{bmatrix} 0 & 1\\ 1 & 0 \end{bmatrix}= \begin{bmatrix} 2 & 1\\ 4 & 3 \end{bmatrix} A=[1324]A=[1324][0110]=[2413]

交换多列也是一样的效果
交换第 1 1 1 2 2 2
A = [ 1 2 3 4 5 6 7 8 9 ] A ′ = [ 1 2 3 4 5 6 7 8 9 ] [ 0 1 0 1 0 0 0 0 1 ] = [ 2 1 3 5 4 6 8 7 9 ] A= \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9\\ \end{bmatrix} \\ A'= \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9\\ \end{bmatrix} \begin{bmatrix} 0 & 1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 1\\ \end{bmatrix}= \begin{bmatrix} 2 & 1 & 3\\ 5 & 4 & 6\\ 8 & 7 & 9\\ \end{bmatrix} A= 147258369 A= 147258369 010100001 = 258147369

所以交换任意两列,只需将单位矩阵中对应行 1 1 1的位置进行交换。
与行交换的不同地方在于,矩阵乘的在右边了。

4. 矩阵的逆

A = [ 1 0 0 − 3 1 0 0 0 1 ] A − 1 = [ 1 0 0 3 1 0 0 0 1 ] A − 1 A = [ 1 0 0 3 1 0 0 0 1 ] [ 1 0 0 − 3 1 0 0 0 1 ] = [ 1 0 0 0 1 0 0 0 1 ] A= \begin{bmatrix} 1 & 0 & 0\\ -3 & 1 &0\\ 0 & 0 & 1 \end{bmatrix}\\ A^{-1}= \begin{bmatrix} 1 & 0 & 0\\ 3 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}\\ A^{-1}A= \begin{bmatrix} 1 & 0 & 0\\ 3 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix} \begin{bmatrix} 1 & 0 & 0\\ -3 & 1 &0\\ 0 & 0 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 &0\\ 0 & 0 & 1 \end{bmatrix} A= 130010001 A1= 130010001 A1A= 130010001 130010001 = 100010001

相关文章:

线性代数笔记2--矩阵消元

0. 简介 矩阵消元 1. 消元过程 实例方程组 { x 2 y z 2 3 x 8 y z 12 4 y z 2 \begin{cases} x2yz2\\ 3x8yz12\\ 4yz2 \end{cases} ⎩ ⎨ ⎧​x2yz23x8yz124yz2​ 矩阵化 A [ 1 2 1 3 8 1 0 4 1 ] X [ x y z ] A \begin{bmatrix} 1 & 2 & 1 \\ 3 & …...

透光力之珠——光耦固态继电器的独特特点解析

光耦固态继电器作为现代电子控制领域中的重要组件,以其独特的特点在工业、通信、医疗等多个领域得到广泛应用。本文将深入剖析光耦固态继电器的特点,揭示其在电子控制中的卓越性能。 光耦固态继电器的光电隔离技术 光耦固态继电器以其光电隔离技术而脱颖…...

C#系列-​​​​​​​EntityFrameworkCore.Transactions.Abstractions应用场景+实例(38)

EntityFrameworkCore.Transactions.Abstractions应用场景 EntityFrameworkCore.Transactions.Abstractions 并不是一个官方的或广泛认可的 NuGet 包名称。在 Entity Framework Core (EF Core) 中,事务管理通常是通过 DbContext 的内置方法来实现的,如 Sa…...

PMDG 737

在Simbrief中生成计划后下载两个文件 放到C:\Users\32497\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\packages\pmdg-aircraft-737(微软商店版本) 加油 先在飞行计划中查看计划燃油数量 MCDU中, AIRPLANE SEVICE 第二页, REQUEST FUEL TR…...

深入探索Midjourney:领航人工智能的新征程

深入探索Midjourney:领航人工智能的新征程 引言 在这个数据驱动、以技术创新为核心的时代,Midjourney以其独特的特性在人工智能领域中崭露头角。作为一款前沿的人工智能工具,它不仅重新定义了人机交互的方式,而且为各行各业提供…...

ChatGPT高效提问—prompt实践(漏洞风险分析-重构建议-识别内存泄漏)

ChatGPT高效提问—prompt实践(漏洞风险分析-重构建议-识别内存泄漏) 1.1 漏洞和风险分析 ChatGPT还可以帮助开发人员预测代码的潜在风险,识别其中的安全漏洞,而不必先运行它,这可以让开发人员及早发现错误&#xff0…...

【AIGC】Stable Diffusion 的提示词入门

一、正向提示词和反向提示词 Stable Diffusion 中的提示词通常用于指导用户对生成的图像进行控制。这些提示词可以分为正向提示词(Positive Prompts)和反向提示词(Negative Prompts)两类,它们分别影响图像生成过程中的…...

力扣---通配符匹配

题目描述: 给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 ? 和 * 匹配规则的通配符匹配: ? 可以匹配任何单个字符。 * 可以匹配任意字符序列(包括空字符序列)。 判定匹配成功的充要条件是&#xff…...

Rust 原生类型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、标量类型(scalar type)二、 复合类型(compound type)总结 前言 Rust 学习系列 ,rust中的原生类…...

09、全文检索 -- Solr -- SpringBoot 整合 Spring Data Solr (生成DAO组件 和 实现自定义查询方法)

目录 SpringBoot 整合 Spring Data SolrSpring Data Solr的功能(生成DAO组件):Spring Data Solr大致包括如下几方面功能:Query查询(属于半自动)代码演示:1、演示通过dao组件来保存文档1、实体类…...

C# CAD SelectionFilter下TypedValue数组

SelectionFilter是用于过滤AutoCAD实体的类,在AutoCAD中,可以使用它来选择具有特定属性的实体。构造SelectionFilter对象时,需要传入一个TypedValue数组,它用于定义选择规则。 在TypedValue数组中,每个元素表示一个选…...

python 爬虫篇(3)---->Beautiful Soup 网页解析库的使用(包含实例代码)

Beautiful Soup 网页解析库的使用 文章目录 Beautiful Soup 网页解析库的使用前言一、安装Beautiful Soup 和 lxml二、Beautiful Soup基本使用方法标签选择器1 .string --获取文本内容2 .name --获取标签本身名称3 .attrs[] --通过属性拿属性的值标准选择器find_all( name , at…...

第十二周学习报告

比赛 参加了一场 div 2 ,B 题,C 题没写出来,B 是一个排序去重+双指针,C题是要观察出一个数学结论(因为数据范围太大,我暴力做直接超时了) 排 6253 ,表现分是 998 &…...

Redis面试题整理(持续更新)

1. 缓存穿透? 缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致DB挂掉,这种情况大概率是遭到了攻击。 解决方案: …...

一周学会Django5 Python Web开发-Django5 Hello World编写

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计14条视频,包括:2024版 Django5 Python we…...

讲解用Python处理Excel表格

我们今天来一起探索一下用Python怎么操作Excel文件。与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种,其中我最喜欢用的是openpyxl,这…...

WEB APIs(1)

变量声明const(修饰常量) const优先,如react,基本const, 对于引用数据类型,可用const声明,因为储存的是地址 何为APIs 可以使用js操作HTML和浏览器 分类:DOM(文档对象…...

C++重新入门-基本输入输出

C 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这…...

【C语言】解析刘谦春晚魔术《守岁共此时》

今年的春晚上刘谦表演了魔术《守岁共此时》,台上台下积极互动(尤其是小尼),十分的有趣。刘谦老师的魔术不仅仅是他的高超手法,还有这背后的严谨逻辑,下面我们来用C语言来解析魔术吧。 源代码 #define _CRT…...

剑指offer——数值的整数次方

目录 1. 题目描述2. 一般思路2.1 有问题的思路2.2 全面但不高效的思路2.3 面试小提示 3. 全面又高效的思路 1. 题目描述 题目:实现函数 double Power(double base,int exponent),求base 的exponent 次方。不得使用库函数,同时不需要考虑大数问题 2. 一般…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

消息队列系统设计与实践全解析

文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...

ArcPy扩展模块的使用(3)

管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...