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 ...
随机推荐
- select from 多表和inner join的区别
其实两者是一样的,inner join 只是为了区分left join和right join整出来的,本质还是逐行比较
- noi 1.5 24 正常血压
描述 监护室每小时测量一次病人的血压,若收缩压在90 - 140之间并且舒张压在60 - 90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数. 输入 ...
- 威纶通作为modbusTcp主站应用
1.在威纶通中添加modbus Tcp,作为主机,在Tcp服务器客户端模型中作为客户端: 2.威纶通地址与modbus标准功能码的对应关系: 地址1x_single_Bit,对应02功能码(读输入线圈 ...
- 项目实训 DAY 9
加入页面之间定向的按钮,并改了一个typo
- redis字段使用说明
Set(集合)增删改查: #删除当前选择数据库中的所有key127.0.0.1:6379> flushdbOK#生成set集合,添加4个数据127.0.0.1:6379> sadd set ...
- jmeter之【报错记录】
{ "code": "E0001", "success": false, "description": "Co ...
- k8s配置ingress的https访问
一.部署步骤 1.安装nginx-ingress-controller 2.创建secret绑定证书 3.创建测试服务 4.创建ingress 5.测试https访问 二.安装nginx-ingres ...
- 小梅哥课程学习——串口发送应用之发送数据(可在vivado中仿真出现正确波形)
//1.底层代码源代码发送10位数据 module uart_pr( clk, reset_n, send_go, data, baud_set, tx_done, uart_tx ); input ...
- Spring 笔记三 AOP
1.AOP 概述 AOP (Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP (Object-Oriented Programming,面 ...
- Python数据可视化,自适应浏览器
pyecharts生成的html默认是靠左上显示的需要生成的文件居中显示,且能根据浏览器窗口大小自动调整需要修改html当然,如果你是熟悉html,且只是临时少量生成表格的话,每次生成完后手动修改ht ...