svd

Decomposição em valores singulares de uma matriz.

Categoria: Mathematics > Linear Algebra

Sintaxe

s = svd(A)

Retorna os valores singulares como vetor coluna em ordem decrescente.

[U, S, V] = svd(A)

Retorna U e V ortogonais e S diagonal com A = U*S*V'.

[U, S, V] = svd(A, 'econ')

Tamanho econômico: descarta as colunas de U ou V que multiplicam linhas ou colunas nulas de S.

[U, S, V] = svd(A, 0)

Como 'econ' para m > n; para m <= n equivale à forma completa.

Descrição

Toda matriz se fatora como uma rotação, uma escala ao longo de eixos ortogonais e outra rotação. Os valores singulares são os fatores de escala: o maior é norm(A), a razão entre o maior e o menor é cond(A), e o número deles acima de uma tolerância é rank(A).

Truncar a decomposição nos k maiores valores singulares dá a melhor aproximação de posto k de A, base da compressão de dados e da análise de componentes principais.

Argumentos de entrada

A
Matriz numérica de qualquer formato. Entradas NaN ou Inf causam erro.
'econ' or 0
Pedem a decomposição de tamanho econômico.

Argumentos de saída

s
Vetor com min(size(A)) valores singulares não negativos.
U, S, V
U é m-por-m, S é m-por-n com os valores singulares na diagonal, V é n-por-n.

Exemplo

Valores e fatores econômicos

A = [4 1; 2 3; 0 5];
s = svd(A)
[U, S, V] = svd(A, 'econ');
size(U)
norm(U*S*V' - A) < 1e-12
Saída
s = 2×1

    6.3246
    3.8730
ans = 1×2

     3     2
ans = logical
   1

Veja também

svds pinv rank norm cond pagesvd