Function Reference
— Loadable Function: [q, r, p] = qr (a)
— Loadable Function: [q, r, p] = qr (a, '0')

Compute the QR factorization of a, using standard Lapack subroutines. For example, given the matrix a = [1, 2; 3, 4],

          [q, r] = qr (a)

returns

          q =
          
           -0.31623  -0.94868
           -0.94868   0.31623
          
          r =
          
           -3.16228  -4.42719
            0.00000  -0.63246

The qr factorization has applications in the solution of least squares problems for overdetermined systems of equations (i.e., is a tall, thin matrix). The QR factorization is

If given a second argument of '0', qr returns an economy-sized QR factorization, omitting zero rows of R and the corresponding columns of Q.

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)

returns

          q =
          
           -0.44721  -0.89443
           -0.89443   0.44721
          
          r =
          
           -4.47214  -3.13050
            0.00000   0.44721
          
          p =
          
            0  1
            1  0

The permuted qr factorization [q, r, p] = qr (a) factorization allows the construction of an orthogonal basis of span (a).

If the matrix a is sparse, then compute the sparse QR factorization of a, using CSparse. As the matrix Q is in general a full matrix, this function returns the Q-less factorization r of a, such that r = chol (a' * a).

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. That is r will have only size (a,1) rows.

If an additional matrix b is supplied, then qr returns c, where c = q' * b. This allows the least squares approximation of a \ b to be calculated as

          [c,r] = spqr (a,b)
          x = r \ c