# Remembering the matrix dimensions of QR and SVD decompositions, reduced and full versions.

24 Mar 2022Given a \(m \times n\) matrix \(\mathbf{A}\), \(m \geq n\), what are the dimensions / sizes of the QR decomposition (full and reduced), and the SVD (full and reduced)?

I’m tired of forgetting and then re-deriving, so here are the dimensions. My reference is Trefethen and Bau 1997, Numerical Linear Algebra.

The reduced version is referred to as `thin`

in Eigen. I’ll get to that at the end of the post.

## Full QR dimensions

The decomposition of \(A\) is

\(A = QR\),

in the ‘full’ version of the decomposition,

- \(Q\) is \({m \times m}\),
- \(R\) is \(m \times n\).

Note that \(R\)’s last \(m-n\) rows are zero.

## Reduced QR dimensions

\(A = \hat{Q}\hat{R}\),

- \(\hat{Q}\) is \({m \times n}\),
- \(\hat{R}\) is \({n \times n}\).

## Full SVD dimensions

\(A = U \Sigma V^*\),

- \(U\) is \({m \times m}\),
- \(\Sigma\) is \({m \times n}\),
- \(V\) is \({n \times n}\).

## Reduced SVD dimensions

\(A = \hat{U} \hat{\Sigma} V^*\),

- \(\hat{U}\) is \({m \times n}\),
- \(\hat{\Sigma}\) is \({n \times n}\),
- \(V\) is \({n \times n}\).

## Requesting Full or Reduced versions in Eigen

For the SVD, computing the full or reduced versions in Eigen is done by way of flags, `ComputeThinU`

, `ComputeFullU`

, etc. flags. While the reduced version from the above is analogous to `thin`

in Eigen, it is not the same as that of Trefethen and Bau. Eigen, JacobiSVD docs:

This JacobiSVD decomposition computes only the singular values by default. If you want U or V, you need to ask for them explicitly.

You can ask for only thin U or V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting m be the smaller value among n and p, there are only m singular vectors; the remaining columns of U and V do not correspond to actual singular vectors. Asking for thin U or V means asking for only their m first columns to be formed. So U is then a n-by-m matrix, and V is then a p-by-m matrix. Notice that thin U and V are all you need for (least squares) solving.

Using the dimensions from above, that \(\mathbf{A}\) is \(m \times n\), the dimensions of the thin representations are the following:

- \(\hat{U}\) is \({m \times n}\),
- \(\hat{\Sigma}\) is \({n} \times 1\) (a vector of singular values),
- \(V\) is \({n \times n}\).

I have not been able to find comparable options for QR decompositions in Eigen.

## References

- Eigen documentation for JacobiSVD.
- Lloyd N. Trefethen; David Bau III. 1997.
**Numerical Linear Algebra.**ISBN 9780898713619.