Resistance distance 图上2个节点的等效电阻求解算法
如何计算正方体网络中(乃至更一般的图)2个节点间的等效电阻? 公式的正确性很容易得到验证
物理学难题集萃原题。最高赞那个讲得很清楚了。纸笔算的话方法无非等位点法,对称电路方法及星三角变换方法等。
如果你想了解更加一般的通用解法,可以搜索Resistance distance
ResistanceDistance[g_Graph, i_Integer, j_Integer] :=
Module[{n = VertexCount[g]},
ResistanceDistanceMatix =
PseudoInverse[KirchhoffMatrix[g] + 1/n*ConstantArray[1, {n, n}]];
ResistanceDistanceMatix[[i, i]] + ResistanceDistanceMatix[[j, j]] -
ResistanceDistanceMatix[[i, j]] -
ResistanceDistanceMatix[[j, i]]];
g = GridGraph[{2, 2, 2}, VertexLabels -> "Name"]
ResistanceDistance[g, 1, 8]
ResistanceDistance[g, 1, 4]
ResistanceDistance[g, 1, 2]

(*使用GraphData函数进行验证*)
GraphData["CubicalGraph", "ResistanceMatrix"] // MatrixForm
(*不要指望拿GraphData函数计算任意一个边带权的图的电阻矩阵,emm查表查不出来的*)

如何计算Weighted matrix的Resistance matrix 我验证了特例,是对的,但是对直接计算出\(R\)没有什么用。等式右边有\(R\),那你为什么不直接计算\(R^{-1}\)和\(det(R)\)
你把它当成是只有\(R\)一个变量的矩阵方程来解,也几乎解不出来的啊
这里\(R\)的元素\(r(i,j)\)表示节点\(i\)和\(j\)之间的等效电阻。
或者你理解成这里的\(r(i,j)\)是ResistanceDistanceMatix经过
ResistanceDistanceMatix[[i, i]] + ResistanceDistanceMatix[[j, j]] - ResistanceDistanceMatix[[i, j]] - ResistanceDistanceMatix[[j, i]]]算出的结果,注意不要弄混了
论文1
边权重都是相同大小$s\times s$的正定矩阵,它的物理意义是什么?????
Resistance matrices of graphs with matrix weights 这里考虑的边权重都是相同大小\(s\times s\)的正定矩阵
符号定义
公式中符号的含义是:\(n\)是节点个数,边权重都是相同大小\(s\times s\)的正定矩阵,\(\operatorname{det}\)表示求行列式,\((.)^\prime\)表示求矩阵转置,\((.)^{-1}\)表示PseudoInverse伪逆,\(\chi(G)\)是\(L\)任意一个block的代数余子式(cofactor)
对于\(i,j=1,2,\cdots,n\),定义\(n\times n\)的矩阵\(\tau_i\)满足 ( \(i\sim j\)表示\(i,j\)邻接)
\]
定义\(ns\times s\)的矩阵\(\tau\)满足
\]
拉普拉斯矩阵\(L\)的定义是:对于非对角线元素,如果\(i,j\)邻接,那么为\(-\frac{1}{w(i,j)}\),否则是0;对于对角线元素,\(i\)行\(i\)列的元素是\(\sum\limits_{j\sim i}\frac{1}{w_{ij}}\)。矩阵\(L\)每一行的和是0.
公式
其中的Page 12,Theorem 4.1给出了\(R\)的行列式,公式如下:
\]
其中的Page13,Theorem 4.2给出了\(R\)的逆,公式如下:
\]
论文2
Resistance matrix of a weighted graph 这里考虑的边权重都是正实数
符号定义
公式中符号的含义是:\(n\)是节点个数,\(\operatorname{det}\)表示求行列式,\((.)^\prime\)表示求矩阵转置,\((.)^{-1}\)表示PseudoInverse伪逆,\(l(G)\)表示\(G\)的所有spannig tree的权重和。
对于\(i,j=1,2,\cdots,n\),定义\(n\times 1\)的列向量\(\tau\),其元素\(\tau_i\)满足 ( \(i \sim j\)表示\(i,j\)邻接)
\]
拉普拉斯矩阵\(L\)的定义是:对于非对角线元素,如果\(i,j\)邻接,那么为\(-\frac{1}{w(i,j)}\),否则是0;对于对角线元素,\(i\)行\(i\)列的元素是\(\sum\limits_{j\sim i}\frac{1}{w_{ij}}\)。矩阵\(L\)每一行的和是0.
公式
其中的Page 7,Theorem 4给出了\(R\)的行列式,公式如下:
\]
其中的Page 5,Theorem 3给出了\(R\)的逆,公式如下:
\]

推荐阅读
https://en.wikipedia.org/wiki/Resistance_distance Resistance distance的维基百科词条
Resistance distance 图上2个节点的等效电阻求解算法的更多相关文章
- MPAndroidChart的K线图上添加均线
MPAndroidChart的K线图上添加均线 效果图 均线计算方法: 通常说的5日均线,10日均线,其实就是根据当前K线节点的时间维度来说的,当前每个节点代表一天,那么上面的均线就叫做日均线(几日均 ...
- zoj1232Adventure of Super Mario(图上dp)
题目连接: 啊哈哈.点我点我 思路: 这个题目是一个图上dp问题.先floyd预处理出图上全部点的最短路,可是在floyd的时候,把可以用神器的地方预处理出来,也就是转折点地方不能为城堡..预处理完成 ...
- 【学习笔记】有向无环图上的DP
手动博客搬家: 本文发表于20180716 10:49:04, 原地址https://blog.csdn.net/suncongbo/article/details/81061378 首先,感谢以下几 ...
- 2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划
2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划 [Problem Description] 有向无环图中,有个机器人从\(1\)号节点出发,每天等概率的走到下 ...
- [hdu5348]图上找环,删环
http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给一个无向图,现在要将其变成有向图,使得每一个顶点的|出度-入度|<=1 思路:分为两步,(1 ...
- yii2组件之多图上传插件FileInput的详细使用
作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
- [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上
将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...
- matlab 将多个盒图放在一张图上
1.boxplot 将多个盒图放在一张图上 x1 = normrnd(5,1,100,1)';x2 = normrnd(6,1,200,1)';X = [x1 x2];G = [zeros(size( ...
- ajax 异步插入图片到数据库(多图上传)
额 大概就这么个样子...截个图 点浏览 选择几张图片 选择完了 确定一下 然后插入数据库 同时在页面中显示插入的图片,代码 也没啥.看下 index.php <html><hea ...
- iOS 使用AFN 进行单图和多图上传
图片上传时必要将图片进行压缩,不然会上传失败 1.单张图上传 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManag ...
随机推荐
- Ant Design 分页数据回显问题
我们可以创建一个新的值来保存这些数据allSingleSelectedRowKeys: 下面是我们的HTML结构 <a-table :row-selection="{ selected ...
- Windows日常快捷键
Windows: 环境变量: Win+R,--> sysdm.cpl 计算器: Win+R,-->calc 服务:Win+R,-->services.msc 远程:Win+R,--& ...
- web自动化测试python+selenium----API
import time from selenium import webdriver # 启动谷歌浏览器,开启与浏览器之间的会话 driver = webdriver.Chrome() # 访问一个网 ...
- 微信小程序开发常见问题
1.不同页面之间的传值方式 通过URL问号传值 当前页面 wx.navigateTo({ url: '/pages/aaa/aaa?/userName=norma' }) 2. 另一个页面通过opti ...
- oculus按键大全
// OVRInput.Update(); if (OVRInput.GetUp(OVRInput.Button.Three)) { Debug.Log("remote click" ...
- switch组件的使用
正常情况下,path和component是一一对应的关系 switch可以提高路由匹配效率(单一匹配)
- css怪异现象合集
一.margin上塌陷解决方案(无中生有的margin-top): 1.父级元素设置padding-top:1px;//最不靠谱的解决方案 2.父级元素设置 overflow: hidden; 或者 ...
- 关于uniapp图片默认的空隙处理方案
display:block; 或者 display:flex;
- oracle中的!=与<>和^=
oracle中的!=与<>和^=!= . <>.^= 三个符号都表示"不等于"的意思,在逻辑上没有本质区别但是要主义的是三个符号在表达"不等于&q ...
- 一次CentOS 出现“Too many open files"错误的解决
一.原因分析 出现本问题,应该是打开文件最多数量不足,默认是1024个,在生产环境中经常出现该问题. 使用ulimit -a 查看打开文件数量限制 二.解决方案A(临时有效) 1.如果是非root用户 ...