Caam 453 Numerical Analysis I: 6 October 2009 M. Embree, Rice University
Caam 453 Numerical Analysis I: 6 October 2009 M. Embree, Rice University
Caam 453 Numerical Analysis I: 6 October 2009 M. Embree, Rice University
Hvj = λj vj
A=U b ∗.
b ΣV
This matrix factorization is known as the reduced singular value decomposition. It can be obtained
via the MATLAB command
While the matrix Ub has orthonormal columns, it is not a unitary matrix. In particular, we have
U∗
b Ub =I∈ n×n C
, but
U b ∗ ∈ m×m
bU C
cannot be the identity unless m = n. (To see this, note that U
bUb ∗ is an orthogonal projection onto
Ran(U) = span{u1 , . . . , un }. Since dim(Ran(U)) = n, this projection cannot equal the m-by-m
b b
identity matrix when m > n.)
Though U b is not unitary, we might call it subunitary.‡ We can construct m − n additional column
vectors to append to Ub to make it unitary. Here is the recipe: For j = n + 1, . . . , m, pick
uj ∈ span{u1 , . . . , uj−1 }⊥
C
Σ
∈ m×n .
b
Σ=
0
Finally, we are prepared to state our main result, the full singular value decomposition.
Theorem (Singular value decomposition). Any matrix A ∈ Cm×n can be written in the form
A = UΣV∗ ,
C C C
where U ∈ m×m and V ∈ n×n are unitary matrices and Σ ∈ m×n is zero everywhere except
for entries on the main diagonal, where the (j, j) entry is σj for j = 1, . . . , min(m, n), and
σ1 ≥ σ2 ≥ · · · ≥ σmin(m,n) ≥ 0.
‡
There is no universally accepted term for such a matrix; Gilbert Strang suggests the descriptive term subunitary.
We have only proved this result for m ≥ n. The proof for m < n is obtained by applying the same
arguments above to A∗ in place of A.
The full SVD is obtained via the MATLAB command
[U,S,V] = svd(A).