spectrum

0th

Percentile

Eigenvalues and eigenvectors of the adjacency matrix of a graph

Calculate selected eigenvalues and eigenvectors of a (supposedly sparse) graph.

Keywords
graphs
Usage
spectrum(graph, algorithm = c("arpack", "auto", "lapack", "comp_auto",
  "comp_lapack", "comp_arpack"), which = list(), options = arpack_defaults)
Arguments
graph

The input graph, can be directed or undirected.

algorithm

The algorithm to use. Currently only arpack is implemented, which uses the ARPACK solver. See also arpack.

which

A list to specify which eigenvalues and eigenvectors to calculate. By default the leading (i.e. largest magnitude) eigenvalue and the corresponding eigenvector is calculated.

options

Options for the ARPACK solver. See arpack_defaults.

Details

The which argument is a list and it specifies which eigenvalues and corresponding eigenvectors to calculate: There are eight options:

  1. Eigenvalues with the largest magnitude. Set pos to LM, and howmany to the number of eigenvalues you want.

  2. Eigenvalues with the smallest magnitude. Set pos to SM and howmany to the number of eigenvalues you want.

  3. Largest eigenvalues. Set pos to LA and howmany to the number of eigenvalues you want.

  4. Smallest eigenvalues. Set pos to SA and howmany to the number of eigenvalues you want.

  5. Eigenvalues from both ends of the spectrum. Set pos to BE and howmany to the number of eigenvalues you want. If howmany is odd, then one more eigenvalue is returned from the larger end.

  6. Selected eigenvalues. This is not (yet) implemented currently.

  7. Eigenvalues in an interval. This is not (yet) implemented.

  8. All eigenvalues. This is not implemented yet. The standard eigen function does a better job at this, anyway.

Note that ARPACK might be unstable for graphs with multiple components, e.g. graphs with isolate vertices.

Value

Depends on the algorithm used.

For arpack a list with three entries is returned:

options

See the return value for arpack for a complete description.

values

Numeric vector, the eigenvalues.

vectors

Numeric matrix, with the eigenvectors as columns.

See Also

as_adj to create a (sparse) adjacency matrix.

Aliases
  • graph.eigen
  • igraph.eigen.default
  • spectrum
Examples
# NOT RUN {
## Small example graph, leading eigenvector by default
kite <- make_graph("Krackhardt_kite")
spectrum(kite)[c("values", "vectors")]

## Double check
eigen(as_adj(kite, sparse=FALSE))$vectors[,1]

## Should be the same as 'eigen_centrality' (but rescaled)
cor(eigen_centrality(kite)$vector, spectrum(kite)$vectors)

## Smallest eigenvalues
spectrum(kite, which=list(pos="SM", howmany=2))$values
# }
Documentation reproduced from package igraph, version 1.0.1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.