Symmetric Indefinite Decomposition<T> Class
Definition
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
public abstract class SymmetricIndefiniteDecomposition<T> : Decomposition<T>
- Inheritance
- Object → LinearOperator<T> → Decomposition<T> → SymmetricIndefiniteDecomposition<T>
Type Parameters
- T
Remarks
The Bunch-Kaufman decomposition of a real symmetric matrix A rewrites the matrix in the form A= LDLT or A= UDUT, where L is a unit lower triangular matrix, U is an unit upper triangular matrix, and D is a block diagonal matrix made up of 1x1 and 2x2 blocks.
SymmetricIndefiniteDecomposition<T> can operate in two modes. In overwrite mode, the original matrix is overwritten with the result of 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.
SymmetricIndefiniteDecomposition<T> inherits from LinearOperator<T>. This means you can use it to solve systems of linear equations where the matrix of the system is symmetric or Hermitian and need not be positive definite. 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 condition number.
To solve a symmetric positive definite system of equations, you can use the CholeskyDecomposition<T> class instead.
Constructors
| Symmetric | Constructs a new SymmetricIndefiniteDecomposition<T> object. |
Properties
| Base |
Gets the underlying matrix of the decomposition.
(Inherited from Decomposition<T>) |
| Block | Returns the block diagonal component of this SymmetricIndefiniteDecomposition<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>) |
| 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 the three factors in multiplication order: the first factor, the block
diagonal factor, and the transpose or conjugate transpose of the first factor.
(Overrides Decomposition<T>.Factors) |
| Factor | Gets whether the first factor comes from the upper or lower triangular component before pivot permutations. |
| Lower | Returns the lower component, including pivot permutations, of this SymmetricIndefiniteDecomposition<T>. |
| Negative | Gets the number of negative eigenvalues of the computed pivot blocks. |
| Overwrite |
Gets or sets whether the
BaseMatrix should be overwritten by
its decomposition.
(Inherited from Decomposition<T>) |
| Positive | Gets the number of positive eigenvalues of the computed pivot blocks. |
| 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>) |
| Two | Gets the number of two-by-two pivot blocks. |
| Upper | Gets the upper component, including pivot permutations, of this SymmetricIndefiniteDecomposition<T>. |
| Zero | Gets the number of exactly zero eigenvalues of the computed pivot blocks. |
Methods
| Compute | Computes the factors of the decomposition explicitly. |
| Decompose |
Performs the actual decomposition.
(Inherited from Decomposition<T>) |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
| Estimate |
Calculates an estimate for the condition number of a matrix.
(Inherited from LinearOperator<T>) |
| 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 a 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.
(Inherited from LinearOperator<T>) |
| 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.
(Inherited from LinearOperator<T>) |
| Least |
Solves a system of equations defined by the matrix and the specified right-hand side in the least squares sense.
(Inherited from Decomposition<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( | Estimates numerical rank by thresholding the pivot-block eigenvalues. (Overrides LinearOperator<T>.Rank(T)) |
| 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.
(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 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) |
| Validate |
Validates arguments for a matrix right-hand-side solve.
(Inherited from LinearOperator<T>) |
| Validate |
Validates arguments for a vector right-hand-side solve.
(Inherited from LinearOperator<T>) |