jml.matlab.utils
Class SingularValueDecompositionImpl.Solver

java.lang.Object
  extended by jml.matlab.utils.SingularValueDecompositionImpl.Solver
All Implemented Interfaces:
org.apache.commons.math.linear.DecompositionSolver
Enclosing class:
SingularValueDecompositionImpl

private static class SingularValueDecompositionImpl.Solver
extends java.lang.Object
implements org.apache.commons.math.linear.DecompositionSolver

Specialized solver.


Field Summary
private  boolean nonSingular
          Singularity indicator.
private  org.apache.commons.math.linear.RealMatrix pseudoInverse
          Pseudo-inverse of the initial matrix.
 
Constructor Summary
private SingularValueDecompositionImpl.Solver(double[] singularValues, org.apache.commons.math.linear.RealMatrix uT, org.apache.commons.math.linear.RealMatrix v, boolean nonSingular)
          Build a solver from decomposed matrix.
 
Method Summary
 org.apache.commons.math.linear.RealMatrix getInverse()
          Get the pseudo-inverse of the decomposed matrix.
 boolean isNonSingular()
          Check if the decomposed matrix is non-singular.
 double[] solve(double[] b)
          Solve the linear equation A × X = B in least square sense.
 org.apache.commons.math.linear.RealMatrix solve(org.apache.commons.math.linear.RealMatrix b)
          Solve the linear equation A × X = B in least square sense.
 org.apache.commons.math.linear.RealVector solve(org.apache.commons.math.linear.RealVector b)
          Solve the linear equation A × X = B in least square sense.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pseudoInverse

private final org.apache.commons.math.linear.RealMatrix pseudoInverse
Pseudo-inverse of the initial matrix.


nonSingular

private boolean nonSingular
Singularity indicator.

Constructor Detail

SingularValueDecompositionImpl.Solver

private SingularValueDecompositionImpl.Solver(double[] singularValues,
                                              org.apache.commons.math.linear.RealMatrix uT,
                                              org.apache.commons.math.linear.RealMatrix v,
                                              boolean nonSingular)
Build a solver from decomposed matrix.

Parameters:
singularValues - Singular values.
uT - UT matrix of the decomposition.
v - V matrix of the decomposition.
nonSingular - Singularity indicator.
Method Detail

solve

public double[] solve(double[] b)
Solve the linear equation A × X = B in least square sense.

The m×n matrix A may not be square, the solution X is such that ||A × X - B|| is minimal.

Specified by:
solve in interface org.apache.commons.math.linear.DecompositionSolver
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:
org.apache.commons.math.exception.DimensionMismatchException - if the matrices dimensions do not match.

solve

public org.apache.commons.math.linear.RealVector solve(org.apache.commons.math.linear.RealVector b)
Solve the linear equation A × X = B in least square sense.

The m×n matrix A may not be square, the solution X is such that ||A × X - B|| is minimal.

Specified by:
solve in interface org.apache.commons.math.linear.DecompositionSolver
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:
org.apache.commons.math.exception.DimensionMismatchException - if the matrices dimensions do not match.

solve

public org.apache.commons.math.linear.RealMatrix solve(org.apache.commons.math.linear.RealMatrix b)
Solve the linear equation A × X = B in least square sense.

The m×n matrix A may not be square, the solution X is such that ||A × X - B|| is minimal.

Specified by:
solve in interface org.apache.commons.math.linear.DecompositionSolver
Parameters:
b - Right-hand side of the equation A × X = B
Returns:
a matrix X that minimizes the two norm of A × X - B
Throws:
org.apache.commons.math.exception.DimensionMismatchException - if the matrices dimensions do not match.

isNonSingular

public boolean isNonSingular()
Check if the decomposed matrix is non-singular.

Specified by:
isNonSingular in interface org.apache.commons.math.linear.DecompositionSolver
Returns:
true if the decomposed matrix is non-singular.

getInverse

public org.apache.commons.math.linear.RealMatrix getInverse()
Get the pseudo-inverse of the decomposed matrix.

Specified by:
getInverse in interface org.apache.commons.math.linear.DecompositionSolver
Returns:
the inverse matrix.