Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Generalized singular value decomposition

`[U,V,X,C,S] = gsvd(A,B)`

`[U,V,X,C,S] = gsvd(A,B,0)`

`sigma = gsvd(A,B)`

`[U,V,X,C,S] = gsvd(A,B)`

returns
unitary matrices `U`

and `V`

, a
(usually) square matrix `X`

, and nonnegative diagonal
matrices `C`

and `S`

so that

A = U*C*X' B = V*S*X' C'*C + S'*S = I

`A`

and `B`

must have the
same number of columns, but may have different numbers of rows. If `A`

is `m`

-by-`p`

and `B`

is `n`

-by-`p`

,
then `U`

is `m`

-by-`m`

, `V`

is `n`

-by-`n`

, `X`

is `p`

-by-`q`

, `C`

is `m`

-by-`q`

and `S`

is `n`

-by-`q`

,
where `q = min(m+n,p)`

.

The nonzero elements of `S`

are always on its
main diagonal. The nonzero elements of `C`

are on
the diagonal `diag(C,max(0,q-m))`

. If ```
m
>= q
```

, this is the main diagonal of `C`

.

`[U,V,X,C,S] = gsvd(A,B,0)`

, where `A`

is `m`

-by-`p`

and `B`

is `n`

-by-`p`

,
produces the “economy-sized“ decomposition where the
resulting `U`

and `V`

have at most `p`

columns,
and `C`

and `S`

have at most `p`

rows.
The generalized singular values are `diag(C)./diag(S)`

so
long as `m >= p`

and `n >= p`

.

If `A`

is `m`

-by-`p`

and `B`

is `n`

-by-`p`

,
then `U`

is `m`

-by-`min(q,m)`

, `V`

is `n`

-by-`min(q,n)`

, `X`

is `p`

-by-`q`

, `C`

is `min(q,m)`

-by-`q`

and `S`

is `min(q,n)`

-by-`q`

,
where `q = min(m+n,p)`

.

`sigma = gsvd(A,B)`

returns
the vector of generalized singular values, `sqrt(diag(C'*C)./diag(S'*S))`

.
When `B`

is square and nonsingular, the generalized
singular values, `gsvd(A,B)`

, correspond to the ordinary
singular values, `svd(A/B)`

, but they are sorted
in the opposite order. Their reciprocals are `gsvd(B,A)`

.

The vector `sigma`

has length `q`

and
is in non-decreasing order.

The matrices have at least as many rows as columns.

A = reshape(1:15,5,3) B = magic(3) A = 1 6 11 2 7 12 3 8 13 4 9 14 5 10 15 B = 8 1 6 3 5 7 4 9 2

The statement

[U,V,X,C,S] = gsvd(A,B)

produces a 5-by-5 orthogonal `U`

, a 3-by-3
orthogonal `V`

, a 3-by-3 nonsingular `X`

,

X = 2.8284 -9.3761 -6.9346 -5.6569 -8.3071 -18.3301 2.8284 -7.2381 -29.7256

and

C = 0.0000 0 0 0 0.3155 0 0 0 0.9807 0 0 0 0 0 0 S = 1.0000 0 0 0 0.9489 0 0 0 0.1957

Since `A`

is rank deficient, the first diagonal
element of `C`

is zero.

The economy sized decomposition,

[U,V,X,C,S] = gsvd(A,B,0)

produces a 5-by-3 matrix `U`

and a 3-by-3 matrix `C`

.

U = 0.5700 -0.6457 -0.4279 -0.7455 -0.3296 -0.4375 -0.1702 -0.0135 -0.4470 0.2966 0.3026 -0.4566 0.0490 0.6187 -0.4661 C = 0.0000 0 0 0 0.3155 0 0 0 0.9807

The other three matrices, `V`

, `X`

,
and `S`

are the same as those obtained with the full
decomposition.

The generalized singular values are the ratios of the diagonal
elements of `C`

and `S`

.

sigma = gsvd(A,B) sigma = 0.0000 0.3325 5.0123

These values are a reordering of the ordinary singular values

svd(A/B) ans = 5.0123 0.3325 0.0000

The matrices have at least as many columns as rows.

A = reshape(1:15,3,5) B = magic(5) A = 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 B = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

The statement

[U,V,X,C,S] = gsvd(A,B)

produces a 3-by-3 orthogonal `U`

, a 5-by-5
orthogonal `V`

, a 5-by-5 nonsingular `X`

and

C = 0 0 0.0000 0 0 0 0 0 0.0439 0 0 0 0 0 0.7432 S = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 0.9990 0 0 0 0 0 0.6690

In this situation, the nonzero diagonal of `C`

is `diag(C,2)`

.
The generalized singular values include three zeros.

sigma = gsvd(A,B) sigma = 0 0 0.0000 0.0439 1.1109

Reversing the roles of `A`

and `B`

reciprocates
these values, producing two infinities.

gsvd(B,A) ans = 1.0e+16 * 0.0000 0.0000 8.8252 Inf Inf

In this formulation of the

`gsvd`

, no assumptions are made about the individual ranks of`A`

or`B`

. The matrix`X`

has full rank if and only if the matrix`[A;B]`

has full rank. In fact,`svd(X)`

and`cond(X)`

are equal to`svd([A;B])`

and`cond([A;B])`

. Other formulations, eg. G. Golub and C. Van Loan [1], require that`null(A)`

and`null(B)`

do not overlap and replace`X`

by`inv(X)`

or`inv(X')`

.Note, however, that when

`null(A)`

and`null(B)`

do overlap, the nonzero elements of`C`

and`S`

are not uniquely determined.

The generalized singular value decomposition uses the C-S decomposition
described in [1],
as well as the built-in `svd`

and `qr`

functions.
The C-S decomposition is implemented in a local function in the `gsvd`

program
file.

[1] Golub, Gene H. and Charles Van Loan, Matrix Computations, Third Edition, Johns Hopkins University Press, Baltimore, 1996

Was this topic helpful?