10.11.2014 Views

Introduç˜ao `a´Algebra Linear com o gnu-Octave - Departamento de ...

Introduç˜ao `a´Algebra Linear com o gnu-Octave - Departamento de ...

Introduç˜ao `a´Algebra Linear com o gnu-Octave - Departamento de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.3. UM RESULTADO DE FACTORIZAÇÃO DE MATRIZES 43<br />

truncatura. Como exemplo, consi<strong>de</strong>re a matriz A=[1E-5 1E5; 1E5 1E-5]. Esta matriz é<br />

não-singular, [<br />

e a única ] (porquê?) matriz escada obtida, sem quaisquer trocas <strong>de</strong> linhas, é<br />

10 −5 10 5<br />

0 10 −5 − 10 15 . Usando o <strong>Octave</strong>,<br />

> format long<br />

> E=eye (2); E(2,1)=-A(2,1)/A(1,1)<br />

E =<br />

1 0<br />

-10000000000 1<br />

> E*A<br />

ans =<br />

1.00000000000000e-05<br />

-1.45519152283669e-11<br />

1.00000000000000e+05<br />

-1.00000000000000e+15<br />

Repare que a matriz não é triangular inferior, e que o elemento (2, 2) <strong>de</strong>ssa matriz <strong>de</strong>veria ser<br />

10 −5 − 10 15 e não −10 15 <strong>com</strong>o indicado.<br />

> (E*A)(2,2)==-1E15<br />

ans = 1<br />

> -1E15==-1E15+1E-5<br />

ans = 1<br />

Para o <strong>Octave</strong>, não existe distinção entre os dois números, por erro <strong>de</strong> arrondamento.<br />

Embora o AEG seja pouco eficiente neste tipo <strong>de</strong> questões, existem algumas alterações que<br />

são efectuadas por forma a contornar este problema. Um exemplo é a pivotagem parcial. Este<br />

algoritmo será <strong>de</strong>scrito <strong>com</strong> <strong>de</strong>talhe noutra unida<strong>de</strong> curricular <strong>de</strong> MiEB. A i<strong>de</strong>ia é, quando se<br />

consi<strong>de</strong>ra um pivot na entrada (i, j), percorrer os outros elementos que estão por baixo <strong>de</strong>le e<br />

trocar a linha i <strong>com</strong> a linha do elemento que seja maior, em módulo. Tal correspon<strong>de</strong> a multiplicar,<br />

à esquerda, por uma matriz da forma P ij . Esse algorimto está implementado no <strong>Octave</strong>, sendo<br />

chamado pela instrução lu(A).<br />

> [L,U,P]=lu (A)<br />

L =<br />

U =<br />

1.000000000000000 0.000000000000000<br />

0.000000000100000 1.000000000000000

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!