# incidence


图关联矩阵

函数库: TyMath

# 语法

I = incidence(G)

# 说明

I = incidence(G) 返回图 G 的稀疏关联矩阵。如果 s 和 t 是 G 中第 j 条边的源和目标节点的节点 ID,则 I[s,j] = -1 且 I[t,j] = 1。即 I 的每一列指示 G 中单条边的源和目标节点。示例

# 示例

图关联矩阵

使用边列表创建一个图,然后计算图关联矩阵。

using TyMath
s = [1, 1, 1, 1, 1];
t = [2, 3, 4, 5, 6];
G = Graph(s, t);
I = incidence(G)
I = 6×5 SparseMatrixCSC{Float64, Int64} with 10 stored entries:
 -1.0  -1.0  -1.0  -1.0  -1.0
  1.0    ⋅     ⋅     ⋅     ⋅
   ⋅    1.0    ⋅     ⋅     ⋅
   ⋅     ⋅    1.0    ⋅     ⋅
   ⋅     ⋅     ⋅    1.0    ⋅
   ⋅     ⋅     ⋅     ⋅    1.0

I 中的每一列包含两个非零项,指示 G 中单条边的端节点。

计算图拉普拉斯矩阵 L,并确认无向图的关系 L = I*I'。

L = TyMath.TyGraphTheory.laplacian(G);
L - I*I'
ans = 6×6 SparseMatrixCSC{Float64, Int64} with 0 stored entries:
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
有向图的关联矩阵

使用边列表创建一个有向图,然后计算关联矩阵。

using TyMath
s = [1,2,1,3,2,3,3,3];
t = [2,1,3,1,3,4,5,6];
G = DiGraph(s,t)
G = 
DiGraph with properties:
Edges:8×1
Nodes:6×0
I = incidence(G)
I = 6×8 SparseMatrixCSC{Float64, Int64} with 16 stored entries:
 -1.0  -1.0   1.0    ⋅    1.0    ⋅     ⋅     ⋅
  1.0    ⋅   -1.0  -1.0    ⋅     ⋅     ⋅     ⋅
   ⋅    1.0    ⋅    1.0  -1.0  -1.0  -1.0  -1.0
   ⋅     ⋅     ⋅     ⋅     ⋅    1.0    ⋅     ⋅
   ⋅     ⋅     ⋅     ⋅     ⋅     ⋅    1.0    ⋅
   ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅    1.0

I 中的每一列表示 G 中单条边的源和目标节点。

# 输入参数

G - 输入图
Graph 对象 | DiGraph 对象

输入图,指定为 Graph 或 DiGraph 对象。可使用 Graph 创建一个无向图,或使用 DiGraph 创建一个有向图。

示例: G = Graph(1,2)

示例: G = DiGraph([1,2],[2,3])

# 输出参数

I - 关联矩阵
稀疏矩阵

关联矩阵,以稀疏矩阵形式返回。I 的大小为 numnodes(G)×numedges(G)。对于具有自环的图,未定义图关联矩阵。

# 另请参阅

Graph | DiGraph | laplacian | adjacency