图和网络
图和网络
import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inline
dg = nx.DiGraph()
dg.add_edges_from([(1,2), (2,3), (1,3), (1,4), (3,4)])
edge_labels = {(1, 2): 1, (1, 3): 3, (1, 4): 4, (2, 3): 2, (3, 4): 5}
pos = nx.spring_layout(dg)
nx.draw_networkx_edge_labels(dg,pos,edge_labels=edge_labels, font_size=16)
nx.draw_networkx_labels(dg, pos, font_size=20, font_color='w')
nx.draw(dg, pos, node_size=1500, node_color="gray")
2
3
4
5
6
7
8
9
10
11
12
该图由4个节点与5条边组成,
我们可以建立
观察前三行,易看出这三个行向量线性相关,也就是这三个向量可以形成回路(loop)。
现在,解
展开得到:
引入矩阵的实际意义:将
则式子中的诸如
容易看出其中一个解
化简
其零空间的物理意义为,当电位相等时,不存在电势差,图中无电流。
当我们把图中节点
现在看看
接着说上文提到的的电势差,矩阵
再把图拿下来观察:
import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inline
dg = nx.DiGraph()
dg.add_edges_from([(1,2), (2,3), (1,3), (1,4), (3,4)])
edge_labels = {(1, 2): 1, (1, 3): 3, (1, 4): 4, (2, 3): 2, (3, 4): 5}
pos = nx.spring_layout(dg)
nx.draw_networkx_edge_labels(dg,pos,edge_labels=edge_labels, font_size=16)
nx.draw_networkx_labels(dg, pos, font_size=20, font_color='w')
nx.draw(dg, pos, node_size=1500, node_color="gray")
2
3
4
5
6
7
8
9
10
11
12
将
对比看
对于
- 现在假设
,也就是令 安培的电流在边 上流动; - 由图看出
也应该为 ; - 再令
,也就是让 安培的电流流回节点 ; - 令
;
得到一个符合KCL的向量
根据上一个基的经验,可以利用
- 令
; - 令
; - 由图得
; - 令
;
得到令一个符合KCL的向量
则
看图,利用节点
- 令
; - 令
; - 则由图得
;
得到符合KCL的向量
接下来观察
易从基的第一个向量看出前三列
再看左零空间的维数公式:
此等式对任何图均有效,任何图都有此拓扑性质,这就是著名的欧拉公式(Euler's Formula)。
总结:
- 将电势记为
,则在引入电势的第一步中,有 ; - 电势差导致电流产生,
; - 电流满足基尔霍夫定律方程,
;
这些是在无电源情况下的方程。
电源可以通过:在边上加电池(电压源),或在节点上加外部电流 两种方式接入。
如果在边上加电池,会体现在
将以上三个等式连起来得到