Click or drag to resize
Accord.NET (logo)

SingularValueDecomposition Class

Singular Value Decomposition for a rectangular matrix.
Inheritance Hierarchy
SystemObject
  Accord.Math.DecompositionsSingularValueDecomposition

Namespace:  Accord.Math.Decompositions
Assembly:  Accord.Math (in Accord.Math.dll) Version: 3.8.0
Syntax
[SerializableAttribute]
public sealed class SingularValueDecomposition : ICloneable, 
	ISolverMatrixDecomposition<double>
Request Example View Source

The SingularValueDecomposition type exposes the following members.

Constructors
Properties
  NameDescription
Public propertyAbsoluteDeterminant
Returns the absolute value of the matrix determinant.
Public propertyCondition
Returns the condition number max(S) / min(S).
Public propertyDiagonal
Gets the one-dimensional array of singular values.
Public propertyDiagonalMatrix
Returns the block diagonal matrix of singular values.
Public propertyIsSingular
Gets whether the decomposed matrix is singular.
Public propertyLeftSingularVectors
Returns the U matrix of Singular Vectors.
Public propertyLogDeterminant
Returns the log of the absolute value for the matrix determinant.
Public propertyLogPseudoDeterminant
Returns the log of the pseudo-determinant for the matrix.
Public propertyOrdering
Returns the ordering in which the singular values have been sorted.
Public propertyPseudoDeterminant
Returns the pseudo-determinant for the matrix.
Public propertyRank
Returns the effective numerical matrix rank.
Public propertyRightSingularVectors
Returns the V matrix of Singular Vectors.
Public propertyThreshold
Returns the singularity threshold.
Public propertyTwoNorm
Returns the Two norm.
Top
Methods
  NameDescription
Public methodClone
Creates a new object that is a copy of the current instance.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetInformationMatrix
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.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInverse
Computes the (pseudo-)inverse of the matrix given to the Singular value decomposition.
Public methodReverse
Reverses the decomposition, reconstructing the original matrix X.
Public methodSolve(Double)
Solves a linear equation system of the form AX = B.
Public methodSolve(Double)
Solves a linear equation system of the form Ax = b.
Public methodSolveForDiagonal
Solves a linear equation system of the form AX = B.
Public methodSolveTranspose(Double)
Solves a linear equation system of the form AX = B.
Public methodSolveTranspose(Double)
Solves a linear equation system of the form xA = b.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Extension Methods
  NameDescription
Public Extension MethodHasMethod
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.)
Public Extension MethodIsEqual
Compares two objects for equality, performing an elementwise comparison if the elements are vectors or matrices.
(Defined by Matrix.)
Public Extension MethodTo(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.)
Public Extension MethodToTOverloaded.
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.)
Top
Remarks

For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n 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[n-1].

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.

See Also