热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

图、网络、关联矩阵在线性代数中的应用

本文讨论了图、网络和关联矩阵在线性代数中的应用。图是结点和边的集合,通过箭头表示流向。关联矩阵是表示图内在含义的矩阵,每个结点代表一列,每条边代表一行。矩阵的零空间可以告诉我们列向量线性组合的状态。在物理系统中,图、网络和关联矩阵有着广泛的应用,特别是在描述问题结构和求解电势方面。此外,大型图会构建一个稀疏矩阵。


第 12 讲 图、网络、关联矩阵

Graphs,networks,incidence matrices

本讲讨论线性代数在物理系统中的应用。

图和网络 Graphs & Networks

“图”就是“结点”和“边”的一个集合。
在这里插入图片描述
边线上的箭头代表从结点流出的正方向。

关联矩阵(Incidence matrices)

构造一个矩阵来表示图的内在含义,此矩阵称为关联矩阵,图中每个结点代表

一列,每边代表一行。则上图为 54 矩阵。反过来从这个矩阵出发我们也能画出图。

在这里插入图片描述

第一行代表边①,从结点 1 流出记为-1,从结点 2 流入记为 1。 边①,边②和边③构成了一个回路,称为环(loop)。反映在矩阵上是这三个行向量线性相关。

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

考察矩阵的零空间,即求 Ax=0 的解。零空间告诉我们列向量线性组合的状态。
在这里插入图片描述

如果 x 为结点上的电势,则 Ax 给出了每个边上的电势差。求解可以得到零空间为一维 dim N(A)=1,它的基就是在这里插入图片描述
,解集则是 x=c在这里插入图片描述
,代表等电势,说明等电势条件下不会有电流产生。常数 c 的确定需要边界条件,比如我们将结点 4 接地则 x4=0。

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

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

矩阵的左零空间是满足 ATy=0 的向量 y 的集合。因为矩阵 AT有 5 列,矩阵

的秩为 3,因此矩阵的左零空间维数为 2。这反应了行向量的线性关系,整个“图”中,环数为 2。

在这里插入图片描述
y 的分量的值为“边”上的电流。

在电势差和电流之间建立联系就是欧姆定律(Ohm’s Law)
在这里插入图片描述

​ 我们求解 ATy=0 就是在求 5 个满足基尔霍夫电流定律(Kirchhoff’s Law)的电流值。

在这里插入图片描述

ATy=0 的方程形式在这里插入图片描述,每一个方程关于一个结点,方程表示结点电流值为 0,即流入等于流出。

​ 从图上解方程,而不是采用消元法解方程。如果我们设定 y1=1,并且让 y1,y2和 y3组成的回路的“环流“为 0,则有 y2=1,y3=-1。可解得 y=在这里插入图片描述
。取另一个回路的环流为 0,则有 y3=1,y4=-1,y5=1。y=在这里插入图片描述

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

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

思考一下维数公式的在“图”中的意义:

左零空间维数 dim N(AT)=m-r;

等价于“环”数量=“边”数量-(“结点”数量-1);

即 Eular 公式:“结点”-“边”+“环”=1。对所有图都成立。

矩阵的秩 r=“结点”-1,因为 r 表示了线性无关的边的数目,也就是“树”中“边”的数目。

在这里插入图片描述

之前的讨论都是针对于一个无源的电场,如果加入电源则情况又不同,例如加入电流源相当于将基尔霍夫定律的方程变为 ATy=f,f 就是外部流入的电流。







推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
author-avatar
ex7776647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有