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 Summary

Constructors
Constructor and Description
`Eigen()`
• ### Method Summary

All Methods
Modifier and Type Method and Description
`static ComplexDoubleMatrix` `eigenvalues(DoubleMatrix A)`
Computes the eigenvalues of a general matrix.
`static ComplexFloatMatrix` `eigenvalues(FloatMatrix A)`
Computes the eigenvalues of a general matrix.
`static ComplexDoubleMatrix[]` `eigenvectors(DoubleMatrix A)`
Computes the eigenvalues and eigenvectors of a general matrix.
`static ComplexFloatMatrix[]` `eigenvectors(FloatMatrix A)`
Computes the eigenvalues and eigenvectors of a general matrix.
`static DoubleMatrix` `symmetricEigenvalues(DoubleMatrix A)`
Compute the eigenvalues for a symmetric matrix.
`static FloatMatrix` `symmetricEigenvalues(FloatMatrix A)`
Compute the eigenvalues for a symmetric matrix.
`static DoubleMatrix[]` `symmetricEigenvectors(DoubleMatrix A)`
Computes the eigenvalues and eigenvectors for a symmetric matrix.
`static FloatMatrix[]` `symmetricEigenvectors(FloatMatrix A)`
Computes the eigenvalues and eigenvectors for a symmetric matrix.
`static DoubleMatrix` ```symmetricGeneralizedEigenvalues(DoubleMatrix A, DoubleMatrix B)```
Compute generalized eigenvalues of the problem A x = L B x.
`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.
`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.
`static FloatMatrix` ```symmetricGeneralizedEigenvalues(FloatMatrix A, FloatMatrix B)```
Compute generalized eigenvalues of the problem A x = L B x.
`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.
`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.
`static DoubleMatrix[]` ```symmetricGeneralizedEigenvectors(DoubleMatrix A, DoubleMatrix B)```
Solve a general problem A x = L B x.
`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.
`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.
`static FloatMatrix[]` ```symmetricGeneralizedEigenvectors(FloatMatrix A, FloatMatrix B)```
Solve a general problem A x = L B x.
`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.
`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.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### 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.
• #### eigenvalues

`public static ComplexDoubleMatrix eigenvalues(DoubleMatrix A)`
Computes the eigenvalues of a general 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.
• #### eigenvalues

`public static ComplexFloatMatrix eigenvalues(FloatMatrix A)`
Computes the eigenvalues of a general 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`