public class SingularValueDecomposition extends Object
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:
norm2
method which has been renamed as getNorm
,cond
method which has been renamed as getConditionNumber
,rank
method which has been renamed as getRank
,getUT
method has been added,getVT
method has been added,getSolver
method has been added,getCovariance
method has been added.Constructor and Description 

SingularValueDecomposition(RealMatrix matrix)
Calculates the compact Singular Value Decomposition of the given matrix.

Modifier and Type  Method and Description 

double 
getConditionNumber()
Return the condition number of the matrix.

RealMatrix 
getCovariance(double minSingularValue)
Returns the n × n covariance matrix.

double 
getInverseConditionNumber()
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.

RealMatrix 
getS()
Returns the diagonal matrix Σ of the decomposition.

double[] 
getSingularValues()
Returns the diagonal elements of the matrix Σ of the decomposition.

DecompositionSolver 
getSolver()
Get a solver for finding the A × X = B solution in least square sense.

RealMatrix 
getU()
Returns the matrix U of the decomposition.

RealMatrix 
getUT()
Returns the transpose of the matrix U of the decomposition.

RealMatrix 
getV()
Returns the matrix V of the decomposition.

RealMatrix 
getVT()
Returns the transpose of the matrix V of the decomposition.

public SingularValueDecomposition(RealMatrix matrix)
matrix
 Matrix to decompose.public RealMatrix getU()
U is an orthogonal matrix, i.e. its transpose is also its inverse.
getUT()
public RealMatrix getUT()
U is an orthogonal matrix, i.e. its transpose is also its inverse.
getU()
public RealMatrix getS()
Σ is a diagonal matrix. The singular values are provided in nonincreasing order, for compatibility with Jama.
public double[] getSingularValues()
The singular values are provided in nonincreasing order, for compatibility with Jama.
public RealMatrix getV()
V is an orthogonal matrix, i.e. its transpose is also its inverse.
getVT()
public RealMatrix getVT()
V is an orthogonal matrix, i.e. its transpose is also its inverse.
getV()
public RealMatrix getCovariance(double minSingularValue)
The covariance matrix is V × J × V^{T} where J is the diagonal matrix of the inverse of the squares of the singular values.
minSingularValue
 value below which singular values are ignored
(a 0 or negative value implies all singular value will be used)IllegalArgumentException
 if minSingularValue is larger than
the largest singular value, meaning all singular values are ignoredpublic double getNorm()
The L_{2} norm is max(A × u_{2} / u_{2}), where ._{2} denotes the vectorial 2norm (i.e. the traditional euclidean norm).
public double getConditionNumber()
public double getInverseConditionNumber()
condition
number
will become undefined.public int getRank()
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.
public DecompositionSolver getSolver()
Copyright © 2003–2021 The Apache Software Foundation. All rights reserved.