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 produtoQ∗Afornece 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 =Q∗A
Compute a decomposi¸c˜ao conjugada reduzida de X, obtendo U1, Γ1 eS1
Compute X†=U1∗Γ−11S1
Compute A†=X†Q∗ 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 Q∗Q−In, ondeIn denota a matriz identidade de ordem n.
m×n posto �X−A†�2 �Q∗Q−In�2
8×4 4 5,91×10−11 2,02×10−11 8×4 2 9,39×10−16 2,75×10−15
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 issoQ†difere 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 Q∗Q−In.
m×n posto �X−A†�2 �Q∗Q−In�2
8×6 6 7,76×10−15 2,74×10−15 8×6 3 4,95×10−16 1,47×10−15 50×30 30 5,09×10−14 5,61×10−14 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×10−13 2,01×10−13 800×500 500 1,14×10−10 3,56×10−10 800×500 200 8,56×10−14 1,26×10−11 4000×2000 2000 3,29×10−11 3,06×10−10 4000×2000 1200 2,97×10−12 7,75×10−11
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 10−8.
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. ComputandoQ∗A obtemos
Q∗A= 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= 10−16, tol= 10−30 etol= 10−32 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 = 10−6 e tol = 10−16 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: 10−16, 10−30 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: 10−6 e 10−16 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.