Você está na página 1de 12

Ortogonalizacao de Gram-Schmidt

Antonio Elias Fabris

Instituto de Matematica e Estatstica


Universidade de Sao Paulo

Map 2210 Aplicacoes de Algebra Linear

Antonio Elias Fabris (IME-USP) Gram-Schmidt 1 / 12


Instabilidade do Algoritmo de Gram-Schmidt Classico
a1 = (1, , 0, 0) , a2 = (1, 0, , 0) , a3 = (1, 0, 0, ) fazendo 1 + 2 1
j i vj rij qi
1 v1 = (1, , 0, 0) r11 = 1 + 2 1 q1 = v1 /1 = (1, , 0, 0)
2 v2 = (1, 0, , 0)
1 r12 = q1 a2 = 1
v2 = (0, , , 0)
r22 = ||v2 || =  2 q2 = (0, 1, 1, 0) / 2
3 v3 = (1, 0, 0, )
1 r13 = q1 a3 = 1
v3 = (0, , 0, )
2 r23 = q2 a3 = 0
v3 = (0, , 0, )
r33 = ||v3 || =  2 q3 = (0, 1, 0, 1) / 2
q2 e q3 nao sao ortogonais: q2 q3 = (0, 1, 1, 0)(0, 1, 0, 1) /2 = 1/2

Antonio Elias Fabris (IME-USP) Gram-Schmidt 2 / 12


Revisao da Ortogonalizacao de Gram-Schmidt
Fazendo q1 = a1 /||a1 ||, e o procedimento iterativo
j1
X vj
vj = aj (qi aj )qi e qj = para j = 2, . . . , n (1)
||vj ||
i=1

Como (qi aj )qi = qi qi aj podemos reescrever a recorrencia em (1) :


j1 j1
!
X X
vj = aj qi qi aj = I qi qi aj
i=1 i=1

Vimos anteriormente que se Qj1 = [q1 | |qj1 ] entao



Pj1
I Qj1 Qj1 = i=1 qi qi e a projecao ortogonal sobre hq1 , . . . , qj1 i

I Pj = I Qj1 Qj1 e a projecao ortogonal sobre o complemento
ortogonal de hq1 , . . . , qj1 i

Antonio Elias Fabris (IME-USP) Gram-Schmidt 3 / 12


Projetores de Gram-Schmidt

Resumindo, os vetores ortogonais produzidos por Gram-Schmidt


podem ser escritos em termos de projetores :
P 1 a1 P 2 a2 Pn an
q1 = , q2 = , . . . , qn =
||P1 a1 || ||P2 a2 || ||Pn an ||

onde


Pj = I Qj1 Qj1 com Qj1 = q1 q2 qj1

Pj projeta ortogonalmente sobre o espaco ortogonal a hq1 , . . . , qj1 i


I posto(Pj ) = m (j 1)

Antonio Elias Fabris (IME-USP) Gram-Schmidt 4 / 12


Modificacao dos Calculos nos Projetores de Gram-Schmidt
Relembramos que se q C m entao Pq = I qq e a projecao
ortogonal sobre o complemento ortogonal do espaco gerado por q.

Temos que

Pq2 Pq1 = (I q2 q2 )(I q1 q1 ) = I q1 q1 q2 q2 + q1 q1 q2 q2 =

I q1 q1 q2 q2
pois q1 q1 q2 q2 = 0

Analogamente, como qr qr qs qs = 0 para todo r 6= s :


j
Y j
X
Pqj Pq2 Pq1 = (I qi qi ) = I qi qi = I Qj Qj
i=1 i=1

Antonio Elias Fabris (IME-USP) Gram-Schmidt 5 / 12


Algoritmo de Gram-Schmidt Modificado
Resumindo, o projetor Pj pode ser equivalentemente escrito como

Pj = Pqj1 Pq2 Pq1

onde
Pq = I qq
Pq projeta ortogonalmente sobre o espaco ortogonal a q
I posto(P q) = m 1

O algoritmo Classico calcula o vetor ortogonal atraves de

vj = Pj aj

enquanto o Modificado usa

vj = Pqj1 Pq2 Pq1 aj

Antonio Elias Fabris (IME-USP) Gram-Schmidt 6 / 12


Algoritmo de Gram-Schmidt Modificado
Matematicamente, as duas expressoes para as projecoes sao
equivalentes
Entretanto, a sequencia de operacoes aritmeticas obtidas pelas duas
formulas sao distintas
O algoritmo modificado calcula vj assim:
(1)
vj = aj

(2) (1) (1) (1)


vj = Pq1 vj = vj q1 q1 vj
(3) (2) (2) (2)
vj = Pq2 vj = vj q2 q2 vj
..
.
(j) (j1) (j1) (j1)
vj = vj = Pqj1 vj = vj qj1 qj1 vj

Antonio Elias Fabris (IME-USP) Gram-Schmidt 7 / 12


Gram-Schmidt Modificado

Algoritmo 1 Gram-Schmidt Modificado


Entrada: A = [aij ] Cmn
Sada: Q = [qij ] Cmn , R = [rij ] Cnn
1: for i = 1 to n do
2: vi = ai
3: end for
4: for i = 1 to n do
5: rii = ||vi ||
6: qi = vi /rii
7: for j = i + 1 to n do
8: rij = qi vj
9: vj = vj rij qi
10: end for
11: end for

Antonio Elias Fabris (IME-USP) Gram-Schmidt 8 / 12


Contagem de operacao aritmeticas
Conta numero de operacoes em ponto flutuante (flops) de um
algoritmo

Cada +, , , /, ou , correponde a 1 flop
Limitacoes:
Nao ha distincao entre numeros reais e complexos
Desconsideram-se outros importantes aspectos relativos a eficiencia
computacional
I Maquinas com 1 processador: movimentos dos dados entre a hierarquia
de memoria e execucao simultanea (i.e. concorrente) de varias tarefas
computacionais
I Maquinas com multiprocessadores: do ponto de vista de eficiencia,
melhorias entre a comunicacao entre processadores sao algumas vezes
muito mais significativas do que as melhorias na quantidade de
computacoes aritmeticas
Antonio Elias Fabris (IME-USP) Gram-Schmidt 9 / 12
Contagem de operacoes: G-S Modificado
Neste exemplo, vamos contar todas as operacoes aritmeticas
executadas pelo algoritmo (nao somente o fator principal)

1: for i = 1 to n do
2: vi = ai
3: end for
4: for i = 1 to n do
5: rii = ||vi || m multiplicacoes, m 1 adicoes
6: qi = vi /rii m divisoes
7: for j = i + 1 to n do
8: rij = qi vj m multiplicacoes, m 1 adicoes
9: vj = vj rij qi m multiplicacoes, m subtracoes
10: end for
11: end for

Antonio Elias Fabris (IME-USP) Gram-Schmidt 10 / 12


Total de operacoes: G-S Modificado

n
X n
X n
X
A = m 1 + m 1 = n(m 1) + (m 1)(n i)
i=1 j=i+1 i=1
n(n 1)(m 1) 1
= n(m 1) + = n(n + 1)(m 1)
2 2
n X n n
X X 1
S = m= m(n i) = mn(n 1)
2
i=1 j=i+1 i=1

n n n
X X X 2mn(n 1)
M = m + 2m = mn + 2m(n i) = mn +
2
i=1 j=i+1 i=1
2
= mn
Xn
D = m = mn
i=1

Antonio Elias Fabris (IME-USP) Gram-Schmidt 11 / 12


Total de flops: G-S Modificado

n(n + 1)(m 1) mn(n 1)


A+S +M +D = + + mn2 + mn
2 2
1 1
= 2mn2 + mn n2 n
2 2

A+S +M +D
lim =1
m,n 2mn2

A + S + M + D 2mn2

Antonio Elias Fabris (IME-USP) Gram-Schmidt 12 / 12

Você também pode gostar