MIT线性代数笔记十二 图、网络、关联矩阵

2023-11-07 08:40

本文主要是介绍MIT线性代数笔记十二 图、网络、关联矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  本讲讨论线性代数在物理系统中的应用。可参考链接为:https://www.juanklopper.com/wp-content/uploads/2015/03/I_13_Graphs_Incidence_matrices_Kirchhoff_laws.html

文章目录

  • 1. 图和网络 Graphs & Networks
  • 2. 关联矩阵(Incidence matrices)
    • 2.1 零空间
    • 2.2 列空间
    • 2.3 左零空间
    • 2.4 行空间

1. 图和网络 Graphs & Networks

  图是结点(node)和边(edge)的一个集合。
在这里插入图片描述
  边线上的箭头代表从结点流出的正方向。上图里包含 4 个结点,5 条边,我们可以将每条边都指定参考方向用于区分正负,比如一个电路网络。 在此例子中,将使用电势、回路、电流之类的词汇(当然这个模型还可以表示为液压系统、建筑结构等)。我们通过构造一个incidence matrix 关联矩阵来解析这个图的含义。

2. 关联矩阵(Incidence matrices)

  构造一个矩阵来表示图的内在含义,此矩阵称为关联矩阵,图中每个结点代表一列,每边代表一行。 则上图为 5 ∗ 4 5*4 54矩阵。 反过来从这个矩阵出发我们也能画出图。

在这里插入图片描述

  第一行代表边①,从结点 1 流出记为-1,从结点 2 流入记为 1。也就是从结点1流向了结点2。

  边①、边②和边③构成了一个回路,称为环(loop)。反映在矩阵上是这三个行向量线性相关。

在这里插入图片描述
  源于现实问题的关联矩阵,通常描述了问题的结构。如果我们研究一个很大的图,则会构建一个很大的矩阵,但这个矩阵会是稀疏矩阵。

2.1 零空间

  考察矩阵的零空间,即求 A x = 0 Ax=0 Ax=0的解。零空间告诉我们列向量线性组合的状态。这里 x x x的分量表示的是每个节点。

A x = [ x 2 − x 1 x 3 − x 2 x 3 − x 1 x 4 − x 1 x 4 − x 3 ] = [ 0 0 0 0 0 ] Ax= \left[ \begin{array} { c } { x _ { 2 } - x _ { 1 } } \\ { x _ { 3 } - x _ { 2 } } \\ { x _ { 3 } - x _ { 1 } } \\ { x _ { 4 } - x _ { 1 } } \\ { x _ { 4 } - x _ { 3 } } \end{array} \right] = \left[ \begin{array} { l } { 0 } \\ { 0 } \\ { 0 } \\ { 0 } \\ { 0 } \end{array} \right] Ax=x2x1x3x2x3x1x4x1x4x3=00000

  如果 x x x为结点上的电势,则 A x Ax Ax给出了每个边上的电势差。 求解可以得到零空间为一维 d i m N ( A ) = 1 dim\ N(A)=1 dim N(A)=1,它的基就是 [ 1 1 1 1 ] \left[ \begin{array} { l } { 1 } \\ { 1 } \\ { 1 } \\ { 1 } \end{array} \right] 1111,解集则是 x = c [ 1 1 1 1 ] x=c\left[ \begin{array} { l } { 1 } \\ { 1 } \\ { 1 } \\ { 1 } \end{array} \right] x=c1111,代表等电势,说明等电势条件下不会有电流产生。常数 c 的确定需要边界条件,比如我们将结点 4 接地,则 x 4 = 0 x_4=0 x4=0

2.2 列空间

  若求 A x = b Ax=b Ax=b的解,则相当于在给定了电压 b b b的情况下,求各点的电势,但实际上我们得不到电势的准确值,因为零空间有常数解 c c c,各点得到的电势需要加上常数 c c c,这很类似于求积分要加上常函数,常数值需要边界条件来确定。

  矩阵的列数为 4,而其零空间的维数为 1,则矩阵的秩为 3,矩阵第 1 列、第2列和第 4 列的列向量线性无关。

  考察矩阵列空间,一个重要的问题就是对于什么样的 b b b A x = b Ax=b Ax=b有解。边①、边②和边③构成了环,这三个行向量线性相关,同样的情况还有边④、边⑤和边③构成的环。

  我们沿着第一幅图中的一个环边(1,3,-2)对电势差求和:
( x 2 − x 1 ) + ( x 3 − x 2 ) − ( x 3 − x 1 ) = 0 (x_2-x_1)+(x_3-x_2)-(x_3-x_1)=0 (x2x1)+(x3x2)(x3x1)=0

x 2 − x 1 = b 1 , x 3 − x 2 = b 3 , x 3 − x 1 = b 2 x_2-x_1=b_1,x_3-x_2=b_3,x_3-x_1=b_2 x2x1=b1,x3x2=b3,x3x1=b2

  所以 b b b的分量满足 b 1 + b 3 − b 2 = 0 b_1+b_3-b_2=0 b1+b3b2=0以及 b 3 − b 4 + b 5 = 0 b_3-b_4+b_5=0 b3b4+b5=0。如果把边①、边②、边④、边⑤构成的大环也表示出来则还可以得到一个等式 b 1 − b 2 + b 4 − b 5 = 0 b_1-b_2+b_4-b_5=0 b1b2+b4b5=0,但实际上这个等式就是之前这两个等式的组合。这两个等式就是基尔霍夫电压定律(Kirchhoff’s Voltage law),即环路电势差之和为零。

2.3 左零空间

  矩阵的左零空间是满足 A T y = 0 A^Ty=0 ATy=0的向量 y 的集合。 其中 y y y的每个分量表示的是每个边。 因为矩阵 A T A^T AT有 5 列,且矩阵的秩为 3,因此矩阵的左零空间维数为 2。这反应了行向量的线性关系,整个“图”中,环数为 2。

A T y = [ − 1 0 − 1 − 1 0 1 − 1 0 0 0 0 1 1 0 − 1 0 0 0 1 1 ] = [ 0 0 0 0 ] A ^ { T } y = \left[ \begin{array} { c c c c c } { - 1 } & { 0 } & { - 1 } & { - 1 } & { 0 } \\ { 1 } & { - 1 } & { 0 } & { 0 } & { 0 } \\ { 0 } & { 1 } & { 1 } & { 0 } & { - 1 } \\ { 0 } & { 0 } & { 0 } & { 1 } & { 1 } \end{array} \right]=\left[ \begin{array} { l } { 0 } \\ { 0 } \\ { 0 } \\ { 0 } \end{array} \right] ATy=11000110101010010011=0000

  其中y的分量的值为“边”上的电流。

  在电势差和电流之间建立联系就是欧姆定律(Ohm’s Law)。

在这里插入图片描述
  我们求解 A T y = 0 A^Ty=0 ATy=0就是在求 5 个满足基尔霍夫电流定律(Kirchhoff’s Law)的电流值。

   A T y = 0 A^Ty=0 ATy=0的方程形式 { − y 1 − y 3 − y 4 = 0 y 1 − y 2 = 0 y 2 + y 3 − y 5 = 0 y 4 + y 5 = 0 \left\{ \begin{array} { r } { - y _ { 1 } - y _ { 3 } - y _ { 4 } = 0 } \\ { y _ { 1 } - y _ { 2 } = 0 } \\ { y _ { 2 } + y _ { 3 } - y _ { 5 } = 0 } \\ { y _ { 4 } + y _ { 5 } = 0 } \end{array} \right. y1y3y4=0y1y2=0y2+y3y5=0y4+y5=0,每一个方程关于一个结点,方程表示结点电流值为 0,即流入等于流出。

  从图上解方程,而不是采用消元法解方程。如果我们设定 y 1 = 1 y_1=1 y1=1,并且让 y 1 y_1 y1 y 2 y_2 y2 y 3 y_3 y3组成的回路的“环流“为 0,则有 y 2 = 1 y_2=1 y2=1 y 3 = − 1 y_3=-1 y3=1。可解得 y = [ 1 1 − 1 0 0 ] y=\left[ \begin{array} { c } { 1 } \\ { 1 } \\ { - 1 } \\ { 0 } \\ { 0 } \end{array} \right] y=11100。取另一个回路的环流为 0,则有 y 3 = 1 y_3=1 y3=1 y 4 = − 1 y_4=-1 y4=1 y 5 = 1 y_5=1 y5=1 y = [ 0 0 1 − 1 1 ] y = \left[ \begin{array} { c } { 0 } \\ { 0 } \\ { 1 } \\ { - 1 } \\ { 1 } \end{array} \right] y=00111

  如果设定 y 1 y_1 y1 y 2 y_2 y2 y 4 y_4 y4 y 5 y_5 y5组成的大回路环流为 0,则可以得到另一个向量 y,而该向量在零空间内,是前两个向量的线性组合。

2.4 行空间

  考察矩阵的行空间,因为矩阵 r = 3 r=3 r=3,所以存在 3 个线性无关的向量。**第 1 行、第 2 行和第 4 行为线性无关,在“图”中,边①、边②和边④构成了一张小图,这三个边没有形成回路。**线性相关问题等价于形成回路。没有回路的小图包含4个结点和 3 条边,再添加一条边就会产生回路,在矩阵里表现为在第 1 行、第 2 行和第 4行之上再添加一个行向量就会变为线性相关。没有回路的图称为“树”。

  思考一下维数公式的在“图”中的意义:
  左零空间维数 d i m N ( A T ) = m − r dim\ N(A^T)=m-r dim N(AT)=mr
  等价于 “ 环 ” 数 量 = “ 边 ” 数 量 − ( “ 结 点 ” 数 量 − 1 ) “环”数量=“边”数量-(“结点”数量-1) =1
  即 Eular 公式: “ 结 点 ” − “ 边 ” + “ 环 ” = 1 “结点”-“边”+“环”=1 +=1。对所有图都成立。
  矩阵的秩 r = “ 结 点 ” − 1 r=“结点”-1 r=1,因为 r 表示了线性无关的边的数目,也就是“树”中“边”的数目。
在这里插入图片描述
  之前的讨论都是针对于一个无源的电场,如果加入电源则情况又不同,例如加入电流源相当于将基尔霍夫定律的方程变为 A T y = f A^Ty=f ATy=f,f 就是外部流入的电流。

  将 e = A x e=Ax e=Ax y = C e y=Ce y=Ce A T y = f A^Ty=f ATy=f,三个等式结合得到应用数学中的基本方程 A T C A x = f A^TCAx=f ATCAx=f

   v = A u , y = C v , f = A T y v=Au, y=Cv,f=A^Ty v=Auy=Cvf=ATy

  关于方程 A T C A x = f A^TCAx=f ATCAx=f的更多内容可以阅读 GS 老先生 08 的书“Computational science and engineering”的第二章。

这篇关于MIT线性代数笔记十二 图、网络、关联矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362477

相关文章

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学