Compute the QR factorization of A, using standard LAPACK
The QR factorization is
Q * R = A where Q is an orthogonal matrix and
R is upper triangular.
For example, given the matrix
A = [1, 2; 3, 4],
[Q, R] = qr (A)
Q = -0.31623 -0.94868 -0.94868 0.31623 R = -3.16228 -4.42719 0.00000 -0.63246
qr factorization has applications in the solution of least
min norm(A x - b)
for overdetermined systems of equations (i.e., A is a tall, thin matrix).
If only a single return value is requested, then it is either R if
A is sparse, or X such that
R = triu (X) if
A is full.
(Note: Unlike most commands, the single return value is not
the first return value when multiple are requested.)
If the matrix A is full, the permuted QR factorization
[Q, R, P] = qr (A) forms the
QR factorization such that the diagonal entries of R are
decreasing in magnitude order. For example, given the matrix
a = [1, 2; 3, 4],
[Q, R, P] = qr (A)
Q = -0.44721 -0.89443 -0.89443 0.44721 R = -4.47214 -3.13050 0.00000 0.44721 P = 0 1 1 0
[Q, R, P] = qr (A) factorization allows the
construction of an orthogonal basis of
If the matrix A is sparse, then the sparse QR factorization
of A is computed using CSPARSE.
As the matrix Q is in general a full matrix,
it is recommended to request only one return value,
which is the Q-less factorization R of A, such that
R = chol (A' * A).
If an additional matrix B is supplied and two return values are
C = Q' * B. This allows the
least squares approximation of
A \ B to be calculated
[C, R] = qr (A, B) x = R \ C
If the final argument is the scalar 0 and the number of rows is larger
than the number of columns, then an
"economy" factorization is
returned, omitting zeroes of R and the corresponding columns of Q.
That is, R will have only
size (A,1) rows. In this case,
P is a vector rather than a matrix.
If the final argument is the string
"vector" then P is a
permutation vector instead of a permutation matrix.
See also: chol, hess, lu, qz, schur, svd, qrupdate, qrinsert, qrdelete, qrshift.