IMSL C# Numerical Library

QR Class

QR Decomposition of a matrix.

For a list of all members of this type, see QR Members.

System.Object
   Imsl.Math.QR

public class QR

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Class QR computes the QR decomposition of a matrix using Householder transformations. It is based on the LINPACK routine SQRDC; see Dongarra et al. (1979).

QR determines an orthogonal matrix Q, a permutation matrix P, and an upper trapezoidal matrix R with diagonal elements of nonincreasing magnitude, such that AP = QR. The Householder transformation for column k is of the form

I - \frac{{u_k u_k^T }}{{P_k }}

for k = 1, 2, \ldots, min(number of rows of A, number of columns of A), where u has zeros in the first k - 1 positions. The matrix Q is not produced directly by QR. Instead the information needed to reconstruct the Householder transformations is saved. If the matrix Q is needed explicitly, use the Q property. This method accumulates Q from its factored form.

Before the decomposition is computed, initial columns are moved to the beginning of the array A and the final columns to the end. Both initial and final columns are frozen in place during the computation. Only free columns are pivoted. Pivoting is done on the free columns of largest reduced norm.

Requirements

Namespace: Imsl.Math

Assembly: ImslCS (in ImslCS.dll)

See Also

QR Members | Imsl.Math Namespace | Example