qr
QR decomposition
Syntax
[Q,R]=qr(X [,"e"]) [Q,R,E]=qr(X [,"e"]) [Q,R,rk,E]=qr(X [,tol])
Arguments
- X
real or complex matrix
- tol
nonnegative real number
- Q
square orthogonal or unitary matrix
- R
matrix with same dimensions as
X- E
permutation matrix
- rk
integer (QR-rank of
X)
Description
- [Q,R] = qr(X)
produces an upper triangular matrix
Rof the same dimension asXand an orthogonal (unitary in the complex case) matrixQso thatX = Q*R.[Q,R] = qr(X,"e")produces an "economy size": IfXis m-by-n with m > n, then only the first n columns ofQare computed as well as the first n rows ofR.From
Q*R = X, it follows that the kth column of the matrixX, is expressed as a linear combination of the k first columns ofQ(with coefficientsR(1,k), ..., R(k,k)). The k first columns ofQmake an orthogonal basis of the subspace spanned by the k first columns ofX. If columnkofX(i.e.X(:,k)) is a linear combination of the firstpcolumns ofX, then the entriesR(p+1,k), ..., R(k,k)are zero. It this situation,Ris upper trapezoidal. IfXhas rankrk, rowsR(rk+1,:), R(rk+2,:), ...are zeros.- [Q,R,E] = qr(X)
produces a (column) permutation matrix
E, an upper triangularRwith decreasing diagonal elements and an orthogonal (or unitary)Qso thatX*E = Q*R. Ifrkis the rank ofX, therkfirst entries along the main diagonal ofR, i.e.R(1,1), R(2,2), ..., R(rk,rk)are all different from zero.[Q,R,E] = qr(X,"e")produces an "economy size": IfXis m-by-n with m > n, then only the first n columns ofQare computed as well as the first n rows ofR.- [Q,R,rk,E] = qr(X ,tol)
returns
rk= rank estimate ofXi.e.rkis the number of diagonal elements inRwhich are larger than a given thresholdtol.- [Q,R,rk,E] = qr(X)
returns
rk= rank estimate ofXi.e.rkis the number of diagonal elements inRwhich are larger thantol=R(1,1)*%eps*max(size(R)). Seerankqrfor a rank revealing QR factorization, using the condition number ofR.
Examples
// QR factorization, generic case // X is tall (full rank) X=rand(5,2);[Q,R]=qr(X); [Q'*X R] //X is fat (full rank) X=rand(2,3);[Q,R]=qr(X); [Q'*X R] //Column 4 of X is a linear combination of columns 1 and 2: X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) //X has rank 2, rows 3 to $ of R are zero: X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R //Evaluating the rank rk: column pivoting ==> rk first //diagonal entries of R are non zero : A=rand(5,2)*rand(2,5); [Q,R,rk,E] = qr(A,1.d-10); norm(Q'*A-R) svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk))
See also
Used Functions
qr decomposition is based the Lapack routines DGEQRF, DGEQPF, DORGQR for the real matrices and ZGEQRF, ZGEQPF, ZORGQR for the complex case.
| Report an issue | ||
| << polar | Факторизация | rankqr >> |