Complete orthogonal decomposition

From testwiki
Jump to navigation Jump to search

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, 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

Template:Reflist

Template:Numerical linear algebra