org.jblas

## Class 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 Detail

• #### Eigen

public Eigen()
• ### Method Detail

• #### symmetricEigenvalues

public static DoubleMatrix symmetricEigenvalues(DoubleMatrix A)
Compute the eigenvalues for a symmetric matrix.
• #### symmetricEigenvectors

public static DoubleMatrix[] symmetricEigenvectors(DoubleMatrix A)
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.
• #### eigenvectors

public static ComplexDoubleMatrix[] eigenvectors(DoubleMatrix A)
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

public static DoubleMatrix symmetricGeneralizedEigenvalues(DoubleMatrix A,
DoubleMatrix B)
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

public static DoubleMatrix[] symmetricGeneralizedEigenvectors(DoubleMatrix A,
DoubleMatrix B)
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

public static FloatMatrix symmetricEigenvalues(FloatMatrix A)
Compute the eigenvalues for a symmetric matrix.
• #### symmetricEigenvectors

public static FloatMatrix[] symmetricEigenvectors(FloatMatrix A)
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.
• #### eigenvectors

public static ComplexFloatMatrix[] eigenvectors(FloatMatrix A)
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

public static FloatMatrix symmetricGeneralizedEigenvalues(FloatMatrix A,
FloatMatrix B)
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

public static FloatMatrix[] symmetricGeneralizedEigenvectors(FloatMatrix A,
FloatMatrix B)
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