Class SingularValueDecomposition
The Singular Value Decomposition of matrix A is a set of three matrices: U, Σ and V such that A = U × Σ × V^{T}. Let A be a m × n matrix, then U is a m × p orthogonal matrix, Σ is a p × p diagonal matrix with positive or null elements, V is a p × n orthogonal matrix (hence V^{T} is also orthogonal) where p=min(m,n).
This class is similar to the class with similar name from the JAMA library, with the following changes:
 the
norm2
method which has been renamed asgetNorm
,  the
cond
method which has been renamed asgetConditionNumber
,  the
rank
method which has been renamed asgetRank
,  a
getUT
method has been added,  a
getVT
method has been added,  a
getSolver
method has been added,  a
getCovariance
method has been added.

Constructor Summary
ConstructorDescriptionSingularValueDecomposition
(RealMatrix matrix) Calculates the compact Singular Value Decomposition of the given matrix. 
Method Summary
Modifier and TypeMethodDescriptiondouble
Return the condition number of the matrix.getCovariance
(double minSingularValue) Returns the n × n covariance matrix.double
Computes the inverse of the condition number.double
getNorm()
Returns the L_{2} norm of the matrix.int
getRank()
Return the effective numerical matrix rank.getS()
Returns the diagonal matrix Σ of the decomposition.double[]
Returns the diagonal elements of the matrix Σ of the decomposition.Get a solver for finding the A × X = B solution in least square sense.getU()
Returns the matrix U of the decomposition.getUT()
Returns the transpose of the matrix U of the decomposition.getV()
Returns the matrix V of the decomposition.getVT()
Returns the transpose of the matrix V of the decomposition.

Constructor Details

SingularValueDecomposition
Calculates the compact Singular Value Decomposition of the given matrix. Parameters:
matrix
 Matrix to decompose.


Method Details

getU
Returns the matrix U of the decomposition.U is an orthogonal matrix, i.e. its transpose is also its inverse.
 Returns:
 the U matrix
 See Also:

getUT
Returns the transpose of the matrix U of the decomposition.U is an orthogonal matrix, i.e. its transpose is also its inverse.
 Returns:
 the U matrix (or null if decomposed matrix is singular)
 See Also:

getS
Returns the diagonal matrix Σ of the decomposition.Σ is a diagonal matrix. The singular values are provided in nonincreasing order, for compatibility with Jama.
 Returns:
 the Σ matrix

getSingularValues
public double[] getSingularValues()Returns the diagonal elements of the matrix Σ of the decomposition.The singular values are provided in nonincreasing order, for compatibility with Jama.
 Returns:
 the diagonal elements of the Σ matrix

getV
Returns the matrix V of the decomposition.V is an orthogonal matrix, i.e. its transpose is also its inverse.
 Returns:
 the V matrix (or null if decomposed matrix is singular)
 See Also:

getVT
Returns the transpose of the matrix V of the decomposition.V is an orthogonal matrix, i.e. its transpose is also its inverse.
 Returns:
 the V matrix (or null if decomposed matrix is singular)
 See Also:

getCovariance
Returns the n × n covariance matrix.The covariance matrix is V × J × V^{T} where J is the diagonal matrix of the inverse of the squares of the singular values.
 Parameters:
minSingularValue
 value below which singular values are ignored (a 0 or negative value implies all singular value will be used) Returns:
 covariance matrix
 Throws:
IllegalArgumentException
 if minSingularValue is larger than the largest singular value, meaning all singular values are ignored

getNorm
public double getNorm()Returns the L_{2} norm of the matrix.The L_{2} norm is max(A × u_{2} / u_{2}), where ._{2} denotes the vectorial 2norm (i.e. the traditional euclidian norm).
 Returns:
 norm

getConditionNumber
public double getConditionNumber()Return the condition number of the matrix. Returns:
 condition number of the matrix

getInverseConditionNumber
public double getInverseConditionNumber()Computes the inverse of the condition number. In cases of rank deficiency, thecondition number
will become undefined. Returns:
 the inverse of the condition number.

getRank
public int getRank()Return the effective numerical matrix rank.The effective numerical rank is the number of nonnegligible singular values. The threshold used to identify nonnegligible terms is max(m,n) × ulp(s_{1}) where ulp(s_{1}) is the least significant bit of the largest singular value.
 Returns:
 effective numerical matrix rank

getSolver
Get a solver for finding the A × X = B solution in least square sense. Returns:
 a solver
