You are on page 1of 11

2.8 Aplicao de Mtodos Ortogonais ao Problema de Mnimos Quadrados 2.8.

1 Introduo

Na soluo de problemas matriciais importante utilizar transformaes que preservem a soluo do problema e ao mesmo tempo sejam til na simplificao do problema. Nesta seo ser visto a utilizao de transformaes ortogonais no problema de mnimos quadrados. Essas transformaes tem a qualidade de no interferir na soluo do problema e ao mesmo tempo simplificar a soluo. Como mostrou-se na seo anterior, a soluo do problema de mnimos quadrados, por meio da equao normal, pode apresentar dificuldades de soluo por problemas de condicionamento numrico. A utilizao de uma transformao que preserve a soluo do problema uma ferramenta que pode viabilizar a soluo do problema de mnimos quadrados. 2.8.2 Matrizes Ortogonais Uma matriz real P ortogonal, se satisfizer a seguinte relao: P T P = PP T = I A equao P T P = I nos mostra que as colunas da matriz P formam um conjunto de vetores ortonormais. Do mesmo modo, PP T = I nos mostra que as linhas da matriz P tambm formam um conjunto de vetores ortonormais. Propriedades: 1 Se P uma matriz ortogonal, ento det( P ) = 1 . 2 Se P e Q so matrizes ortogonais, ento o produto PQ tambm ortogonal. 3 Se P uma matriz ortogonal, ento para x, y , tem-se:

( P x, P y ) = ( P x ) T ( P y ) = x T y = ( x, y ) (preserva ngulo entre x e y ) Px = x P =1 (preserva a magnitude de x )

Se P e Q so matrizes ortogonais e A uma matriz qualquer, ento: PA = AQ = A

Esta ltima propriedade que torna o uso de matrizes e transformaes ortogonais atraentes do ponto de vista numrico, pois mostra que matrizes ortogonais no podem criar e nem eliminar nmeros pequenos ou grandes durante operaes numricas. 2.8.3 Aplicao de Matrizes Ortogonais Soluo de Problemas de Mnimos Quadrados

Como foi visto, na soluo do problema de mnimos quadrados se minimiza a funo custo:

Min
x

J (x)

Onde: J (x) = z H x 2 Expandindo a expresso, tem-se: J (x) = (z H x) T (z H x) Seja Q uma matriz ortogonal, portanto, possvel a sequncia: J (x) = (z H x) T Q T Q (z H x) J (x) = (Q z QH x) T (Q z QH x)
2

J (x) = Q z QH x 2 Suponha que Q seja escolhida de tal forma que: U Range de H (dim enso n) QH = 0 Subespao Nulo (dim enso m n) Sendo U tringular superior. Alm disso: c Range de H (dim enso n) Q z = d Subespao Nulo (dim enso m n)

Tem-se: c U x c U x J (x ) = = d d 0 2 2 O vetor x que minimiza J (x ) est no Range de H, e portanto obtido por: U = c x e a soma dos quadrados dos resduos dada por: J (x) = d 2 Como foi visto, este resduo est no subespao nulo (complemento ortogonal). Existem muitas formas para a obteno da matriz Q, sendo as principais:
2 2 2

Transformaes de Givens Transformaes de Householder Transformaes de Gran-Schmidt


2.8.4 Fatorao QR Utilizando Tranformaes de Givens

Seja a matriz A mn , utilizando transformaes ortoganais, chega-se a decomposio: A = QR Onde: Q mm ortogonal. R mn triangular superior. Supondo: c s Q= s c c s c s 1 0 QT Q = = s c s c 0 1 c2 + s2 = 1 Determinao de c e s:

Como Q ortogonal:

Portanto:

Tem-se:

A = QR a11 a 21 a12 c s r11 = a 22 s c 0 r12 r22

Pr-multiplicando esta equao por Q T , chega-se a: c s a11 a12 r11 r12 = s c a 21 a 22 0 r22 Desta expresso, tem-se uma nova equao: sa11 + ca 21 = 0 Tem-se o sistema de equaes: sa11 + ca 21 = 0 c2 + s2 =1 Resultando em: a11 a 21 Se a 21 0 c = a s e s = 2 2 21 a11 + a 21 a 21 a11 Se a11 0 c = a s e s = 2 2 11 a11 + a 21 Os elementos de R so determinados por: r11 0 r12 ca11 sa 21 = r22 0 Algoritmo c s a r s c b = 0 Function [c,s]=givens(a,b) if b = 0 ca12 sa 22 sa12 + ca 22

c = 1; s = 0; else if b < a

=
s=

a ; b 1
2

1+ c = s else b = ; a 1 c= ; 2 1+ s = c end end Exemplo: a11 a A = 21 a 31 a 41 a12 a 22 a 32 a 42 a13 a 23 a 33 a 43 a12


(1) (1) a 22 (1) a13 c s s c (1) a 23 T Q21 = onde: 0 0 a 33 0 0 a 43

a (1) 11 T A (1) = Q21 A = 0 a 31 a 41 c= a11


2 a11 2 + a 21

a 32 a 42

0 0 1 0

0 0 0 1

s=

a 21 c a11

Mudam os elementos das linhas 1 e 2 da matriz A:

(1 a11) = ca11 sa 21

a12 = ca12 sa 22 a13 = ca13 sa 23 a 22 = sa12 + ca 22


(1) a 23 = sa13 + ca 23 (1) (1)

(1)

a ( 2) 11 0 T A ( 2) = Q21 A = 0 a 41 c= a11
2 a11 2 + a 31

(2 a12 ) (2 a 32) a 42

a 22

(1)

(2 a13 ) c 0 (1) a 23 T onde: Q21 = ( 2) s a 33 0 a 43

0 s 1 0 0 c 0 0

0 0 0 1

s=

a 31 c a11

Mudam os elementos das linhas 1 e 3 da matriz A:


(2 a11 ) = ca11 sa 31

a12 = ca12 sa 32 a13 = ca13 sa 33 a 32 = sa12 + ca32 a 33 = sa13 + ca33 O processo continua at a triangularizao: a (3) 11 0 A (6) = 0 0
(3) (3) a13 (5) a 23 (6 a 33) 0 ( 2) ( 2) ( 2)

( 2)

a12 0 0

a 22

(5)

T T T T T T R = Q43 Q42 Q32 Q41Q31Q21 A

A = Q21Q31Q41Q32 Q42 Q43 R = QR Exemplo Numrico:

2 3 A = 5 4 8 9 A= 2 5 8 3 4 9

Qtransp = -0.3714 -0.9285 0 0.9285 -0.3714 0 0 0 1.0000 A= -5.3852 -4.8281 0.0000 1.2999 8.0000 9.0000 Qtransp = 0.5584 0 -0.8296 0 1.0000 0 0.8296 0 0.5584 A= -9.6437 -10.1621 0.0000 1.2999 0 1.0206 Qtransp = 1.0000 0 0 0 0.7865 0.6175 0 -0.6175 0.7865

A= -9.6437 -10.1621 0.0000 1.6526 0.0000 0 Q= -0.2074 0.5400 -0.8157 -0.5185 -0.7678 -0.3765 -0.8296 0.3448 0.4392 Programa de Decomposio QR Utilizando Transformadas de Givens
function givens m=input('Entre com o Nmero de Linhas: '); n=input('Entre com o Nmero de Colunas: '); load datagivens; % A matriz de coeficientes A deve se salva pela tela no arquivo % datagivens,por meio do comando "save datagivens A . disp('Matriz de Coeficientes') A Q=eye(m,m); for i=1:n-1 for j=i+1:m if A(j,i)~=0 [c,s]=givens(A(i,i),A(j,i)); for l=1:n qq=A(i,l); A(i,l)=c*qq-s*A(j,l); A(j,l)=s*qq+c*A(j,l); end for l=1:m qq1=Q(l,i); qq2=Q(l,j); Q(l,i)=c*qq1-s*qq2; Q(l,j)=s*qq1+c*qq2; end end end end for l=n+1:m if A(l,n)~=0 [c,s]=givens(A(n,n),A(l,n)); for k=1:n qq=A(n,k); A(n,k)=c*A(n,k)-s*A(l,k); A(l,k)=s*qq+c*A(l,k); end for k=1:m

end end

qq1=Q(k,n); qq2=Q(k,l); Q(k,n)=c*qq1-s*qq2; Q(k,l)=s*qq1+c*qq2;

end disp('Matriz Triangular Superior na Dimenso do Range e Zeros na Dimenso do Subespao Zero') A disp('Matriz de Coeficientes') Q function [c,s]=givens(a,b) if b==0 c=1; s=0; else if abs(b)>abs(a) t=-a/b; s=1/sqrt(1+t^2); c=s*t; else t=-b/a; c=1/sqrt(1+t^2); s=c*t; end end

2.8.5

Soluo de Sistemas Lineares Utilizando Decomposio QR Ax = b QR x = b R x = QT b

Exemplo: Solucionar o sistema linear utilizando transformaes ortogonais e eliminao de Gauss: 10 x1 + x 2 = 11 3 x1 + 0.3 x 2 = 3.3 Observe que a matriz de coeficientes singular. A= 10.0000 1.0000 3.0000 0.3000
9

Vetor Independente b= 11.0000 3.3000 Warning: Divide by zero. > In C:\MATLABR11\work\ortosystem.m at line 32 Matriz Triangularizada por Meio de Transformaes de Givens A= 10.4403 1.0440 0 0 Vetor Soluo b= Inf -Inf Soluo Obtida pelo Comando x=A\b Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.629787e-018. > In C:\MATLABR11\work\ortosystem.m at line 40 x= -0.5000 16.0000 Programa para Soluo de Sistemas Lineares Utilizando Transformadas de Givens
function givens n=input('Entre com Dimenso do Sistema: '); load datasystem; % A matriz de coeficientes A e vetor independente b % devem ser salvos pela tela no arquivo datasystem, % por meio do comando "save datasystem A b. disp('Matriz de Coeficientes') A disp('Vetor Independente') b for i=1:n-1 for j=i+1:n

10

end end for j=n:-1:1 soma=0; for k=j+1:n soma=soma+A(j,k)*b(k); end b(j)=(1/A(j,j))*(b(j)-soma); end disp('Matriz Triangularizada por Meio de Transformaes de Givens') A disp('Vetor Soluo') b load datasystem disp('Soluo Obtida pelo Comando x=A\b') x=A\b function [c,s]=givens(a,b) if b==0 c=1; s=0; else if abs(b)>abs(a) t=-a/b; s=1/sqrt(1+t^2); c=s*t; else t=-b/a; c=1/sqrt(1+t^2); s=c*t; end end

if A(j,i)~=0 [c,s]=givens(A(i,i),A(j,i)); for l=1:n qq=A(i,l); A(i,l)=c*qq-s*A(j,l); A(j,l)=s*qq+c*A(j,l); end b1=b(i); b2=b(j); b(i)=c*b1-s*b2; b(j)=s*b1+c*b2; end

11