Complete orthogonal decomposition

From HandWiki

In linear algebra, the complete orthogonal decomposition is a matrix decomposition.[1][2] It is similar to the singular value decomposition, but typically somewhat[3] cheaper to compute and in particular much cheaper and easier to update when the original matrix is slightly altered.[1] Specifically, the complete orthogonal decomposition factorizes an arbitrary complex matrix A into a product of three matrices, A=UTV*, where U and V* are unitary matrices and T is a triangular matrix. For a matrix A of rank r, the triangular matrix T can be chosen such that only its top-left r×r block is nonzero, making the decomposition rank-revealing.

For a matrix of size m×n, assuming mn, the complete orthogonal decomposition requires O(mn2) floating point operations and O(m2) auxiliary memory to compute, similar to other rank-revealing decompositions.[1] Crucially however, if a row/column is added or removed or the matrix is perturbed by a rank-one matrix, its decomposition can be updated in O(mn) operations.[1]

Because of its form, A=UTV*, the decomposition is also known as UTV decomposition.[4] Depending on whether a left-triangular or right-triangular matrix is used in place of T, it is also referred to as ULV decomposition[3] or URV decomposition,[5] respectively.

Construction

The UTV decomposition is usually[6][7] computed by means of a pair of QR decompositions: one QR decomposition is applied to the matrix from the left, which yields U, another applied from the right, which yields V*, which "sandwiches" triangular matrix T in the middle.

Let A be a m×n matrix of rank r. One first performs a QR decomposition with column pivoting:

AΠ=U[R11R1200],

where Π is a n×n permutation matrix, U is a m×m unitary matrix, R11 is a r×r upper triangular matrix and R12 is a r×(nr) matrix. One then performs another QR decomposition on the adjoint of R:

[R11*R12*]=V[T*0],

where V is a n×n unitary matrix and T is an r×r lower (left) triangular matrix. Setting V=ΠV yields the complete orthogonal (UTV) decomposition:[1]

A=U[T000]V*.

Since any diagonal matrix is by construction triangular, the singular value decomposition, A=USV*, where S11S220, is a special case of the UTV decomposition. Computing the SVD is slightly more expensive than the UTV decomposition,[3] but has a stronger rank-revealing property.

See also

References

  1. 1.0 1.1 1.2 1.3 1.4 Golub, Gene; van Loon, Charles F. (15 October 1996). Matrix Computations (Third ed.). Johns Hopkins University Press. ISBN 0-8018-5414-8. 
  2. Björck, Åke (December 1996). Numerical methods for least squares problems. SIAM. ISBN 0-89871-360-9. 
  3. 3.0 3.1 3.2 Chandrasekaran, S.; Gu, M.; Pals, T. (January 2006). "A Fast ULV Decomposition Solver for Hierarchically Semiseparable Representations". SIAM Journal on Matrix Analysis and Applications 28 (3): 603–622. doi:10.1137/S0895479803436652. 
  4. Fierro, Ricardo D.; Hansen, Per Christian; Hansen, Peter Søren Kirk (1999). "UTV Tools: Matlab templates for rank-revealing UTV decompositions". Numerical Algorithms 20 (2/3): 165–194. doi:10.1023/A:1019112103049. https://backend.orbit.dtu.dk/ws/files/57025531/10.1023_A_1019112103049.pdf. 
  5. Adams, G.; Griffin, M.F.; Stewart, G.W. (1991). "Direction-of-arrival estimation using the rank-revealing URV decomposition". [Proceedings] ICASSP 91: 1991 International Conference on Acoustics, Speech, and Signal Processing. Proc. Of IEEE Internat. Conf. On Acoustics, Speech, and Signal Processing. pp. 1385-1388 vol.2. doi:10.1109/icassp.1991.150681. ISBN 0-7803-0003-3. 
  6. "LAPACK – Complete Orthogonal Factorization". https://netlib.org/lapack/lug/node43.html. 
  7. "Eigen::CompleteOrthogonalDecomposition". https://eigen.tuxfamily.org/dox-3.3/classEigen_1_1CompleteOrthogonalDecomposition.html.