qyre#
Purpose#
Computes the orthogonal-triangular (QR) decomposition of a matrix x and returns \(QY\) and \(R\).
Format#
- { qy, r, e } = qyre(y, x)#
- Parameters:
y (NxL matrix) – data
x (NxP matrix) – data
- Returns:
qy (NxL matrix) – unitary matrix
r (KxP matrix) – upper triangular matrix. \(K = min(N,P)\).
e (Px1 vector) – permutation vector
Remarks#
Given \(X[.,E]\), where \(E\) is a permutation vector that permutes the columns of \(X\), there is an orthogonal matrix \(Q\) such that \(Q'X[.,E]\) is zero below its diagonal, i.e.,
where \(R\) is upper triangular. If we partition
where \(Q_1\) has \(P\) columns, then
is the QR decomposition of \(X[., E]\).
For most problems \(Q\) or \(Q_1\) is not what is required. Since \(Q\) can be a
very large matrix, qyre()
has been provided for the calculation of \(QY\),
where \(Y\) is some NxL matrix, which will be a much smaller matrix.
If either \(Q'Y\) or \(Q_1'Y\) are required, see qtyre()
.
If \(N < P\), the factorization assumes the form:
where \(R_1\) is a PxP upper triangular matrix and \(R_2\) is \(P \times (N-P)`\). Thus \(Q\) is a PxP matrix and \(R\) is a PxN matrix containing \(R_1\) and \(R_2\).
Source#
qyr.src