• Nenhum resultado encontrado

3.2 Inversa de Moore-Penrose via decomposi¸c˜ao conjugada

3.2.2 Exemplos num´ericos

= (X,0) = (U1Γ11S1,0), de onde segue que

A= (ΓZ−1)Q = (U1Γ−11 S1,0)Q.

O teorema acima descreve um m´etodo direto para encontrar a inversa de Moore-Penrose usando decomposi¸c˜ao conjugada reduzida. Vale ressaltar que da maneira como exposto no Teorema 3.6, n˜ao se faz necess´ario computar asn colunas da matriz Q, basta que sejam calculadas asrprimeiras colunas. Dessa forma o produtoQAfornece a matriz de posto completo desejada. Al´em disso, n˜ao ´e necess´ario conhecer as n − r ultimas´ colunas de Q para calcular A = (U1Γ11S1,0)Q. O Algoritmo 4 descreve o m´etodo direto mostrado nos Teoremas 3.5 e 3.6

Algoritmo 4. Inversa de Moore-Penrose via decomposi¸c˜ao conjugada DadaA ∈Cm×n com m≥n e posto(A) =r

Compute Q∈Cm×r,Γ∈Cr×r,Z ∈Cm×r via decomposi¸c˜ao conjugada reduzida de A Ser < n ent˜ao fa¸ca:

X =QA

Compute a decomposi¸c˜ao conjugada reduzida de X, obtendo U1, Γ1 eS1

Compute X=U1Γ11S1

Compute A=XQ Se n˜ao, fa¸ca:

Compute A=ZΓ−1Q Fim do se

3.2.2 Exemplos num´ ericos

Os testes abaixo foram realizados usando o software MATLAB.

Exemplo 3.1. Neste exemplo, consideramos algumas matrizes aleat´orias, de posto com-pleto e incomcom-pleto, geradas pelo comando “rand” do MATLAB, e computamos a inversa de Moore-Penrose de tais matrizes usando a decomposi¸c˜ao conjugada executada com o m´etodo de gradientes conjugados. A tabela 3.1 mostra o erro obtido para cada matriz, comparado na norma-2 com A obtida via SVD. Al´em disso analisamos a ortonormali-dade da matriz Q obtida na decomposi¸c˜ao conjugada atrav´es da norma-2 da diferen¸ca QQ−In, ondeIn denota a matriz identidade de ordem n.

m×n posto �X−A2 �QQ−In2

8×4 4 5,91×1011 2,02×1011 8×4 2 9,39×1016 2,75×1015

20×10 10 1,18 0,99

20×10 5 3,01×10+15 2,90

80×50 50 0,88 6,00

80×50 30 4,69×10+14 13,10

Tabela 3.1: Erro cometido ao aproximar A via decomposi¸c˜ao conjugada executada com o m´etodo de gradientes conjugados.

Como podemos notar, quando aumentamos o tamanho da matriz, rapidamente as colu-nas da matrizQperdem a ortonormalidade, com issoQdifere deQ, e consequentemente a matriz ZΓ1Q difere de A.

Exemplo 3.2. Neste exemplo, assim como no exemplo anterior, consideramos matrizes aleat´orias, e computamos a inversa de Moore-Penrose de tais matrizes usando a decom-posi¸c˜ao conjugada executada com o processo de ortonormaliza¸c˜ao de Gram-Schmidt mo-dificado. A tabela 3.2 mostra o erro obtido para cada matriz, comparado na norma-2 com A obtida via SVD, e a norma-2 da diferen¸ca QQ−In.

m×n posto �X−A2 �QQ−In2

8×6 6 7,76×10−15 2,74×10−15 8×6 3 4,95×1016 1,47×1015 50×30 30 5,09×1014 5,61×1014 50×30 20 6,89×10−14 4,90×10−14 100×70 70 2,79×10−12 2,16×10−12 100×70 40 2,67×1013 2,01×1013 800×500 500 1,14×1010 3,56×1010 800×500 200 8,56×10−14 1,26×10−11 4000×2000 2000 3,29×1011 3,06×1010 4000×2000 1200 2,97×1012 7,75×1011

Tabela 3.2: Erro cometido ao aproximar A via decomposi¸c˜ao conjugada executada com o processo de ortonormaliza¸c˜ao de Gram-Schmidt modificado.

Como podemos notar, mesmo para tamanhos maiores, as colunas de Q se mant´em ortonormais, e as aproxima¸c˜oes deA obtidas pela decomposi¸c˜ao conjugada apresentam erro pequeno.

Nos exemplos abaixo usamos o processo de ortonormaliza¸c˜ao de Gram-Schmidt mo-dificado para obter a decomposi¸c˜ao conjugada reduzida, nesse processo, γi ´e considerado nulo se γi < tol, para alguma tolerˆancia tol estabelecida. A menos que seja especificado, a tolerˆancia padr˜ao utilizada foi 108.

Exemplo 3.3. Encontre a inversa de Moore-Penrose da matriz

Calculando uma decomposi¸c˜ao conjugada reduzida deA at´e o posto de A, obtemos

Q=

Isso nos mostra que posto(A) = 2, portanto precisamos de mais uma decomposi¸c˜ao con-jugada reduzida. ComputandoQA obtemos

QA= Portanto, a inversa de Moore-Penrose deA ´e dada por

A = (U1Γ−11 S1)Q =

Para o pr´oximo exemplo, vamos considerar o seguinte problema teste:

Problema Teste 3.1.[14]. Neste problema teste consideramos uma equa¸c˜ao de Fredholm da forma

g(s) =

b a

K(t, s)f(t)dt. (3.1)

com o n´ucleo K(t, s) e a solu¸c˜ao f(t) dadas por K(t, s) = (cos(s) + cos(t))

�sen(u) u

2

e f(t) = a1e−c1(t−t1)2 +a2e−c2(t−t2)2, ondeu=π( sen(s) + sen(t)), ai, ci, ti ∈Rpara i= 1,2 e t, s∈�

π2,π2

. Neste caso foram usados os seguintes valores: a1 = 2; a2 = 1; c1 = 6; c2 = 2; t1 = 0,8; t2 = −0,5. A rotina do MATLAB shaw.m de [14] fornece: uma matriz A ∈ Cn×n da discretiza¸c˜ao de K(t, s) mal condicionada, a solu¸c˜ao exataxbaseada emf(t), e o lado direitobda equa¸c˜ao constru´ıdo a partir de b =Ax.

Exemplo 3.4. Neste exemplo resolvemos o Problema Teste 3.1 usando o m´etodo baseado em decomposi¸c˜ao conjugada. A, b ex s˜ao obtidos a partir da rotina shaw.m de [14] para n = 128. Neste caso a matriz A obtida ´e muito mal condicionada (n´umero de condi¸c˜ao de A: 2,46×1020). X ´e calculada via decomposi¸c˜ao conjugada. A figura 3.1 mostra a solu¸c˜ao exata x e a aproxima¸c˜ao calculada xap = Xb para os seguintes valores de tol:

tol= 1016, tol= 1030 etol= 1032 respectivamente. Neste caso o algoritmo identificou os seguintes valores para o posto deA: r= 13,r= 25 er= 128 respectivamente. Sabemos previamente que posto(A) = 128, por´em o que podemos perceber ´e que quando tentamos calcular a inversa de Moore-Penrose deAcom valores muito pequenos para γi, o processo se torna inst´avel. Ao considerar uma tolerˆancia maior, na pr´atica aproximamos a matriz Apor uma matrizB, cujo posto(B)<posto(A), e calculamosB, ent˜ao consideramos que A ≈ B, o que pode ser usado para obter boas aproxima¸c˜oes da solu¸c˜ao exata x, como mostra a figura 3.1.

Ainda no mesmo exemplo, considerando que em aplica¸c˜oes envolvendo matrizes mal condicionadas, em geral o vetor b cont´em pequenas perturba¸c˜oes, testamos tamb´em a solu¸c˜ao do sistema Ax = ˜b, onde ˜b = b+e, com um determinado n´ıvel de ru´ıdo, repre-sentado por NL (Noise level). A figura 3.2 compara a solu¸c˜ao exata x com a solu¸c˜ao aproximadaxap =X˜b, onde X ´e obtido pela decomposi¸c˜ao conjugada usandotol = 106 e tol = 1016 respectivamente. Note que a mesma tolerˆancia que capturou uma boa aproxima¸c˜ao para o caso de b sem ru´ıdos n˜ao obteve sucesso nesse caso, por´em com uma tolerˆancia maior foi poss´ıvel capturar melhores aproxima¸c˜oes.

−2 −1 0 1 2

Figura 3.1: Solu¸c˜ao exata do Problema Teste 3.1 e solu¸c˜ao aproximada constru´ıda por Xb, onde X ´e calculada por decomposi¸c˜ao conjugada com tolerˆancias: 1016, 1030 e 10−32 respectivamente.

Figura 3.2: Solu¸c˜ao exata do Problema Teste 3.1 e solu¸c˜ao aproximada constru´ıda por X˜b, onde X ´e calculada por decomposi¸c˜ao conjugada com tolerˆancias: 106 e 1016 res-pectivamente, e ˜b=b+e com NL= 0,0010.

O Exemplo 3.4 mostra que o m´etodo baseado em decomposi¸c˜ao conjugada pode ser usado em problemas mal condicionados, desde que consideremos uma tolerˆancia adequada para identificar quando γi ´e nulo.

Documentos relacionados