Package org.jblas

Class Eigen

java.lang.Object
org.jblas.Eigen

public class Eigen extends Object

Eigenvalue and Eigenvector related functions.

Methods exist for working with symmetric matrices or general eigenvalues. The symmetric versions are usually much faster on symmetric matrices.

  • Constructor Details

  • Method Details

    • symmetricEigenvalues

      Compute the eigenvalues for a symmetric matrix.
    • symmetricEigenvectors

      Computes the eigenvalues and eigenvectors for a symmetric matrix.
      Returns:
      an array of DoubleMatrix objects containing the eigenvectors stored as the columns of the first matrix, and the eigenvalues as diagonal elements of the second matrix.
    • eigenvalues

      Computes the eigenvalues of a general matrix.
    • eigenvectors

      Computes the eigenvalues and eigenvectors of a general matrix.
      Returns:
      an array of ComplexDoubleMatrix objects containing the eigenvectors stored as the columns of the first matrix, and the eigenvalues as the diagonal elements of the second matrix.
    • symmetricGeneralizedEigenvalues

      Compute generalized eigenvalues of the problem A x = L B x.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      Returns:
      a vector of eigenvalues L.
    • symmetricGeneralizedEigenvectors

      Solve a general problem A x = L B x.
      Parameters:
      A - symmetric matrix A
      B - symmetric matrix B
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors X The second one is A vector containing the corresponding eigenvalues L.
    • symmetricGeneralizedEigenvalues

      public static DoubleMatrix symmetricGeneralizedEigenvalues(DoubleMatrix A, DoubleMatrix B, double vl, double vu)
      Computes selected eigenvalues of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues.

      The range is half open: (vl,vu].

      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      vl - lower bound of the smallest eigenvalue to return
      vu - upper bound of the largest eigenvalue to return
      Returns:
      a vector of eigenvalues L
      Throws:
      IllegalArgumentException - if vl > vu
      NoEigenResultException - if no eigevalues are found for the selected range: (vl,vu]
    • symmetricGeneralizedEigenvalues

      public static DoubleMatrix symmetricGeneralizedEigenvalues(DoubleMatrix A, DoubleMatrix B, int il, int iu)
      Computes selected eigenvalues of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of indices for the desired eigenvalues.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      il - lower index (in ascending order) of the smallest eigenvalue to return (index is 0-based)
      iu - upper index (in ascending order) of the largest eigenvalue to return (index is 0-based)
      Returns:
      a vector of eigenvalues L
      Throws:
      IllegalArgumentException - if il > iu or il < 0 or iu > A.rows - 1
    • symmetricGeneralizedEigenvectors

      public static DoubleMatrix[] symmetricGeneralizedEigenvectors(DoubleMatrix A, DoubleMatrix B, double vl, double vu)
      Computes selected eigenvalues and their corresponding eigenvectors of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues. The range is half open: (vl,vu].
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      vl - lower bound of the smallest eigenvalue to return
      vu - upper bound of the largest eigenvalue to return
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors x. The second one is a vector containing the corresponding eigenvalues L.
      Throws:
      IllegalArgumentException - if vl > vu
      NoEigenResultException - if no eigevalues are found for the selected range: (vl,vu]
    • symmetricGeneralizedEigenvectors

      public static DoubleMatrix[] symmetricGeneralizedEigenvectors(DoubleMatrix A, DoubleMatrix B, int il, int iu)
      Computes selected eigenvalues and their corresponding eigenvectors of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      il - lower index (in ascending order) of the smallest eigenvalue to return (index is 0-based)
      iu - upper index (in ascending order) of the largest eigenvalue to return (index is 0-based)
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors x. The second one is a vector containing the corresponding eigenvalues L.
      Throws:
      IllegalArgumentException - if il > iu or il < 0 or iu > A.rows - 1
    • symmetricEigenvalues

      Compute the eigenvalues for a symmetric matrix.
    • symmetricEigenvectors

      Computes the eigenvalues and eigenvectors for a symmetric matrix.
      Returns:
      an array of FloatMatrix objects containing the eigenvectors stored as the columns of the first matrix, and the eigenvalues as diagonal elements of the second matrix.
    • eigenvalues

      Computes the eigenvalues of a general matrix.
    • eigenvectors

      Computes the eigenvalues and eigenvectors of a general matrix.
      Returns:
      an array of ComplexFloatMatrix objects containing the eigenvectors stored as the columns of the first matrix, and the eigenvalues as the diagonal elements of the second matrix.
    • symmetricGeneralizedEigenvalues

      Compute generalized eigenvalues of the problem A x = L B x.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      Returns:
      a vector of eigenvalues L.
    • symmetricGeneralizedEigenvectors

      Solve a general problem A x = L B x.
      Parameters:
      A - symmetric matrix A
      B - symmetric matrix B
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors X The second one is A vector containing the corresponding eigenvalues L.
    • symmetricGeneralizedEigenvalues

      public static FloatMatrix symmetricGeneralizedEigenvalues(FloatMatrix A, FloatMatrix B, float vl, float vu)
      Computes selected eigenvalues of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues.

      The range is half open: (vl,vu].

      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      vl - lower bound of the smallest eigenvalue to return
      vu - upper bound of the largest eigenvalue to return
      Returns:
      a vector of eigenvalues L
      Throws:
      IllegalArgumentException - if vl > vu
      NoEigenResultException - if no eigevalues are found for the selected range: (vl,vu]
    • symmetricGeneralizedEigenvalues

      public static FloatMatrix symmetricGeneralizedEigenvalues(FloatMatrix A, FloatMatrix B, int il, int iu)
      Computes selected eigenvalues of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of indices for the desired eigenvalues.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      il - lower index (in ascending order) of the smallest eigenvalue to return (index is 0-based)
      iu - upper index (in ascending order) of the largest eigenvalue to return (index is 0-based)
      Returns:
      a vector of eigenvalues L
      Throws:
      IllegalArgumentException - if il > iu or il < 0 or iu > A.rows - 1
    • symmetricGeneralizedEigenvectors

      public static FloatMatrix[] symmetricGeneralizedEigenvectors(FloatMatrix A, FloatMatrix B, float vl, float vu)
      Computes selected eigenvalues and their corresponding eigenvectors of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues. The range is half open: (vl,vu].
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      vl - lower bound of the smallest eigenvalue to return
      vu - upper bound of the largest eigenvalue to return
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors x. The second one is a vector containing the corresponding eigenvalues L.
      Throws:
      IllegalArgumentException - if vl > vu
      NoEigenResultException - if no eigevalues are found for the selected range: (vl,vu]
    • symmetricGeneralizedEigenvectors

      public static FloatMatrix[] symmetricGeneralizedEigenvectors(FloatMatrix A, FloatMatrix B, int il, int iu)
      Computes selected eigenvalues and their corresponding eigenvectors of the real generalized symmetric-definite eigenproblem of the form A x = L B x or, equivalently, (A - L B)x = 0. Here A and B are assumed to be symmetric and B is also positive definite. The selection is based on the given range of values for the desired eigenvalues.
      Parameters:
      A - symmetric Matrix A. Only the upper triangle will be considered.
      B - symmetric Matrix B. Only the upper triangle will be considered.
      il - lower index (in ascending order) of the smallest eigenvalue to return (index is 0-based)
      iu - upper index (in ascending order) of the largest eigenvalue to return (index is 0-based)
      Returns:
      an array of matrices of length two. The first one is an array of the eigenvectors x. The second one is a vector containing the corresponding eigenvalues L.
      Throws:
      IllegalArgumentException - if il > iu or il < 0 or iu > A.rows - 1