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 ...
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