SingularValueDecomposition Class 
Namespace: Accord.Math.Decompositions
[SerializableAttribute] public sealed class SingularValueDecomposition : ICloneable, ISolverMatrixDecomposition<double>
The SingularValueDecomposition type exposes the following members.
Name  Description  

SingularValueDecomposition(Double) 
Constructs a new singular value decomposition.
 
SingularValueDecomposition(Double, Boolean, Boolean) 
Constructs a new singular value decomposition.
 
SingularValueDecomposition(Double, Boolean, Boolean, Boolean) 
Constructs a new singular value decomposition.
 
SingularValueDecomposition(Double, Boolean, Boolean, Boolean, Boolean) 
Constructs a new singular value decomposition.

Name  Description  

AbsoluteDeterminant 
Returns the absolute value of the matrix determinant.
 
Condition 
Returns the condition number max(S) / min(S).
 
Diagonal 
Gets the onedimensional array of singular values.
 
DiagonalMatrix 
Returns the block diagonal matrix of singular values.
 
IsSingular 
Gets whether the decomposed matrix is singular.
 
LeftSingularVectors 
Returns the U matrix of Singular Vectors.
 
LogDeterminant 
Returns the log of the absolute value for the matrix determinant.
 
LogPseudoDeterminant 
Returns the log of the pseudodeterminant for the matrix.
 
Ordering 
Returns the ordering in which the singular values have been sorted.
 
PseudoDeterminant 
Returns the pseudodeterminant for the matrix.
 
Rank 
Returns the effective numerical matrix rank.
 
RightSingularVectors 
Returns the V matrix of Singular Vectors.
 
Threshold 
Returns the singularity threshold.
 
TwoNorm 
Returns the Two norm.

Name  Description  

Clone 
Creates a new object that is a copy of the current instance.
 
Equals  Determines whether the specified object is equal to the current object. (Inherited from Object.)  
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetInformationMatrix 
Computes (Xt * X)^1 (the inverse of the covariance matrix). This
matrix can be used to determine standard errors for the coefficients when
solving a linear set of equations through any of the Solve(Double)
methods.
 
GetType  Gets the Type of the current instance. (Inherited from Object.)  
Inverse 
Computes the (pseudo)inverse of the matrix given to the Singular value decomposition.
 
Reverse 
Reverses the decomposition, reconstructing the original matrix X.
 
Solve(Double) 
Solves a linear equation system of the form AX = B.
 
Solve(Double) 
Solves a linear equation system of the form Ax = b.
 
SolveForDiagonal 
Solves a linear equation system of the form AX = B.
 
SolveTranspose(Double) 
Solves a linear equation system of the form AX = B.
 
SolveTranspose(Double) 
Solves a linear equation system of the form xA = b.
 
ToString  Returns a string that represents the current object. (Inherited from Object.) 
Name  Description  

HasMethod 
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.)  
IsEqual 
Compares two objects for equality, performing an elementwise
comparison if the elements are vectors or matrices.
(Defined by Matrix.)  
To(Type)  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.)  
ToT  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) 
For an mbyn matrix A with m >= n, the singular value decomposition is an mbyn orthogonal matrix U, an nbyn diagonal matrix S, and an nbyn orthogonal matrix V so that A = U * S * V'. The singular values, sigma[k] = S[k,k], are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n1].
The singular value decomposition always exists, so the constructor will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.
WARNING! Please be aware that if A has less rows than columns, it is better to compute the decomposition on the transpose of A and then swap the left and right eigenvectors. If the routine is computed on A directly, the diagonal of singular values may contain one or more zeros. The identity A = U * S * V' may still hold, however. To overcome this problem, pass true to the autoTranspose argument of the class constructor.
This routine computes the economy decomposition of A.