Singular
            
            Definition
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.1.5
public abstract class SingularValueDecomposition<T> : Decomposition<T>
- Inheritance
- Object → LinearOperator<T> → Decomposition<T> → SingularValueDecomposition<T>
Type Parameters
- T
Remarks
The singular value decomposition (SVD) of a matrix A rewrites the matrix in the form A= USVT, where U and V are orthogonal matrices, and S is a diagonal matrix whose diagonal contains the singular values of the matrix.
QRDecomposition<T> 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<T> inherits from LinearOperator<T>. This means you can use it to solve systems of linear equations. You can solve for a single right-hand side, or for multiple right-hand sides using the Solve(Vector<T>) method. You can also calculate the determinant, the inverse, and an estimate for the EstimateConditionNumber().
In addition, the SingularValueDecomposition<T> class provides some unique methods. The GetPseudoInverse() method calculates the pseudo-inverse 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 ?GESDD.
Constructors
| Singular | Constructs a new SingularValueDecomposition<T> object. | 
Properties
| Base | Gets the underlying matrix of the decomposition. (Inherited from Decomposition<T>) | 
| Column | Gets the number of columns in the matrix. (Inherited from LinearOperator<T>) | 
| Column | Gets or sets the index of labels for the columns of the matrix. (Inherited from LinearOperator<T>) Preliminary | 
| Done | Gets or sets a value that indicates whether the decomposition
            has been performed. (Inherited from Decomposition<T>) | 
| Element | Gets the element type of the matrix. (Inherited from LinearOperator<T>) | 
| Factors | Gets a collection of the matrix factors that make up the decomposition. (Overrides Decomposition<T>.Factors) | 
| Left | Gets the left singular vectors of the decomposition. | 
| Overwrite | Gets or sets whether the
            BaseMatrix should be overwritten by
            its decomposition. (Inherited from Decomposition<T>) | 
| Requested | Gets or sets which factors of the singular value decomposition should be calculated. | 
| Right | Gets the right singular vectors of the decomposition. | 
| Row | Gets the number of rows in the matrix. (Inherited from LinearOperator<T>) | 
| Row | Gets or sets the index of labels for the rows of the matrix. (Inherited from LinearOperator<T>) Preliminary | 
| Singular | Gets a matrix with the singular values on the diagonal. | 
| Singular | Gets a vector containing the singular values. | 
Methods
| Decompose | Performs the actual decomposition. (Inherited from Decomposition<T>) | 
| Deconstruct | Deconstructs a singular value decomposition into its component matrices. | 
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) | 
| Estimate | Calculates an estimate for the condition
            number of the matrix. (Overrides LinearOperator<T>.EstimateConditionNumber()) | 
| Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object) | 
| Get | Calculates the determinant of the decomposed
            matrix. (Overrides LinearOperator<T>.GetDeterminant()) | 
| Get | Serves as the default hash function. (Inherited from Object) | 
| Get | Calculates the inverse matrix.. (Inherited from LinearOperator<T>) | 
| Get | Calculates the inverse of the factorized
            matrix. (Overrides LinearOperator<T>.GetInverse(Boolean)) | 
| Get | Populates a SerializationInfo with the data
            needed to serialize the target object. (Inherited from LinearOperator<T>) Obsolete. | 
| Get | Calculates the pseudo-inverse of the factorized matrix. | 
| Get | Calculates the pseudo-inverse of the factorized matrix. | 
| Get | Gets the Type of the current instance. (Inherited from Object) | 
| IsSingular | Gets whether the BaseMatrix of this decomposition
            is singular. (Inherited from Decomposition<T>) | 
| Least | Solves the system of linear equations for the specified
            right-hand side matrix in the least squares sense. (Inherited from LinearOperator<T>) | 
| Least | Solves the system of linear equations for the specified
            right-hand side vector. (Inherited from LinearOperator<T>) | 
| Least | Solves the system of linear equations for the specified
            right-hand side dense matrix in the least squares sense and optionally overwrites the
            right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Least | Solves the system of linear equations for the specified
            right-hand side dense vector in the least squares sense and optionally
            overwrites the right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Least | Solves a system of equations defined by the matrix and multiple right-hand sides in the least squares sense. (Overrides LinearOperator<T>.LeastSquaresSolveInto(Matrix<T>, Matrix<T>)) | 
| Least | Solves a system of equations defined by the matrix and the specified right-hand side in the least squares sense. (Overrides Decomposition<T>.LeastSquaresSolveInto(Vector<T>, Vector<T>)) | 
| Memberwise | Creates a shallow copy of the current Object. (Inherited from Object) | 
| Multiply( | Applies the linear operator to a matrix. (Inherited from LinearOperator<T>) | 
| Multiply( | Applies the linear operator to a vector. (Inherited from LinearOperator<T>) | 
| Multiply | Multiplies the matrix with a vector, adds the scaled result to another scaled
            vector, and returns the result. (Inherited from Decomposition<T>) | 
| Multiply | Multiplies a matrix by the linear operator and returns the result. (Inherited from Decomposition<T>) | 
| Multiply | Multiplies a vector by the linear operator and returns the result. (Inherited from Decomposition<T>) | 
| Multiply | Applies the transpose of the linear operator to a matrix. (Inherited from LinearOperator<T>) | 
| Multiply | Applies the (conjugate) transpose of the linear operator to a vector. (Inherited from LinearOperator<T>) | 
| Rank() | Returns the numerical rank of a matrix. (Inherited from LinearOperator<T>) | 
| Rank( | Returns the numerical rank of a matrix using the specified tolerance. (Overrides LinearOperator<T>.Rank(T)) | 
| Set | Sets the smallest singular values to zero so the matrix has at most the specified rank. | 
| Set | Sets a flag that indicates the underlying matrix of this
            decomposition is singular. (Inherited from Decomposition<T>) | 
| Solve( | Solves the system of linear equations for the specified
            right-hand side matrix. (Inherited from LinearOperator<T>) | 
| Solve( | Solves the system of linear equations for the specified
            right-hand side vector. (Inherited from LinearOperator<T>) | 
| Solve( | Solves the system of linear equations for the specified
            right-hand side dense matrix and optionally overwrites the
            right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Solve( | Solves the system of linear equations for the specified
            right-hand side dense vector and optionally
            overwrites the right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Solve | Solves a system of equations defined by the matrix and multiple right-hand sides. (Inherited from LinearOperator<T>) | 
| Solve | Solves a system of equations defined by the matrix and the specified right-hand side. (Inherited from LinearOperator<T>) | 
| Solve | Solves a system of equations defined by the matrix and multiple right-hand sides. (Overrides LinearOperator<T>.SolveInto(TransposeOperation, Matrix<T>, Matrix<T>)) | 
| Solve | Solves a system of equations defined by the matrix and the specified right-hand side. (Overrides LinearOperator<T>.SolveInto(TransposeOperation, Vector<T>, Vector<T>)) | 
| Solve | Solves the transposed system of linear equations for the specified
            right-hand side matrix. (Inherited from LinearOperator<T>) | 
| Solve | Solves the system of linear equations for the specified
            right-hand side vector. (Inherited from LinearOperator<T>) | 
| Solve | Solves the transposed system of linear equations for the specified
            right-hand side dense matrix and optionally overwrites the
            right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Solve | Solves the transposed system of linear equations for the specified
            right-hand side dense vector and optionally
            overwrites the right-hand side with the solution. (Inherited from LinearOperator<T>) | 
| Solve | Solves a system of equations defined by the matrix and multiple right-hand sides. (Inherited from LinearOperator<T>) | 
| Solve | Solves a system of equations defined by the matrix and the specified right-hand side. (Inherited from LinearOperator<T>) | 
| ToString | Returns a string that represents the current object. (Inherited from Object) |