Package org.apache.commons.math3.linear
Class EigenDecomposition.Solver
- java.lang.Object
-
- org.apache.commons.math3.linear.EigenDecomposition.Solver
-
- All Implemented Interfaces:
DecompositionSolver
- Enclosing class:
- EigenDecomposition
private static class EigenDecomposition.Solver extends java.lang.Object implements DecompositionSolver
Specialized solver.
-
-
Field Summary
Fields Modifier and Type Field Description private ArrayRealVector[]
eigenvectors
Eigenvectors.private double[]
imagEigenvalues
Imaginary part of the realEigenvalues.private double[]
realEigenvalues
Real part of the realEigenvalues.
-
Constructor Summary
Constructors Modifier Constructor Description private
Solver(double[] realEigenvalues, double[] imagEigenvalues, ArrayRealVector[] eigenvectors)
Builds a solver from decomposed matrix.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double
eigenvalueNorm(int i)
RealMatrix
getInverse()
Get the inverse of the decomposed matrix.boolean
isNonSingular()
Checks whether the decomposed matrix is non-singular.RealMatrix
solve(RealMatrix b)
Solve the linear equation A × X = B for matrices A.RealVector
solve(RealVector b)
Solves the linear equation A × X = B for symmetric matrices A.
-
-
-
Field Detail
-
realEigenvalues
private double[] realEigenvalues
Real part of the realEigenvalues.
-
imagEigenvalues
private double[] imagEigenvalues
Imaginary part of the realEigenvalues.
-
eigenvectors
private final ArrayRealVector[] eigenvectors
Eigenvectors.
-
-
Constructor Detail
-
Solver
private Solver(double[] realEigenvalues, double[] imagEigenvalues, ArrayRealVector[] eigenvectors)
Builds a solver from decomposed matrix.- Parameters:
realEigenvalues
- Real parts of the eigenvalues.imagEigenvalues
- Imaginary parts of the eigenvalues.eigenvectors
- Eigenvectors.
-
-
Method Detail
-
solve
public RealVector solve(RealVector b)
Solves the linear equation A × X = B for symmetric matrices A.This method only finds exact linear solutions, i.e. solutions for which ||A × X - B|| is exactly 0.
- Specified by:
solve
in interfaceDecompositionSolver
- Parameters:
b
- Right-hand side of the equation A × X = B.- Returns:
- a Vector X that minimizes the two norm of A × X - B.
- Throws:
DimensionMismatchException
- if the matrices dimensions do not match.SingularMatrixException
- if the decomposed matrix is singular.
-
solve
public RealMatrix solve(RealMatrix b)
Solve the linear equation A × X = B for matrices A.The A matrix is implicit, it is provided by the underlying decomposition algorithm.
- Specified by:
solve
in interfaceDecompositionSolver
- Parameters:
b
- right-hand side of the equation A × X = B- Returns:
- a matrix X that minimizes the two norm of A × X - B
-
isNonSingular
public boolean isNonSingular()
Checks whether the decomposed matrix is non-singular.- Specified by:
isNonSingular
in interfaceDecompositionSolver
- Returns:
- true if the decomposed matrix is non-singular.
-
eigenvalueNorm
private double eigenvalueNorm(int i)
- Parameters:
i
- which eigenvalue to find the norm of- Returns:
- the norm of ith (complex) eigenvalue.
-
getInverse
public RealMatrix getInverse()
Get the inverse of the decomposed matrix.- Specified by:
getInverse
in interfaceDecompositionSolver
- Returns:
- the inverse matrix.
- Throws:
SingularMatrixException
- if the decomposed matrix is singular.
-
-