Vimos no Teorema Espectral que é possível decompor qualquer matriz simétrica como o produto entre 3 matrizes, sendo uma delas diagonal (contendo os autovalores) e as outras duas ortogonais (de transição entre a base canônica e a base ortonormal de autovetores). Esse tópico apresenta uma espécie de “generalização” do Teorema Espectral para uma matriz qualquer de dimensão .
A ideia geral é similar, queremos decompor uma matriz como o produto entre 3 matrizes:
Em particular, nos seria interessante que tais matrizes tenham propriedades similares ao caso do Teorema Espectral, com e ortogonais e diagonal. Mas note que se não é quadrada essa configuração não é possível, já que para tal deveríamos ter 3 matrizes quadradas, cujo produto não resultaria em uma matriz não quadrada. Como veremos, o que obteremos será o seguinte:
- é uma matriz ortogonal ;
- é uma matriz retangular diagonal ;
- é a transposta de uma matriz ortogonal .
O próximo teorema é a base para essa ideia. Ele nos indica quais serão os valores da diagonal de , chamados de valores singulares, e quais os vetores que irão compor as matrizes e . Para demonstrá-lo precisamos do seguinte lema:
Tais constituirão as colunas da matriz e são chamados de vetores singulares à direita, enquanto constituirão as colunas de e são chamados de vetores singulares à esquerda.
A partir disso, temos então a chamada Decomposição em Valores Singulares (também conhecida como SVD, do inglês Singular Value Decomposition) de uma matriz:
Vejamos agora um exemplo, para entender como a decomposição em valores singulares é feita na prática.
Aproximação de matrizes utilizando SVD¶
Entre uma das muitas aplicações da decomposição SVD está a aproximação de matrizes. Em um cenário computacional, é comum que seja mais vantajoso trabalharmos com uma aproximação de determinado objeto matemático do que com sua forma exata. Para matrizes isso ocorre com bastante frequência.
Por exemplo, suponha que uma matriz de posto possua os valores singulares não nulos . Ou seja, . Ao realizarmos cálculos com essa matriz na forma SVD em um computador, devido à natureza da arimética de ponto flutuante, haverá um acúmulo de erros decorrente dos produtos com a entrada 0.0001. Nesse caso, como 0.0001 está muito próximo de 0, acaba sendo mais benéfico (do ponto de vista de minimização de erros) “truncarmos” o posto de para , isto é, consideramos .
Observe que possui posto .
O tópico Compressão de imagens utilizando Decomposição em Valores Singulares mostra como essa ideia de aproximação de matrizes é aplicada.
Caso todos os autovalores sejam distintos, por Proposition 3 sabemos que todos os autovetores encontrados serão ortogonais. Mas, caso hajam autovalores repetidos, não há essa garantia. Logo, talvez seja necessário ortogonalizar alguns autovetores, o que pode ser feito via processo de Gram-Schmidt.
O que mais uma vez pode ser feito via processo de Gram-Schmidt.