Package org.jblas
Class Eigen
- java.lang.Object
-
- org.jblas.Eigen
-
public class Eigen extends java.lang.ObjectEigenvalue and Eigenvector related functions.
Methods exist for working with symmetric matrices or general eigenvalues. The symmetric versions are usually much faster on symmetric matrices.
-
-
Field Summary
Fields Modifier and Type Field Description private static DoubleMatrixdummyDoubleprivate static FloatMatrixdummyFloat
-
Constructor Summary
Constructors Constructor Description Eigen()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ComplexDoubleMatrixeigenvalues(DoubleMatrix A)Computes the eigenvalues of a general matrix.static ComplexFloatMatrixeigenvalues(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 DoubleMatrixsymmetricEigenvalues(DoubleMatrix A)Compute the eigenvalues for a symmetric matrix.static FloatMatrixsymmetricEigenvalues(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 DoubleMatrixsymmetricGeneralizedEigenvalues(DoubleMatrix A, DoubleMatrix B)Compute generalized eigenvalues of the problem A x = L B x.static DoubleMatrixsymmetricGeneralizedEigenvalues(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 DoubleMatrixsymmetricGeneralizedEigenvalues(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 FloatMatrixsymmetricGeneralizedEigenvalues(FloatMatrix A, FloatMatrix B)Compute generalized eigenvalues of the problem A x = L B x.static FloatMatrixsymmetricGeneralizedEigenvalues(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 FloatMatrixsymmetricGeneralizedEigenvalues(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.
-
-
-
Field Detail
-
dummyDouble
private static final DoubleMatrix dummyDouble
-
dummyFloat
private static final FloatMatrix dummyFloat
-
-
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 AB- 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 returnvu- upper bound of the largest eigenvalue to return- Returns:
- a vector of eigenvalues L
- Throws:
java.lang.IllegalArgumentException- ifvl > vuNoEigenResultException- 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:
java.lang.IllegalArgumentException- ifil > iuoril < 0oriu > 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 returnvu- 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:
java.lang.IllegalArgumentException- ifvl > vuNoEigenResultException- 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:
java.lang.IllegalArgumentException- ifil > iuoril < 0oriu > 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 AB- 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 returnvu- upper bound of the largest eigenvalue to return- Returns:
- a vector of eigenvalues L
- Throws:
java.lang.IllegalArgumentException- ifvl > vuNoEigenResultException- 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:
java.lang.IllegalArgumentException- ifil > iuoril < 0oriu > 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 returnvu- 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:
java.lang.IllegalArgumentException- ifvl > vuNoEigenResultException- 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:
java.lang.IllegalArgumentException- ifil > iuoril < 0oriu > A.rows - 1
-
-