lista.docx

42
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Terceira Lista de Eerc!ci"s #LE$% Aluna: Bruna Patrícia de Paiva Professora: Úrsula do Carmo Resende

Upload: patricia-paiva

Post on 05-Nov-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

CENTRO FEDERAL DE EDUCAO TECNOLGICA DE MINAS GERAISPROGRAMA DE PS-GRADUAO EM ENGENHARIA ELTRICA

Terceira Lista de Exerccios (LE3)

Aluna: Bruna Patrcia de PaivaProfessora: rsula do Carmo Resende

1) Sobre SVD: apresente modelagem matemtica para calculo; apresente aplicaes prticas; escolha uma aplicao associada compresso de matrizes e faa a decomposio, a compresso e a analise o nmero de condicionamento antes e depois da compresso. Comente e analise todos os resultados.

1.1 TEORIA

Decomposio em valores singularesEmlgebra linear, adecomposio em valores singularesousingular value decomposition(SVD) afatoraode uma matrizrealoucomplexa, com diversas aplicaes importantes emprocessamento de sinaiseestatstica.Formalmente, a decomposio em valores singulares de uma matrizmnreal ou complexaM uma fatorao ou fatorizao na forma:

ondeU umamatriz unitriammreal ou complexa, umamatriz retangular diagonalmncom nmeros reais no-negativos na diagonal, eV*(aconjugada transpostadeV) uma matriz unitriannreal ou complexa. As entradas diagonais i,ide so os chamadosvalores singularesdeM. Asmcolunas deUe asncolunas deVso os chamadosvetores singulares esquerdaevetores singulares direitadeM, respetivamente.A decomposio em valores singulares e adecomposio em autovaloresso intimamente relacionadas. Mais especificamente: Os vetores singulares esquerda deMsoautovetoresde Os vetores singulares direita deMsoautovetoresde Os valores singulares no-nulos deM(ao longo da diagonal de) so as razes dosautovaloresno-nulos deou

Dentre as aplicaes que envolvem a SVD esto o clculo dapseudoinversa, o ajuste (fitting) de dados pormnimos quadrados, aproximao de matrizes, e a determinao doposto,imagemencleode uma matriz.Enunciado do teoremaSuponha-se queM umamatrizmncujas entradas vm de umcorpode escalaresK, que pode ser tanto o corpo denmeros reaisou o corpo denmeros complexos. Ento existe uma fatorizao da forma:ondeU umamatriz unitriammsobreK, a matriz umamatriz diagonalmncom nmeros reais no-negativos na diagonal, eV*, uma matriz unitriannsobreK, denota atransposta conjugadadeV. Tal fatorizao chamada dedecomposio em valores singularesdeM. Os elementos diagonaisde so chamados devalores singularesdeM. Uma conveno bastante comum listar os valores singulares em ordem decrescente. Neste caso, a matriz diagonal determinada de forma nica porM(mas as matrizesUeVno so).

Interpretaes intuitivasRotao, escala, rotaoNo caso especial porm comum no qualM apenas umamatriz quadradammcomdeterminantepositivo cujas entradas so merosnmeros reais, entoU,V*, e so matrizesmmtambm de nmeros reais, pode ser vista como umamatriz de escala, e U e V* podem ser vistas comomatrizes de rotao.

Visualizao da SVD de uma matriz real bi-dimensional (shearing matrix)M. Primeiro, v-se o crculo unitrioem azul juntamente com os dois vetores unitrios dabase cannica. Tambm pode ser vista a ao deM, que distorce o crculo a uma elipse. A SVD decompeMem trs transformaes simples: arotaoV*, a escala (esticamento) juntamente com os eixos rotacionados e uma segunda rotaoU. Os comprimentos 1e 2dossemi-eixosda elipse so osvalores singularesdeM.Se as condies supracitadas so satisfeitas, a expressopode ser interpretada intuitivamente como umacomposio(ousequncia) de trstransformaes geomtricas: umarotao, uma escala, e outra rotao. A figura acima exemplifica como umamatriz de cisalhamento(shear matrix) pode ser descrita como tal sequncia.Valores singulares como semi-eixos de uma elipse ou elipsoideComo ilustrado na figura, os valores singulares podem ser interpretados como os semi-eixos de umaelipseem 2D. Este conceito pode ser generalizado para oEspao euclidianon-dimensional, com valores singulares de qualquermatriz quadradanxnsendo vistos como os semi-eixos de umelipsoiden-dimensional. Vejaabaixopara maiores detalhes.UeVso bases ortonormaisComoUeV*so unitrias, as colunas de cada uma formam um conjunto devetores ortonormais, que podem ser tomados umabase. Pela definio dematriz unitria, o mesmo vale para suas conjugadas transpostasU*eV. Em suma,U,U*,V, eV*sobases ortonormais.ExemploConsidere-se a matriz 45

A decomposio em valores singulares desta matriz dada por

Note-se quecontm apenas zeros fora da diagonal. Ademais, como as matrizesesounitrias, multiplicando-se por suas respectivas conjugadas transpostas gera matrizes identidades, como mostrado a seguir. Nesse caso, comoeso reais, cada uma delas umamatriz ortogonal.

e

Deve-se notar que esta decomposio em valores singulares em particular no nica. Escolhendo-setal que

tambm uma decomposio vlida em valores singulares.Valores singulares, vetores singulares e sua relao com a SVDUm nmero real no-negativo umvalor singularparaMse e somente se existemvetores unitriosuemKmevemKntal que

Os vetoresuevso chamadosvetor singular esquerdaevetor singular direitapara , respectivamente.Em qualquer decomposio em valores singulares

Os elementos diagonais de so iguais aos valores singulares deM. As colunas deUeVso, respectivamente, vetores singulares esquerda e direita para os valores singulares correspondentes. Por consequncia, o teorema acima implica que: Uma matrizmnMtem pelo menos um e no mximop= min(m,n) valores singulares distintos. sempre possvel encontrar umabase ortogonalUparaKmconsistindo dos vetores singulares esquerda deM. sempre possvel encontrar umabase ortogonalVparaKnconsistindo dos vetores singulares direita deM.

Um valor singular para o qual podemos encontrar dois vetores singulares esquerda (ou direita) que sejam linearmente independentes chamadodegenerado.Valores singulares no-degenerados tm sempre vetores singulares esquerda e direita nicos, a no ser pela multiplicao por um fator de fase nicoei(para o caso real a no ser pelo sinal). Assim, se todos os valores singulares deMso no-degenerados e no-zero, ento sua decomposio em valores singulares nica, a no ser por multiplicao de uma coluna deUpor um fator de fase nico e a multiplicao simultnea da coluna correspondente deVpelo mesmo fator unitrio de fase. Valores singulares degenerados tm, por definio, vrios vetores singulares distintos. Ademais, seu1eu2so dois vetores singulares esquerda ambos correspondendo ao valor singular , ento qualquer combinao linear normalizada de dois vetores tambm um vetor singular esquerda correspondendo ao valor singular . Raciocnio anlogo vlido para vetores singulares direita. Por consequncia, seMtem valores singulares degenerados, ento sua decomposio em valores singulares no nica.Aplicaes da SVDPseudo-inversaA decomposio em valores singulares pode ser usada para calcular apseudoinversa(MoorePenrose pseudoinverse) de uma matriz, a qual til como uma forma de resolver problemas demnimos quadrados lineares. De fato, a pseudoinversa da matrizMcom decomposio em valores singulares

onde + a pseudoinversa de , a qual formada substituindo-se todo elemento diagonal no-nulo por seuinversoe tomando-se a transposta da matriz resultante.Soluo de sistemas lineares homogneosUm conjunto deequaes lineares homogneaspode ser escrito comopara uma matrize vetor. Uma situao tpica quando dada e quer-se determinarno-nulo que satisfaa a equao. Talpertence aoncleodee por vezes chamado de vetor nulo ( direita) de.pode ser caracterizado como um vetor singular direita correspondendo a um valor singular deque seja zero. Isto significa que se umamatriz quadradae no tem nenhum valor singular nulo, ento a equao temno-nulo como soluo. Tambm significa que se existem vrios valores singulares nulos, qualquer combinao linear dos vetores singulares direita uma soluo vlida. Analogamente definio de um vetor nulo ( direita), umno-nulo satisfazendo, comsendo a transposta conjugada de, chamada de um vetor nulo esquerda de.Minimizao de mnimos quadrados totaisUm problema demnimos quadradostotais (total least squares) objetiva determinar o vetorque minimiza anormade um vetorsob a restrio. Mostra-se que a soluo o vetor singular direita decorrespondendo ao menor valor singular.Imagem, ncleo e postoOutra aplicao da SVD que a mesma representa explicitamente aimageme oncleode uma matrizM. Os vetores singulares direita que correspondem a valores singulares nulos deMgeram o ncleo (kernel) deM. Por exemplo, o ncleo gerado pelas ltimas duas colunas deno exemplo acima. Os valores singulares esquerda correspondendo aos valores singulares no-nulos deMgeram a imagem deM. Assim, opostodeM igual ao nmero de valores singulares no-nulos que igual ao nmero de elementos no-diagonais em.Em lgebra linear numrica os valores singulares podem ser usados para determinar oposto efetivode uma matriz, j queerros de arredondamentopodem levar a valores singulares pequenos porm no-nulos numa matriz de posto deficiente.Aproximao por matriz de baixo postoAlgumas aplicaes prticas precisam resolver o problema de se aproximar uma matrizusando outra matrizde posto. Para o caso em que a aproximao baseada na minimizao danorma de Frobeniusda diferena entreesob a restrio de que, pode-se mostrar que a soluo dada pela SVD de:

onde a mesma matriz quea no ser pelo fato de conter osmaiores valores singulares (os outros valores singulares so substitudos por zero). Isso conhecido como oteorema EckartYoung, provado por tais autores em 1936 (apesar de ter-se descoberto mais tarde que j era conhecido por outros autores; vejaStewart 1993).Modelos separveisA SVD pode ser vista como a decomposio de uma matriz em uma soma ponderada e ordenada de matrizes separveis. O termo 'separvel' refere-se ao fato de uma matrizpoder ser escrita como umproduto externode dois vetores, ou, em coordenadas,. Especificamente, a matrizMpode ser decomposta como:

Aqui,eso asi-simas colunas das matrizes SVD correspondentes,so os autovalores ordenados, e cada separvel. A SVD pode ser usada para encontrar a decomposio de um filtro de processamento de imagens em filtros separados verticais e horizontais. Note-se que o nmero de's no-nulos precisamente o posto da matriz.Matriz ortogonal mais prximaPode-se utilizar a SVD depara determinar amatriz ortogonalmais prxima de. A proximidade medida pelanorma de Frobeniusde. A soluo o produto.Isso confere com a intuio j que uma matriz ortogonal deveria ter a decomposioonde a matriz identidade, de forma que seento o produtose reduz a colocar 1's no lugar dos valores singulares.Um problema similar, com aplicaes fundamentais emviso computacional,robticaeen:shape analysis, oProblema de Procrustes Ortogonal(orthogonal Procrustes problem), que consiste em encontrar uma matriz ortogonalque mapeiao mais prximo possvel de. Formalmente,

onde a norma de Frobenius.Este problema equivalente ao de encontrar a matriz ortogonal mais prxima a uma dada matriz.

O Algoritmo de KabschOalgoritmo de Kabsch(Kabsch algorithm), tambm conhecido comoWahba's problem, utiliza a SVD para calcular a rotao tima (no sentido dos mnimos quadrados) que alinha um conjunto de pontos com um conjunto de pontos correspondentes. Isso tem aplicaes para a comparao de estruturas moleculares e em problemas relacionados a modelos 3D emviso computacionalerobtica.Outros exemplosA SVD tambm aplicada extensivamente ao estudo deproblemas inversos linearese til na anlise de mtodos de regularizao tais como os deregularizao de Tikhonov(Tikhonov regularization).Tambm amplamente utilizada emestatstica, onde se relaciona com aanlise de componentes principaise en:Correspondence analysis, de aplicao direta emprocessamento de sinaisereconhecimento de padres. Tambm usada emanlise modal, onde osmode shapesno escalados podem ser determinados pelos vetores singulares. Ainda outro uso noindexamento semntico latenteno processamento de linguagem natural textual.A SVD tambm tem papel crucial no campo dainformao quntica(quantum information), numa forma comumente chamada dedecomposio de Schmidt. Atravs dela, estados de dois sistemas qunticos so decompostos naturalmente, provendo condio necessria e suficiente para eles serementangled: se o posto de maior que um.Uma aplicao da SVD para matrizes grandes napreviso numrica do tempo, onde os vetores singulares gerados podem representar sistemas meteorolgicos inteiros. Outra aplicao a obteno da equao do raio de luz que gerou um ponto em uma projeo perspectiva de uma cena (como uma foto) atravs dapseudoinversa(MoorePenrose pseudoinverse). Relao com a decomposio em autovalores (espectral)A decomposio em valores singulares bastante geral, j que pode ser aplicada a qualquer matrizmn, ao passo que adecomposio em autovalorespode apenas ser aplicada para algumas classes de matrizes quadradas.Dada uma SVD deM, como acima, valem as seguintes condies:

Os lados direitos dessas relaes descrevem a decomposio em autovalor dos lados esquerdos. Sendo assim: Os vetores singulares esquerda deMsoautovetoresde Os vetores singulares direita deMsoautovetoresde Os valores singulares no-nulos deM(ao longo da diagonal de) so as razes dosautovaloresno-nulos deou

No caso especial em queM umamatriz normal, que por definio deve ser quadrada, oteorema espectraldiz que ela pode ser unitariamentediagonalizadausando-se uma base deautovalores, de forma que ela pode ser escritapara uma matriz unitriaUe uma matriz diagonalD. QuandoM tambmpositiva semi-definida, a decomposio tambm uma SVD.No entanto, as decomposies em autovalores e em valores singulares diferem para todas outras matrizesM: a decomposio espectral ondeUno necessariamente unitria eDno necessariamente positiva semi-definida, enquanto a SVD onde diagonal postiva semi-definida, eUeVso matrizes unitrias que no so necessariamente relacionadas exceto atravs deM.Condicionamento

Decomposicao em Valores SingularesA decomposicao em valores singulares e o associado conceito de condicionamento so ferramentas de suma importncia em mtodos nmericos e analise nmerica. Uma matrizAdo tipo m por n (real ou complexa) pode sempre ser escrita como:A = U S V'aondeUeVsao ortogonais (unitarias) eS diagonal. As colunas da matriz m por mUsao os auto-vetores da matrizA A' enquanto que as colunas da matriz n por nVsao os auto-vetores da matrizA A'. Alem disso os chamados valores singulares que sao os elementos da diagonal deSsao as raizes quadradas dos auto-valores nao nulos deA A' e deA'AEm matlab para calcularmos a decomposicao em valores singulares (SVD) de uma matrizAusamos o comando>> [U,S,V] = svd(A)Exemplo: >> A = [ 2 0; 0 -3; 0 0]A = 2 0 0 -3 0 0>> [ U, S, V] = svd(A)U = 0 1 0 1 0 0 0 0 1S = 3 0 0 2 0 0V = 0 1 -1 0A idia geomtrica fundamental que permeia a SVD obtermos duas bases ortonornais nas quais a transformao linear possa ser escrita como uma aplicao que manda elementos de uma base em mltiplos de elementos da outra.O comando eigshow permite visualizar no caso de matrizes 2 por 2 as duas bases mencionadas acima em diversos exemplos.A anlise da soluo de sistemas lineares pode ser feita com base na decomposio em valores singulares. De fato, uma vez que possuimos a decomposio em valores singulares deA=U S V'. Suponha quem=ne que todos os valores singulares deAsejam no nulos. Pra resolvermos o sistemaA x=ybasta fazermos:x=V S-1U'yaonde, comoS diagonal,S-1 bastante simples de ser calculada. invertendo os elementos da diagonal deS. Por outro lado se alguns dos valores singulares estiverem prximos de zero, isto significa que o nosso sistema de equaes potencialmente instvel e que pequenas modificaes no lado direitoypodem levar a grandes modificaes na soluos.Isto leva a noo decondicionamentoque a relao entre o maior e o menor dos valores singulares.CondicionamentoPara calcularmos o condicionamento de uma matriz com matlab basta o comando ``cond."Exemplo:% Criamos a matriz de Hilbert A = (( 1 / (i + j -1) )) , i,j = 1:5>> A = hilb(5)

A =

1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111

>> cond(A)

ans =

4.7661e+05O seguinte exemplo mostra como o mal condicionamento de uma matriz leva a serios problemas. Consideraremos uma matriz de Hilbert de tamanho 10, definida pore resolveremos os sistemascomum vetor aleatorio (uniformemente distribuido entre 0 e 0.1).>> x2 = B\(ones(10,1)+0.1*rand(10,1));>> x1 = B\(ones(10,1));>> norm(x1-x2)/norm(x1)

ans =

1.4627e+04

>> A = hilb(10);>> y1 = ones(10,1);>> y2 = (ones(10,1) + 0.1*rand(10,1));>> x1 = A\y1;>> x2 = A\y2;>> % erro relativo>> rx = norm(x1-x2)/norm(x1)

rx =

2.5118e+04

>> %variacao no lado direito>> ry = norm(y1-y2)/norm(y1)

ry = 0.0580>> rx/ryans = 4.3322e+05>> cond(A)ans = 1.6025e+13Note que uma pequena variao no lado direito levou a uma tremenda variao na soluo. Isto era de se espera visto que o o nmero de condicionamento desta matriz imenso.

1.2 ALGORITMOclose allclearclcS='S'; s='s';resp = 's';while resp == 's' || resp == 'S' clc; Entrada = input ('Digite o caminho para o arquivo (entre aspas simples)\n'); img = imread(Entrada);

if ndims(img)>=3 img = rgb2gray(img); % Converte para Preto e Branco end

figure(1) imshow(img)

img = single(uint8(img)); % Converso necessria para a funo svd

[U, S, V] = svd(img); % Gera as trs matrizes cujo produto resulta em A

valores_singulares = diag(S); % A diagonal da Matriz S contm os valores singulares figure(2) title('Valores Singulares') plot(valores_singulares,'*')

k = input ('Digite quantos Valores Singulares voc deseja usar\n');

Sk = S(1:k,1:k); % Uk = U(:,1:k); % Retira valores singulares para comprimir a imagem Vk = V(:,1:k); %

Pk = Sk*Vk';

tam_Pk = size(Pk); tam_Pk = tam_Pk(1)*tam_Pk(2);

tam_Uk = size(Uk); tam_Uk = tam_Uk(1)*tam_Uk(2);

tam_final = tam_Uk + tam_Pk; % tamanho aps compresso

tam_inicial = size(img); tam_inicial = tam_inicial(1)*tam_inicial(2); % tamanho da imagem inicial em P/B

porcentagem = tam_final*100/tam_inicial; if tam_inicial