# rankqr

rank revealing QR factorization

### Syntax

[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])

### Arguments

- A
real or complex matrix

- RCOND
real number used to determine the effective rank of

`A`

, which is defined as the order of the largest leading triangular submatrix`R11`

in the QR factorization with pivoting of`A`

, whose estimated condition number <`1/RCOND`

.- JPVT
integer vector on entry, if

`JPVT(i)`

is not 0, the`i`

-th column of`A`

is permuted to the front of`AP`

, otherwise column`i`

is a free column. On exit, if`JPVT(i) = k`

, then the`i`

-th column of`A*P`

was the`k`

-th column of`A`

.- RANK
the effective rank of

`A`

, i.e., the order of the submatrix`R11`

. This is the same as the order of the submatrix`T1`

in the complete orthogonal factorization of`A`

.- SVAL
real vector with 3 components; The estimates of some of the singular values of the triangular factor

`R`

.`SVAL(1)`

is the largest singular value of`R(1:RANK,1:RANK)`

;`SVAL(2)`

is the smallest singular value of`R(1:RANK,1:RANK)`

;`SVAL(3)`

is the smallest singular value of`R(1:RANK+1,1:RANK+1)`

, if`RANK`

<`MIN(M,N)`

, or of`R(1:RANK,1:RANK)`

, otherwise.

### Description

To compute (optionally) a rank-revealing QR factorization of a real
general M-by-N real or complex matrix `A`

, which may be
rank-deficient, and estimate its effective rank using incremental
condition estimation.

The routine uses a QR factorization with column pivoting:

A * P = Q * R, where R = [ R11 R12 ], [ 0 R22 ]

with `R11`

defined as the largest leading submatrix whose
estimated condition number is less than `1/RCOND`

. The
order of `R11`

, `RANK`

, is the effective rank of
`A`

.

If the triangular factorization is a rank-revealing one (which will be
the case if the leading columns were well- conditioned), then
`SVAL(1)`

will also be an estimate for the largest singular
value of `A`

, and `SVAL(2)`

and
`SVAL(3)`

will be estimates for the `RANK`

-th
and `(RANK+1)`

-st singular values of `A`

,
respectively.

By examining these values, one can confirm that the
rank is well defined with respect to the chosen value of
`RCOND`

. The ratio `SVAL(1)/SVAL(2)`

is an
estimate of the condition number of `R(1:RANK,1:RANK)`

.

### Used Functions

Slicot library routines MB03OD, ZB03OD.

Report an issue | ||

<< qr | Factorization | schur >> |