Main Content

laplacian

グラフのラプラシアン行列

説明

L = laplacian(G) はグラフのラプラシアン行列 L を返します。各対角要素 L(j,j) は、ノード j の次数 degree(G,j) により与えられます。L の非対角要素は G のエッジを表し、ノード i およびノード j の間にエッジがある場合は L(i,j) = L(j,i) = -1、それ以外の場合は L(i,j) = L(j,i) = 0 になります。入力グラフ G には多重グラフを指定できず、自己ループを含めることもできません。さらに、エッジの重みは無視されます。

すべて折りたたむ

エッジ リストを使用してグラフを作成し、グラフのラプラシアン行列を計算します。

s = [1 1 1 1 1];
t = [2 3 4 5 6];
G = graph(s,t);
L = laplacian(G)
L = 
   (1,1)        5
   (2,1)       -1
   (3,1)       -1
   (4,1)       -1
   (5,1)       -1
   (6,1)       -1
   (1,2)       -1
   (2,2)        1
   (1,3)       -1
   (3,3)        1
   (1,4)       -1
   (4,4)        1
   (1,5)       -1
   (5,5)        1
   (1,6)       -1
   (6,6)        1

L の対角要素はノードの次数を示し、L(j,j) がノード j の次数になります。

グラフの接続行列 I を計算し、関係 L = I*I' を確認します。

I = incidence(G);
L - I*I'
ans = 
   All zero sparse: 6x6

入力引数

すべて折りたたむ

入力グラフ。graph オブジェクトとして指定します。無向グラフ オブジェクトを作成するには、graph を使用します。

例: G = graph(1,2)

出力引数

すべて折りたたむ

ラプラシアン行列 L は、サイズが numnodes(G)numnodes(G) 列の正方対称スパース行列です。自己ループをもつグラフでは、グラフのラプラシアン行列は未定義です。

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2015b で導入