Note

This documents the development version of NetworkX. Documentation for the current release can be found here.

# networkx.linalg.bethehessianmatrix.bethe_hessian_matrix¶

bethe_hessian_matrix(G, r=None, nodelist=None)[source]

Returns the Bethe Hessian matrix of G.

The Bethe Hessian is a family of matrices parametrized by r, defined as H(r) = (r^2 - 1) I - r A + D where A is the adjacency matrix, D is the diagonal matrix of node degrees, and I is the identify matrix. It is equal to the graph laplacian when the regularizer r = 1.

The default choice of regularizer should be the ratio [2]

$r_m = \left(\sum k_i \right)^{-1}\left(\sum k_i^2 \right) - 1$
Parameters
• G (Graph) – A NetworkX graph

• r (float) – Regularizer parameter

• nodelist (list, optional) – The rows and columns are ordered according to the nodes in nodelist. If nodelist is None, then the ordering is produced by G.nodes().

Returns

H – The Bethe Hessian matrix of G, with paramter r.

Return type

Numpy matrix

Examples

>>> k = [3, 2, 2, 1, 0]
>>> G = nx.havel_hakimi_graph(k)
>>> H = nx.modularity_matrix(G)


bethe_hessian_spectrum(), to_numpy_array(), adjacency_matrix(), laplacian_matrix()