Represents the QR decomposition of a Matrix.

Namespace: Extreme.Mathematics.LinearAlgebra
Assembly: Extreme.Numerics (Extreme.Numerics)

Syntax

Visual Basic (Declaration)
Public NotInheritable Class QRDecomposition _
	Inherits Decomposition _
	Implements ILeastSquaresSolver
C#
public sealed class QRDecomposition : Decomposition, ILeastSquaresSolver
C++
public ref class QRDecomposition sealed : public Decomposition, ILeastSquaresSolver

Methods

IconTypeDescription
ApplyQ(GeneralVector)
Multiplies a vector in place by the orthogonal vector Q of this QRDecomposition.
ApplyQ(TransposeOperation, GeneralVector)
Multiplies a vector in place by the orthogonal vector Q of this QRDecomposition, or its transpose.
ApplyQ(GeneralMatrix)
Multiplies a matrix in place by the orthogonal matrix Q of this QRDecomposition.
ApplyQ(MatrixOperationSide, TransposeOperation, GeneralMatrix)
Multiplies a matrix in place by the orthogonal matrix Q of this QRDecomposition, or its transpose.
ApplyQ(TransposeOperation, GeneralMatrix)
Multiplies a matrix in place by the orthogonal matrix Q of this QRDecomposition, or its transpose.
Decompose()
Calculates the actual QR decomposition.
Equals(Object)
Determines whether the specified Object is equal to the current Object.
EstimateConditionNumber()
Calculates an estimate for the condition number of the Matrix.
Finalize()
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
GetDeterminant()
Calculates the determinant of the decomposed Matrix.
GetHashCode()
Serves as a hash function for a particular type.
GetInverse()
Calculates the inverse of the factorized Matrix.
GetObjectData(SerializationInfo, StreamingContext)
Populates a SerializationInfo with the data needed to serialize the target object.
GetType()
Gets the Type of the current instance.
IsSingular()
Gets a value indicating whether the BaseMatrix of this decomposition is singular.
LeastSquaresSolve(Vector)
Solves the system of linear equations in the least-squares sense for the specified right-hand side Vector.
LeastSquaresSolve(GeneralVector, Boolean)
Solves the system of linear equations in the least-squares sense for the specified right-hand side Vector.
MemberwiseClone()
Creates a shallow copy of the current Object.
Rank(Double)
Returns the numerical rank of a matrix using the specified tolerance.
SetSingularFlag()
Sets a flag that indicates the underlying matrix of this decomposition is singular.
Solve(GeneralVector, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side Vector.
Solve(GeneralMatrix, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side GeneralMatrix and overwrites the right-hand side with the solution.
Solve(Vector)
Solves the system of linear equations for the specified right-hand side Vector.
Solve(Matrix)
Solves the system of linear equations for the specified right-hand side Matrix.
ToString()
Returns a String that represents the current Object.

Constructors

IconTypeDescription
QRDecompositionNew(Matrix)
Constructs a new QRDecomposition.
QRDecompositionNew(GeneralMatrix, Boolean)
Constructs a new QRDecomposition.

Properties

IconTypeDescription
BaseMatrix
Gets the underlying matrix of the decomposition.
Done
Gets or sets a value that indicates whether the decomposition has been performed.
OrthogonalFactor
Gets the orthogonal matrix Q of this QRDecomposition.
Overwrite
Gets or sets a value indicating whether the BaseMatrix should be overwritten by its decomposition.
TrimmedUpperTriangularFactor
Gets the upper triangular matrix R of this QRDecomposition.
UpperTriangularFactor
Gets the upper triangular matrix R of this QRDecomposition.

Remarks

The QR decomposition of a matrix A rewrites the matrix in the form A= QR, where Q is an orthogonal matrix, and R is an TriangularMatrix.

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.

QRDecomposition inherits from LinearTransformation. 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(GeneralVector, Boolean) method. You can also calculate the GetDeterminant(), the GetInverse(), and an estimate for the EstimateConditionNumber().

Inheritance Hierarchy

See Also