rd = gsp_resistance_distances(G); rd = gsp_resistance_distances(L);
G | Graph structure or Laplacian matrix (L) |
param | optional parameters |
rd | distance matrix |
This function compute the resistance distances between all vertices in a graph. The distance between two nodes is defined as the inverse of the weight matrix. For example the distance matrix:
dist = [0, 3, 1;... 3, 0, 2;... 1, 2, 0];
corresponds to the weight matrix:
W = [0, 1/3, 1/1;... 1/3, 0, 1/2;... 1/1, 1/2, 0];
The function will compute the resistance distance following Kirshoff's law. In the our example it is:
rd2 = [0, 3/2, 5/6;... 3/2, 0, 4/3;... 5/6, 4/3, 0]
In matlab, you can reproduce this example using:
% The weight dist = [0, 3, 1;... 3, 0, 2;... 1, 2, 0]; % The weight is the inverse of the distance... W = dist.^(-1); % Fix the diagonal W([1,5,9])=0; G = gsp_graph(W); rd = gsp_resistance_distance(G) % Resitance computed by hand rd2 = [0, 3/2, 5/6;... 3/2, 0, 4/3;... 5/6, 4/3, 0]
This code produces the following output:
rd = 0 1.5000 0.8333 1.5000 0 1.3333 0.8333 1.3333 0 rd2 = 0 1.5000 0.8333 1.5000 0 1.3333 0.8333 1.3333 0
param is an optional structure that contains the following field
D. J. Klein and M. Randić. Resistance distance. Journal of Mathematical Chemistry, 12(1):81--95, 1993.