Schur Decomposition<T> Class
Definition
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.2
public abstract class SchurDecomposition<T> : Decomposition<T>
- Inheritance
- Object → LinearOperator<T> → Decomposition<T> → SchurDecomposition<T>
- Derived
Type Parameters
- T
Remarks
The Schur decomposition of a real (complex) square matrix A rewrites the matrix in the form A= QTQ*, where Q is an orthogonal (unitary) matrix and T, the Schur form, is an upper triangular matrix. The diagonal elements of T are the eigenvalues of A.
For a real matrix, the eigenvalues are either real or come in complex conjugate pairs. When there are complex eigenvalues, the matrix T is modified to be quasi-triangular, where 2x2 blocks on the diagonal indicate complex conjugate pairs of eigenvalues. This is sometimes referred to as the real Schur form.
The Schur form of a complex matrix is always upper triangular.
The Schur form of a real symmetric or complex Hermitian matrix is a diagonal matrix. Therefore, the Schur decomposition of such a matrix is the same as the eigenvalue decomposition.
SchurDecomposition<T> inherits from LinearOperator<T>. However, unlike most other decompositions, the Schur decomposition does not offer a speed advantage when performing most calculations. For example, solving an equation using the eigenvalue decomposition itself requires the solution of a system of equations. For this reason, the Solve(Vector<T>), GetInverse(Boolean) and EstimateConditionNumber() and similar methods simply call the corresponding method on the base matrix.
Constructors
Schur | Constructs a new SchurDecomposition<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 |
Complex | Gets the eigenvalues of the matrix as a complex vector. |
Done |
Gets or sets a value that indicates whether the decomposition
has been performed.
(Inherited from Decomposition<T>) |
Eigenvalues | Gets the eigenvalues of the matrix. |
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) |
Has | Indicates whether the matrix has any complex eigenvalues. |
Overwrite |
Gets or sets whether the
BaseMatrix should be overwritten by
its decomposition.
(Inherited from Decomposition<T>) |
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 |
Schur | Gets the Schur form of the matrix. |
Schur | Gets the Schur vectors of the matrix. |
Methods
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 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 | 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( |
Returns the numerical rank of a matrix using the specified tolerance.
(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.
(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) |