Class ARPACK

java.lang.Object
smile.math.matrix.ARPACK

public class ARPACK extends Object
ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.

The package is designed to compute a few eigenvalues and corresponding eigenvectors of a general n by n matrix A. It is most appropriate for large sparse or structured matrices A where structured means that a matrix-vector product requires order n rather than the usual order O(n2) floating point operations. This software is based upon an algorithmic variant of the Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it reduces to a variant of the Lanczos process called the Implicitly Restarted Lanczos Method (IRLM). These variants may be viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR technique that is suitable for large scale problems. For many standard problems, a matrix factorization is not required. Only the action of the matrix on a vector is needed.

  • Method Details

    • syev

      public static Matrix.EVD syev(IMatrix A, ARPACK.SymmOption which, int nev)
      Computes NEV eigenvalues of a symmetric double precision matrix.
      Parameters:
      A - the matrix to decompose.
      which - which eigenvalues to compute.
      nev - the number of eigenvalues of OP to be computed. 0 < nev < n.
      Returns:
      the eigen decomposition.
    • syev

      public static Matrix.EVD syev(IMatrix A, ARPACK.SymmOption which, int nev, int ncv, double tol)
      Computes NEV eigenvalues of a symmetric double precision matrix.
      Parameters:
      A - the matrix to decompose.
      which - which eigenvalues to compute.
      nev - the number of eigenvalues of OP to be computed. 0 < nev < n.
      ncv - the number of Arnoldi vectors.
      tol - the stopping criterion.
      Returns:
      the eigen decomposition.
    • eigen

      public static Matrix.EVD eigen(IMatrix A, ARPACK.AsymmOption which, int nev)
      Computes NEV eigenvalues of an asymmetric double precision matrix.
      Parameters:
      A - the matrix to decompose.
      which - which eigenvalues to compute.
      nev - the number of eigenvalues of OP to be computed. 0 < nev < n.
      Returns:
      the eigen decomposition.
    • eigen

      public static Matrix.EVD eigen(IMatrix A, ARPACK.AsymmOption which, int nev, int ncv, double tol)
      Computes NEV eigenvalues of an asymmetric double precision matrix.
      Parameters:
      A - the matrix to decompose.
      which - which eigenvalues to compute.
      nev - the number of eigenvalues of OP to be computed. 0 < nev < n.
      ncv - the number of Arnoldi vectors.
      tol - the stopping criterion.
      Returns:
      the eigen decomposition.
    • svd

      public static Matrix.SVD svd(IMatrix A, int k)
      Computes k largest approximate singular triples of a matrix.
      Parameters:
      A - the matrix to decompose.
      k - the number of singular triples to compute.
      Returns:
      the singular value decomposition.
    • svd

      public static Matrix.SVD svd(IMatrix A, int k, int ncv, double tol)
      Computes k largest approximate singular triples of a matrix.
      Parameters:
      A - the matrix to decompose.
      k - the number of singular triples to compute.
      ncv - the number of Arnoldi vectors.
      tol - the stopping criterion.
      Returns:
      the singular value decomposition.