原文链接:Github-Funny_Mr_Zhi GNN_playground

参考:麻省理工公开课 线性代数 MIT Linear Algebra

Chapter1

可以带着问题去读,线性代数到底是什么,矩阵又是什么。尽管深入学习数学需要一种抽离出现实和直观理解的高度抽象思维,前期利用一些具体的现实映射示例有助于更好地理解和接受一套理论。

最终结论:矩阵分解A=LU是高斯消元求解n元方程组的抽象表示,高斯消元求解也是矩阵分解的一种具体现实映射,它帮助我们初步了解矩阵的妙用与可能的理解方式,为后续更广泛而奇妙的应用打下基础!(看到第一章最后就可以理解这句话,理解了这句话这一章也就学会了)

需要重点理解的用红色大字体标出

Class 1

Class 1:Explanation of the geometic equation system 方程组的几何解释

基本问题:N linear equations , n unknowns. 求解N个线性等式的n个未知数

三种视角

  • Row picture
  • column picture
  • matrix from

以二元一次方程组为例
2x−y=0−x+2y=3\begin{align} 2x - y = 0\\ -x+2y = 3 \end{align}2xy=0x+2y=3
用线性代数表示
[2−1−12][xy]=[03]\left[ \begin{array}{ccc} 2 & -1 \\ -1 & 2 \end{array} \right] \left[ \begin{array}{ccc} x\\y \end{array} \right] = \left[ \begin{array}{ccc} 0\\3 \end{array} \right][2112][xy]=[03]

  • Row picture看,是二维空间的两条直线,交点即为解
  • column picture看,是二维空间的两个向量,通过linear combination线性组合合成(0, 3)
  • Matrix form看,计算左侧结构,可以当成矩阵乘法,也可以分解为column picture求解

具体解法中,图解只能在低维度使用,高维度不够直观,会用系统性的消元法解。这里重点关注线性组合,也就是理解列视角的看问题的方式。

一个常见的基本问题:

  • Can I solve Ax = b for every b
  • or say: Do the linear combinations of the columns fill N-D space
  • 这个问题的答案与奇异\非奇异,可逆\非可逆有关

Class 2

elimination消元法解方程组

以三元一次方程组为例,一个自然的想法是利用消元法求解。

对应到矩阵上Ax=bAx = bAx=b,对角线上的元素称为主元,消元最终目的是主元下方的元素全部为0,且主元不为零。满足条件后,说明求解成功,通过回代可以求出所有变量的解。

  • 从第一行开始,若当前主元行的主元不为零,则讲该行整体叠加到下面的行,确保主元下方元素都为0
  • 若当前行主元为零,则可以交换主元行和其它行的位置,再次尝试第一步
  • 逐行处理,若对角线主元全部非零且主元下方全部为零(上三角矩阵),则求解成功
    • 回代:在所有过程中间矩阵右侧补充b列,称为argumented matrix增广矩阵
    • b同步叠加操作,结果从最后一行开始向上逐行解出变量值
  • 若无法满足上一步的要求,求解失败

该处理步骤可以和直接在方程组上进行消元的操作一一对应,直接目的就是消元。

从另一个角度理解:如何看待矩阵运算(一种行列变换)

|a b c| |x|      |a|     |b|     |c|
|d e f| |y| =  x |d| + y |e| + z |f|    //右侧列分解列叠加
|g h i| |z|      |g|     |h|     |i||a b c|    
|x y z| |d e f| = x |a b c| + y |d e f| + z |g h i|  //左侧行分解行叠加|g h i||a b|   |0 1| 
|c d|   |1 0|   等效于对左侧矩阵进行列置换,右侧变换矩阵进行列变换|0 1|   |a b|   
|1 0|   |c d|   等效于对右侧矩阵进行行置换,左侧变换矩阵进行行变换|1 0|   |a   b|    |a    b|
|2 1|   |-2a d|  = |0 d+2b|
等效于对右侧矩阵进行行变换,第一行不变,第二行为二倍第一行叠加过来

深入理解矩阵乘与行列变换的对应关系!

有了上面的理解,消元无非是行变换,也就是在A左侧不断乘上新的矩阵达到消元的目的。即消元过程可表示为Ex…(E1A)=UE_{x}\dots(E_{1}A) = UEx(E1A)=U 其中U为上三角矩阵。(这里注意,矩阵乘法有结合律,但没有交换律)

进一步可以思考逆矩阵的概念,从上面的理解角度,就是通过逆变换消除原来变换的影响

|1  0| |1   0| |a b|
|3  1| |-3  1| |c d|
以上两个左侧矩阵为逆变换,先是R2 = R2 - 3R1再是R2 = R2 + 3R1,还原回A

Class 3

  • Matrix mutiplication
  • Inverse of A
  • Gauss-Jordan find A−1A^{-1}A1

首先学习矩阵乘法的四种计算方式,结果是一样的,四种方式事实上从四个角度理解矩阵乘法

矩阵乘法

对于矩阵乘法AB=CAB = CAB=C

  • 方式一: Cij=(RowjofA)⋅(ColiofB)C_{ij} = (Row_j\quad of\quad A)\quad ·\quad ( Col_i\quad of\quad B)Cij=(RowjofA)(ColiofB)

Cij=∑k=1naikbkjC_{ij} = \sum_{k=1}^n a_{ik}b_{kj}Cij=k=1naikbkj

  • 方式二:C的每一列由A的列的线性组合得到,C的第k列由B的第K列与A矩阵定义的线性组合得到
  • 方式三:C的每一行由B的行的线性组合得到,C的第k行由A的第K行与B矩阵定义的线性组合得到
  • 方式四:C=∑k=1n((ColkofA)⋅(RowkofB))C = \sum_{k=1}^{n}((Col_k\quad of \quad A) · (Row_k\quad of\quad B))C=k=1n((ColkofA)(RowkofB))

这种理解方式是从多个视角观察矩阵乘法时到底发生了什么。
从AB角度看,可以拆分为行列乘、矩阵与列乘、行与矩阵乘、列行乘
从C角度看,可以认为是一次计算一个元素、一次计算一列,一次计算一行,一次计算整个矩阵的部分分量

矩阵的逆与Gauss-Jordan

对于一个矩阵A,定义A的逆为A−1A^{-1}A1
A−1A=I=AA−1A^{-1}A = I = AA^{-1}A1A=I=AA1

关注两个问题:A的逆是否存在,以及如何求A的逆(此时可以与解方程组联系起来)

定理:若能找到非零向量x使得,Ax=0Ax=0Ax=0,则A不可逆

反正法解释:若存在A的逆,Ax=0Ax=0Ax=0说明Ix=A−10=0Ix = A^{-1}0 = 0Ix=A10=0,若x非零显然矛盾,单位矩阵乘非零向量不可能为零。

Gauss-Jordan目的是一次解多个N元方程组

|1 3|  |a c| = |x y|
|2 7|  |b d|   |i j|    可以理解为解两组方程第一组是:
|1 3|  |a| = |x|
|2 7|  |b|   |i|        第二组由B和C的另外一列构成,省略解法为将原A和C拼接,写成增广矩阵|A C|
|1 3 x y|
|2 7 i j|
然后对左侧A部分进行消元
|1 3 x    y   |
|0 1 i-2x j-2y|         
以上是Guass做法,Jordan继续消除A对角线以外其它元素(矩阵内运算替代回代过程)
|1 0 -3i+7x -3j+7y|
|0 1 i-2x   j-2y  | 
这样就解出a, b和c, d了求逆是可以利用Gauss-jordan,令右侧C=I
|A I|进行Gauss-jordan计算求解
得到|I E|这里,由于EA=I,则可以得出E即为要求解的A的逆

到这里为止,线性代数可以看作对于AB=CAB = CAB=C中,知道任意两个矩阵,求另一个矩阵的范畴。

对于AB = Col of C,可以等效为求解一个N元方程。这是矩阵乘法和多元方程求解的对应关系。

通过矩阵分块和矩阵运算在等式两侧同时乘上一个矩阵,等式仍成立(以及矩阵运算分配律、结合律)可以通过一些有趣的方法实现系统性的计算过程。

理解Gauss-Jordan算法中用到的矩阵运算技巧,以及每一个运算过程对应的实际含义

Class4

  • 矩阵求逆和转置的公式
  • 矩阵分解 A = LU
  • 矩阵分解复杂度
  • 矩阵置换的组合与群

矩阵求逆和

(AB)−1=B−1A−1(1)(AB)^{-1} = B^{-1}A^{-1}\quad (1)(AB)1=B1A1(1)
前提是在A,B有逆。该公式较为容易理解,(AB)的逆应该与(AB)左乘右乘都为I, B−1A−1B^{-1}A^{-1}B1A1显然满足

(AT)−1=(A−1)T(2)(A^T)^{-1} = (A^{-1})^T\quad (2)(AT)1=(A1)T(2)
以式子(AB)T=BTAT(AB)^T = B^TA^T(AB)T=BTAT为基础,(A−1)TAT=(AA−1)T=I(A^{-1})^TA^T = (AA^{-1})^T = I(A1)TAT=(AA1)T=I,即ATA^{T}AT的逆为(A−1)T(A^{-1})^T(A1)T

矩阵分解

一种较为基础的分解:将A分解为L和上三角矩阵U

  • 在高斯消元法中,为了得到上三角矩阵UUU,使用E与A相乘得到U。
  • 通常,E可以表示为若干步骤的行变换(若A可解的话)
    • e.g.对3x3矩阵,E可分解为E32E31E21E_{32}E_{31}E_{21}E32E31E21,其中EijE_{ij}Eij表示E为在I的基础上,第i行j列非零的矩阵,即将j行叠加到i行以消除A中主元下方i行的元素的变换
  • 对于EA=UEA = UEA=U可以写成A=E−1UA = E^{-1}UA=E1U,这里E−1E^{-1}E1就是我们要求的L
  • 通常E−1E^{-1}E1写成若干(Eij)−1(E_{ij})^{-1}(Eij)1相乘的形式,若采用这种分开写的形式和行变换视角理解矩阵乘和求逆计算,求解L的整个过程不需要任何演算,全部心算即可完成。

以下为示例

以3x3矩阵为例
假设E = E32 E21 (A31天然为0, 简化说明过程)
不妨令|1 0 0| |1 0 0|
E = |0 1 0|*|4 1 0||0 3 1| |0 0 1|
则L = E32的逆 * E21的逆|1  0 0| |1  0 0|
L = |-4 1 0|*|0  1 0||0  1 1| |0 -3 1|  利用行变换思路理解求逆,直接加负号就行|1  0 0|
L = |-4 1 0||0 -3 1|  利用行变换思路求矩阵乘,很快

对于求L的过程,如果严格按照分解E的过程来写,并从行变换角度理解矩阵求逆和矩阵乘法。整个过程会很简单。因为过程中出现的所有矩阵求逆和矩阵乘法的结果从行变换的角度来看都可以一眼看出结果

由此再观察矩阵分解式子:A=LUA = LUA=LU。我们关注的就只是E代表的矩阵列表,得到这个列表后只需求逆,然后逆序相乘即可。

矩阵分解复杂度分析

每一次求加法或减法视为一次计算

对于n*n的矩阵

  • 第一次讲(1, 1)主元下的元素全部消为0,涉及下面(n-1)行的叠加计算,共(n*n-1)次计算,近似为n2n^2n2
  • 第二次为(n−1)2(n-1)^2(n1)2,后续以此类推
  • 总共需要n2+(n−1)2+…12n^2 + (n-1)^2 + \dots 1^2n2+(n1)2+12次计算,利用微积分知识可近似为1/3n31/3n^31/3n3

该矩阵分解的过程事实上是在模拟高斯消元的过程,对于右侧b的变化其复杂度可以近似为n2n^2n2

矩阵置换的组合与群

对于一个n*n的矩阵,行(列)置换共有n(n-1)种可能

由于置换组合已经覆盖了所有可能的置换方式,所有置换组合相乘或取逆,其结果仍是一种置换,也就仍是置换的一种。这种不论如何计算结果仍在原先集合内的性质,比较类似群的概念。

第一章小结

至此第一章完结,从最开始的解n元方程组入手,逐步引入了矩阵的概念

认识矩阵有多种方式,矩阵也有很多奇妙的性质。通过矩阵的运算,也可以理解为矩阵的变换,我们从一个完全不同的角度尝试了n原方程组的求解。基本的矩阵分解的一种形式(A = LU)事实上模拟了高斯消元的过程,但整个过程种只包含非常简单的矩阵运算(或者更直观一点说是变换)。

本质上我们做的事还是求解n元方程组,但是矩阵用一种高度概括和抽象的视角抽离出问题求解的关键所在,并用优雅且简单的抽象变换完成了问题的求解。

矩阵的变换和直接在n原方程上进行加减叠加消元的每一步操作是可以完全对应上的。就是对问题本质的高度抽象。然而这是n元方程求解的全部,但不是线性代数的全部,矩阵的应用远不止这些。后续章节应该会更深入的理解线性代数及其用途。

矩阵分解A=LU是高斯消元求解n元方程组的抽象表示,高斯消元求解也是矩阵分解的一种具体现实映射,它帮助我们初步了解矩阵的妙用与可能的理解方式,为后续更广泛而奇妙的应用打下基础!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90574.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90574.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90574.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cursor配置DeepSeek调用MCP服务实现任务自动化

文章目录1. 任务需求2. 环境准备2.1 Cursor安装2.2 Node.js安装2.3 DeepSeek模型Key申请2.4 高德地图Key申请3. MCP服务配置3.1 Cursor配置Server方式3.1.1全局设置3.1.2 项目级别设置3.2 MCP服务接入3.2.1 高德地图MCP服务3.2.2 Mysql MCP服务3.2.3 FileSystem MCP服务3.2.4 验…

java SpringBoot数据库查询 时间范围查询

exTime的类型为varchar 存储的数据格式为yyy-MM-ddTHH:mm:ss,查询时传进来的时间格式也需要为yyy-MM-ddTHH:mm:ss格式Query(value "SELECT * FROM test_fbep fbep WHERE delFlag 1 " "AND IF(?1 ! AND ?1 IS NOT NULL, fbep.passId ?1, TRUE) " &q…

Linux 操作系统如何实现软硬件解耦?从容器与硬件接口封装谈起

在计算机系统中,软硬件解耦是提升系统灵活性、可移植性和可维护性的核心设计思想。Linux 作为开源操作系统的典范,通过数十年的演进形成了一套成熟的解耦机制。本文将从容器技术和硬件接口封装两个维度,深入解析 Linux 如何实现软硬件解耦&am…

7月10号总结 (1)

今天开始写web项目&#xff0c;画了一下登录界面&#xff0c;借鉴了一下网上的资源。 <!DOCTYPE html> <html lang"zh.CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

Docker 高级管理 -- 容器通信技术与数据持久化

目录 第一节:容器通信技术 一&#xff1a;Docker 容器的网络模式 1&#xff1a;Bridge模式 2&#xff1a;Host模式 3&#xff1a;Container模式 4&#xff1a;None模式 5&#xff1a;Overlay 模式 6&#xff1a;Macvlan 模式 7&#xff1a;自定义网络模式 二&#xff…

链路管理和命令管理

第1章 链路管理在通信领域&#xff0c;链路&#xff08;Link&#xff09; 是两个设备之间进行数据传输的物理或逻辑路径。例如&#xff1a;网络链路&#xff1a;TCP/IP 连接、UDP 通信、WebSocket串口链路&#xff1a;RS232、RS485、CAN 总线无线链路&#xff1a;蓝牙、Wi-Fi、…

BERT模型基本原理及实现示例

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是Google在2018年提出的预训练语言模型&#xff0c;其核心思想是通过双向Transformer结构捕捉上下文信息&#xff0c;为下游NLP任务提供通用的语义表示。 一、模型架构BERT基于Transforme…

NPM组件包 json-cookie-csv 等窃取主机敏感信息

【高危】NPM组件包 json-cookie-csv 等窃取主机敏感信息 漏洞描述 当用户安装受影响版本的 json-cookie-csv 等NPM组件包时会窃取用户的主机名、用户名、工作目录、IP地址等信息并发送到攻击者可控的服务器地址。 MPS编号MPS-xo1f-4kue处置建议强烈建议修复发现时间2025-07-…

【Netty+WebSocket详解】WebSocket全双工通信与Netty的高效结合与实战

一、 Netty网络框架、WebSocket协议基础 1.1 Netty网络框架介绍 1.2 WebSocket简介 1.3 WebSocket握手流程 二、为什么选择NettyWebSocket&#xff1f; 三、NettyWebSocket与Spring WebSocket 3.1 架构层级对比 3.2 核心组件差异 3.3 协议支持深度 3.4 性能基准测试 3.5 开发…

5、Vue中使用Cesium实现交互式折线绘制详解

引言 Cesium是一款强大的开源3D地理信息可视化引擎&#xff0c;广泛应用于数字地球、地图可视化等领域。在Vue项目中集成Cesium可以快速构建高性能的地理信息应用。本文将详细介绍如何在Vue项目中实现交互式折线绘制功能&#xff0c;包括顶点添加、临时绘制、距离计算等核心功…

mysql实战之主从复制

原理图理论&#xff1a;一、配置准备每台主机都安装mysql对每台主机都进行对时操作&#xff0c;减少时间误差[rooteveryone ~]# timedatectl set-timezone Asia/Shanghai [rooteveryone ~]# systemctl restart chronyd.service 对每台主机都进行关闭防火墙、上下文等&#xff0…

中望CAD2026亮点速递(5):【相似查找】高效自动化识别定位

本文为CAD芯智库整理&#xff0c;未经允许请勿复制、转载&#xff01;原文转自&#xff1a;www.xwzsoft.com/h-nd-594.html CAD的相似查找功能主要应用于需要重复操作、标准化控制、一致性检查或复杂模式识别的场景&#xff0c;通过图形相似度算法&#xff0c;快速找到匹配的图…

国产化条码类库Spire.Barcode教程:使用 C# 读取二维码(QR Code)——从图片或数据流解析

二维码已成为现代应用的常见组成部分&#xff0c;广泛应用于用户身份验证、移动支付、商品包装和活动票务等场景。很多使用 C# 开发的系统需要从图像或扫描件中提取二维码信息&#xff0c;因此掌握二维码识别技术显得尤为重要。 为满足这类需求&#xff0c;开发者需要一种既可…

IPSAN 共享存储详解:架构、优化与落地实践指南

一、IPSAN 技术定位与核心价值核心价值对比矩阵&#xff1a;维度IPSANFC-SAN实现方案成本端口成本$500端口成本$2000复用IP网络设备传输距离跨地域&#xff08;VPN/专线&#xff09;≤10公里两地三中心架构运维效率SNMP/CLI管理Zone/ALPA管理自动化运维工具链协议标准IETF RFC …

【卫星语音】基于神经网络的低码率语音编解码(ULBC)方案架构分析:以SoundStream为例

摘要 随着深度学习技术的快速发展&#xff0c;基于神经网络的音频编解码技术已成为下一代音频压缩的重要研究方向。本文以Google提出的SoundStream为核心分析对象&#xff0c;深入探讨其在低码率语音编解码领域的创新架构设计和关键技术突破。SoundStream通过全卷积编解码器网络…

技术面试问题总结一

MySQL的几种锁机制一、从锁的粒度角度划分表级锁机制&#xff1a;它是对整张表进行锁定的一种锁。当一个事务对表执行写操作时&#xff0c;会获取写锁&#xff0c;在写锁持有期间&#xff0c;其他事务无法对该表进行读写操作&#xff1b;而当事务执行读操作时&#xff0c;会获取…

Python(一)

基本语法&#xff1a;变量&#xff0c;语法变量类型&#xff1a;不同于Java&#xff0c;C语言&#xff0c;C&#xff0c;Python在创建一个变量的时候&#xff0c;不需要声明变量类型&#xff0c;由编译器自行识别Python语句在只有一个语句的时候语句末尾不需要分号&#xff0c;…

Adaptive AUTOSAR中的Firewall技术:智能汽车网络安全架构的核心

1 防火墙技术基础 1.1 定义与演进历程 防火墙(Firewall)作为一种位于内部网络与外部网络之间的网络安全系统,本质上是依照特定规则允许或限制数据传输的信息安全防护机制。在汽车电子电气架构从分布式向集中式转变的背景下,防火墙技术已从传统的IT领域深度融入Adaptive A…

android闪光灯源码分析

目录 一、APP层源码分析 二&#xff0c;framework层代码分析 ​​​​​​​2.1 binder溯源 这几天撸了android11 aosp闪光灯源码&#xff0c;本着前人栽树后人乘凉的原则&#xff0c;有志于android系统开发的新同学们提供一盏明灯&#xff0c;照亮你们前行。 本人撸代码风格&…

文心一言4.5开源部署指南及文学领域测评

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、引言 二、文心一言开源模型 2.1 MoE架构 2.2 文心一言MoE架构 三、文心一言稠密模型部署 3.1 产品选择 3.2 环境选择 3.3 Python3.12安装 3.3 PaddlePaddle-GPU安装 3.4 FastDeploy-GPU安装 ​编辑3.…