Represents the singular value decomposition of a matrix.
SystemObject Extreme.Mathematics.LinearAlgebraLinearOperator Extreme.Mathematics.LinearAlgebraDecomposition Extreme.Mathematics.LinearAlgebraSingularValueDecomposition
Namespace: Extreme.Mathematics.LinearAlgebraAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
public abstract class SingularValueDecomposition : Decomposition
Public MustInherit Class SingularValueDecomposition
Inherits Decomposition
public ref class SingularValueDecomposition abstract : public Decomposition
[<AbstractClassAttribute>]
type SingularValueDecomposition =
class
inherit Decomposition
end
The SingularValueDecomposition type exposes the following members.
Top
Top
 Name  Description 

 AddProductToVector  (Inherited from LinearOperator.) 
 Decompose 
Performs the actual decomposition.
(Inherited from Decomposition.) 
 Equals  Determines whether the specified Object is equal to the current Object. (Inherited from Object.) 
 EstimateConditionNumber 
Calculates an estimate for the condition
number of the matrix.
(Overrides LinearOperatorEstimateConditionNumber.) 
 Finalize  Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) 
 GetDeterminant 
Calculates the determinant of the decomposed
matrix.
(Overrides LinearOperatorGetDeterminant.) 
 GetHashCode  Serves as a hash function for a particular type. (Inherited from Object.) 
 GetInverse 
Calculates the inverse matrix..
(Inherited from LinearOperator.) 
 GetInverse(Boolean) 
Calculates the inverse of the factorized
matrix.
(Overrides LinearOperatorGetInverse(Boolean).) 
 GetObjectData  (Inherited from LinearOperator.) 
 GetPseudoInverse 
Calculates the pseudoinverse of the factorized matrix.

 GetPseudoInverse(Double) 
Calculates the pseudoinverse of the factorized
matrix.

 GetType  Gets the Type of the current instance. (Inherited from Object.) 
 IsSingular 
Gets a value indicating whether the BaseMatrix of this decomposition
is singular.
(Inherited from Decomposition.) 
 MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.) 
 Multiply(Matrix)  Multiplies the decomposition to a matrix. (Inherited from Decomposition.) 
 Multiply(Vector)  Applies the base matrix of the decomposition to a vector. (Inherited from Decomposition.) 
 MultiplyTranspose(Matrix)  Multiplies the transpose of the decomposition to a matrix. (Inherited from Decomposition.) 
 MultiplyTranspose(Vector)  Multiplies the transpose of the decomposition to a vector. (Inherited from Decomposition.) 
 Rank 
Returns the numerical rank of a matrix.
(Inherited from LinearOperator.) 
 Rank(Double) 
Returns the numerical rank of a matrix using the specified tolerance.
(Overrides LinearOperatorRank(Double).) 
 SetSingular 
Sets a flag that indicates the underlying matrix of this
decomposition is singular.
(Inherited from Decomposition.) 
 Solve(Matrix) 
Solves the system of linear equations for the specified
righthand side matrix.
(Inherited from LinearOperator.) 
 Solve(Vector) 
Solves the system of linear equations for the specified
righthand side vector.
(Inherited from LinearOperator.) 
 Solve(DenseMatrix, Boolean) 
Solves the system of simultaneous linear equations for the specified
righthand side dense matrix and overwrites the
righthand side with the solution.
(Overrides LinearOperatorSolve(DenseMatrix, Boolean).) 
 Solve(DenseVector, Boolean) 
Solves the system of simultaneous linear equations for the specified
righthand side vector.
(Overrides LinearOperatorSolve(DenseVector, Boolean).) 
 SolveTo(DenseVector, DenseVector) 
Solves the system for the specified righthand side.
(Inherited from LinearOperator.) 
 SolveTo(Vector, DenseVector) 
Solves the system for the specified righthand side.
(Inherited from LinearOperator.) 
 SolveTranspose(Matrix) 
Solves the transposed system of linear equations for the specified
righthand side matrix.
(Inherited from LinearOperator.) 
 SolveTranspose(Vector) 
Solves the system of linear equations for the specified
righthand side vector.
(Inherited from LinearOperator.) 
 SolveTranspose(DenseMatrix, Boolean) 
Solves the transposed system of linear equations for the specified
righthand side dense matrix and optionally overwrites the
righthand side with the solution.
(Overrides LinearOperatorSolveTranspose(DenseMatrix, Boolean).) 
 SolveTranspose(DenseVector, Boolean) 
Solves the transposed system of linear equations for the specified
righthand side dense vector and optionally
overwrites the righthand side with the solution.
(Overrides LinearOperatorSolveTranspose(DenseVector, Boolean).) 
 SolveTransposeTo 
Solves the transposed system for the specified righthand side.
(Inherited from LinearOperator.) 
 ToString  Returns a string that represents the current object. (Inherited from Object.) 
Top
The singular value decomposition (SVD) of a matrix A rewrites the
matrix in the form A= USV^{T}, where
U and V are orthogonal matrices, and S is a
diagonal matrix whose
diagonal contains the singular values of the matrix.
QRDecomposition can operate in two modes.
In overwrite mode, the original matrix is overwritten
by the decomposition. In preserve mode, the original matrix
is preserved, and a new matrix is created to hold the
decomposition. You can set the mode through the
Overwrite property.
SingularValueDecomposition inherits from
LinearOperator. This means you can
use it to solve systems of linear equations. You can
solve for a single righthand side, or for multiple
righthand sides using the Solve(DenseMatrix, Boolean) method.
You can also calculate the determinant,
the inverse, and an estimate for the
EstimateConditionNumber.
In addition, the SingularValueDecomposition
class provides some unique methods.
The GetPseudoInverse method calculates the
pseudoinverse of the matrix. This is a matrix A^{+}
such that AA^{+}A = A.
The managed implementation of the singular value decomposition is based on the LINPACK routine DSVDC.
The native version uses the LAPACK routine DGESDD.
Numerical Libraries
Supported in: 5.x, 4.x
Reference