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, VUém-por-m,Sém-por-ncom 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
s = 2×1
6.3246
3.8730
ans = 1×2
3 2
ans = logical
1