Sei sulla pagina 1di 14

INE5202 Prof. Daniel S.

Freitas

40

3 RESOLUO DE SISTEMAS DE EQUAES LINEARES


Sistemas lineares : procedimento numrico utilizado na soluo de modelos matemticos que envolvem
muitos elementos interligados e onde no seja possvel resolver nenhum elemento isoladamente..
Exemplo 1 : muitos elementos interligados.

eq.1

quantidade que sai de um


certo componente
depende da quantidade
que entra

eq.2

eq.3

eq.4

Exemplo 2 : soluo numrica de equaes diferenciais (elasticidade, transferncia de calor, mecnica dos
fluidos, etc.) :
o domnio de soluo discretizado, ou seja, o que era infinitamente contnuo dividido e
passa a ser um conjunto limitado de partes finitas :
nos contornos o
valor de
conhecido

em funo do que
acontece nos
contornos, a
equao fornece o
valor de em
qualquer ponto
interno (x,y)

2 = 1
parte
(i,j)

domnio contnuo
onde se deseja
conhecer a soluo
de uma ED

o contnuo dividido
em partes finitas

Uma maneira de obter uma soluo atribuir a cada parte (i,j) uma varivel (z i,j), representando uma
soluo constante dentro dos limites de (i,j) ou seja, zi,j uniforme dentro da poro (i,j)
Todas as partes elementares esto interligadas e no possvel saber o valor de z em nenhuma delas
sem obter a soluo de todas ao mesmo tempo.
A soluo obtida pela soluo de um sistema linear NN, onde N o nmero de elementos (partes)
em que foi dividido o domnio.

INE5202 Prof. Daniel S. Freitas

Matrizes : assunto conhecido.


Definio : Um sistema de n equaes lineares a n incgnitas toda expresso do tipo :
a 11 x 1 + a 12 x 2
a x + a x
21 1
22 2

a n1 x 1 + a n 2 x 2
n

Tambm :

a
j=1

ij

+ + a 1n x n = b 1
+ + a 2n x n = b 2

+ + a nn x n = b n
x j = bi

a 11
a
21

a n1

a 1n x 1 b 1
a 2 n x 2 b 2



a nn x n b n

a 12
a 22

a n2

, i = 1,2, , n

aij e bj so nmeros reais prescritos

Todas estas expresses podem ser resumidas em forma matricial como :


Ax = b

A chamada de matriz de coeficientes



Definio : Soluo de Ax = b todo vetor = [ 1 , 2 , , n ] tal que A = b .


Quanto soluo , Ax = b pode ser :
Determinado : existe apenas uma soluo ( det A 0)
Indeterminado : existem infinitas solues ( det A = 0)
Impossvel : no existe soluo ( det A = 0)
Ilustrao : No caso de sistemas 22, possvel visualizar algumas propriedades das solues .
Exemplo : resolver o sistema :
3x 1 + 2 x 2 = 18

x 1 + 2x 2 = 2

x 2 = ( 3 2 ).x 1 + 9
x 2 = (1 2 ).x 1 + 1

x2

3x1 + 2x2 = 18

Soluo: x1=4 ; x2=3

6
4
2

-x1 + 2x2 = 2
1

x1

41

INE5202 Prof. Daniel S. Freitas

42

Casos particulares :
1) Retas paralelas
(no h soluo):
x2

2) Retas coincidentes
(infinitas solues) :

3) Sistema mal condicionado :


(difcil visualizar)

x2

-x1 + x2 = 1

x2

-0.46x1 + x2 = 1

-0.5x1 + x2 = 1
-x1 + x2 = 0.5

-0.5x1 + x2 = 1

-x1 + 2x2 = 2
x1

x1

x1

Casos 1 e 2 : sistemas singulares


Caso 3 : muito sensvel a erros de arredondamento durante a soluo numrica.

Mtodos de resoluo de Ax=b

Diretos : a soluo obtida realizando-se um nmero conhecido (finito) de operaes aritmticas


em .
Exceto por erros de arredondamento, a soluo obtida diretamente exata.
Adequados para sistemas pequenos (menores do que 300300).
Adequados quando a matriz de coeficientes cheia.

Iterativos : a soluo obtida pelo truncamento do processo de limite de uma seqncia de



aproximaes sucessivas [ 1 , 2 , 3 , ] .
Adequados para sistemas de qualquer tamanho, quando a matriz de coeficientes esparsa (muitos
coeficientes so nulos).
Mais econmicos quanto armazenagem.
Reduzem problemas com erros de arredondamento, os quais acabam sendo em grande parte
absorvidos pelo prprio processo iterativo.
Tambm podem ser utilizados em problemas no-lineares.

INE5202 Prof. Daniel S. Freitas

3.1 Mtodos Diretos


Definio : uma operao de ponto flutuante consiste em :
um conjunto de operaes multiplicao + adio (,+)
ou :
uma operao de diviso (/)
Problemas com matriz diagonal :
a 11

0 x 1 b1
x b
2 = 2


a nn x n b n

a 22

Soluo:
x1 =

b1
a 11

x2 =

b2
a 22

xk =

, ... ,

bk
a kk

, ... ,

xn =

bn
a nn

Obs. : so necessrias n operaes de PF.


Problemas com matriz triangular inferior (soluo por substituio direta) :
a 11
a
21

a n1

a 22

a n2

0 x 1 b1
x b
2 = 2


a nn x n b n

Soluo:
a 11 x 1 = b 1

x1 =

a 21 x 1 + a 22 x 2 = b 1

b1
a 11

x2 =

b 2 a 21 x 1
a 22

a n1 x 1 + a n 2 x 2 + + a n ( n 1) x n 1 + a nn x n = b n
n 1

Obs. : so necessrias n divises e

i = n.( n 1)

xn =

b n a n1 x 1 a n 2 x 2 a n ( n 1) x n 1

2 subtraes/multiplicaes

i =1

= (n2/2 + n/2) operaes


= (n2) operaes de PF

a nn

( significa da ordem de)

43

INE5202 Prof. Daniel S. Freitas

Problemas com matriz triangular superior (soluo por retrossubstituio) :


a 11

a 12
a 22

a 1n x 1 b 1
a 2 n x 2 b 2



a nn x n b n

Soluo:
a nn x n = b n

xn =

bn
a nn

a ( n 1)( n 1) x ( n 1) + a ( n 1) n x n = b n 1

x ( n 1) =

b ( n 1) a ( n 1) n x n
a ( n 1)( n 1)

a 11 x 1 + a 12 x 2 + + a 1( n 1) x n 1 + a 1n x n = b 1

x1 =

b 1 a 1n x n a 1( n 1) x ( n 1) a 12 x 2
a 11

Obs. : (n2) operaes de PF


Problemas com matrizes cheias:
Estratgias de soluo :
a)

Regra de Cramer :

xi =

Obs. : exige a obteno de (n+1) determinantes de matrizes (nn)


(n+1) n n! operaes (!!) (sem otimizar otimizando : n4))
tempo de soluo em um computador com capacidade de 660 MFlops
n
10
20
b)

Tempo (anos)
0.6048
49000

Eliminao Gaussiana : (n3/3)


Obs. : neste caso, com n=30 e 660 Mflops, o tempo baixa para 0.00042 s

Ax = b

c)

Operaes (flops)
3.99108
1.021021

x = b

ou

Eliminao de Gauss-Jordan : (n3/3)

Ax = b

x = b

x = b

44

INE5202 Prof. Daniel S. Freitas

d)

45

Decomposio L-U: (n3/3) e depois, cada nova soluo custa : (n2)

Ax = b

x =b

L : matriz triangular inferior ("Lower-triangular matrix")


U : matriz triangular superior ("Upper-triangular matrix")
uma vez obtidas a L e a U:
A.x = b

torna-se:
ou:

(L.U).x = b
L.(U.x) = b

e a obteno de um vetor soluo x pode ser decomposta em 2 passos muito mais rpidos do
que uma eliminao gaussiana completa:
L.(U.x) = b

2) U.x = y (retrossubstituio, com (n2) )

1) L.y = b (substituio direta, com (n2))

no total, teremos "apenas" (n2) operaes at chegar soluo, quando uma EG completa
custaria (n3/3)

Obs. : note que as componentes do vetor b no so modificadas com a realizao da decomposio


isto significa que, uma vez obtida a decomposio L-U, chega-se rapidamente soluo de um
novo sistema que tenha sido obtido a partir do original pela simples modificao de b.
3.2 Eliminao Gaussiana "Ingnua"

Forma mais simples de Eliminao Gaussiana.


"Ingnua" porque no adequada para computao automtica, a menos que modificaes essenciais
sejam feitas.

Ax = b

operaes
elementares

x = b

ou

x = b

Definio: Operaes elementares so rearranjos (vlidos) de um conjunto de equaes Ax=b que no


alteram a sua soluo x, tais como:
1. qualquer equao pode ser multiplicada por uma constante
2. a ordem das equaes pode ser trocada
3. qualquer equao pode ser substituda pela sua soma com qualquer uma das outras equaes.

INE5202 Prof. Daniel S. Freitas

46

Exemplo: Considere o seguinte sistema:


6x1
12x1
3x1
-6x1

2x2
8x2
13x2
+ 4x2

+ 2x3 + 4x4 = 16
+ 6x3 +10x4 = 26
+ 9x3 + 3x4 =-19
+ x3 18x4 =-34

(l1)
(l2)
(l3)
(l4)

1 passo) Eliminar x1 da 2, da 3 e da 4 equaes:


6x1
12x1
3x1
-6x1

2x2
8x2
13x2
+ 4x2

+ 2x3 + 4x4 = 16
+ 6x3 +10x4 = 26
+ 9x3 + 3x4 =-19
+ x3 18x4 =-34

6x1 2x2
4x2
12x2
2x2

+
+
+
+

2x3
2x3
8x3
3x3

+ 4x4 = 16
+ 2x4 =-6 l2-(12/6)l1
+ x4 =-27 l3-( 3/6)l1
-14x4 =-18 l4-(-6/6)l1

note que a 1 equao no alterada, embora tenha sido usada para zerar os 1 os coeficientes das outras
equaes:
- neste contexto, ela a "equao piv"
- o coeficiente a11=6 o "coeficiente piv"
observe que os 2 sistemas so equivalentes (tm a mesma soluo)

2 passo) Ignorar a 1 equao e a 1 coluna de coeficientes: com isto, obtm-se um sistema 33 e o


mesmo processo repetido com a 2 equao como piv.
6x1 2x2 + 2x3
4x2 + 2x3
2x3
4x3

+ 4x4 = 16
+ 2x4 =-6
- 5x4 =-9
-13x4 =-21

l3-(-12/-4)l2
l4-(2/-4)l2

3 passo) Eliminar x3 na ltima equao. O resultado :


6x1 2x2 + 2x3 + 4x4 = 16
4x2 + 2x3 + 2x4 =-6
2x3 - 5x4 =-9
- 3x4 =-3

l4-(4/2)l3

agora o sistema est na forma "triangular superior"


note que ele ainda equivalente ao sistema (cheio) original, mas muito mais fcil de resolver.
Passo final) Obteno da soluo por retrossubstituio:
-

da equao l4:
com x4, da equao l3:
com x4 e x3 , da equao l2:
com x4, x3 e x2 , da equao l1:

x4 = 1
2x3 5 1 = -9
x2 = 1
x1 = 3

x3 = -2

INE5202 Prof. Daniel S. Freitas

47

Algoritmo para Eliminao gaussiana "ingnua"


Vamos montar um algoritmo para a soluo de um sistema geral Ax=b, com n equaes e n incgnitas:
a 11
a
21

a n1

a 12
a 22

a n2

a 1n x 1 b 1
a 2 n x 2 b 2



a nn x n b n

1) Etapa de Eliminao: Esta fase pode ser dividida em n1 passos (1 k n-1).


1 passo) piv a primeira equao (a11):
usar a 1 equao para produzir n-1 zeros como coeficientes para cada x 1 em todas as equaes
exceto a primeira
isto feito subtraindo-se mltiplos apropriados da 1 equao das demais
a 1 equao chamada de a 1 equao piv e permanece inalterada
para cada equao restante (2 i n), computar:

a i1
.a 1 j
a ij a ij

a 11

b b a i1 .b
i
a 1
i
11

(1 j n )

as quantidades (ai1/a11) so chamadas de multiplicadores


note que os novos coeficientes de x1 (1 coluna) nas i-simas equaes (2 i n) sero zero pois
ai1(ai1/a11)a11=0
depois deste 1 passo, o sistema ficar na forma:
piv

a 11
0

a 12
a 22

a n2

a 1n x 1 b 1
a 2 n x 2 b 2



a nn x n b n

2 passo) piv a segunda equao (a22):


note que, deste ponto em diante, a 1 equao no mais alterada, e nem qualquer um dos
coeficientes de x1 (pois um multiplicador vezes 0 subtrado de zero ainda zero)
portanto, pode-se ignorar a 1 linha e a 1 coluna e repetir o processo no sistema menor (n-1n-1)
com a segunda equao como piv, computa-se, para cada uma das equaes que restam (3in):
a ij a ij ( a i 2 a 22 ) a 2 j

b i b i ( a i 2 a 22 ) b 2

( 2 j n)

INE5202 Prof. Daniel S. Freitas

48

Passo k) piv a equao k-sima (akk):


exatamente antes do k-simo passo na etapa de eliminao, o sistema aparece como:
a 11
0

a 12
a 22
0

0
0
0

a 13
a 23
a 33

a kk

a ik

a nk

a kj

a ij

a nj

a 1n x 1 b 1
a 2 n x 2 b 2

a 3n x 3 b 3


a kn x k = b k


a in x i b i


a nn x n b n

neste ponto, uma cunha de coeficientes 0 foi criada e as primeiras k equaes foram
processadas e esto agora fixas
usando a k-sima equao como piv, seleciona-se multiplicadores de modo a criar 0s como
coeficientes para cada xk abaixo do coeficiente akk
ento, computa-se, para cada equao restante (k+1 i n):

a ik
a ij a ij

a kk

b b a ik
i
a
i
kk

.a kj

.b k

( k j n)

2) Etapa de Retrossubstituio: Ao final da etapa de eliminao, o sistema est na forma:


a11x1 + a12x2 + ... +
a22x2 + ... +

a1(n-1)xn-1 + a1nxn = b1
a2(n-1)xn-1 + a2nxn = b2

a(n-1)(n-1)xn-1 + a(n-1)nxn = b(n-1)


annxn = bn

Note que, com exceo da 1 linha, os aij 's e os bi 's no so mais os do sistema original, mas
sim aqueles que foram alterados pelo processo de eliminao.
Este sistema pode ser resolvido por:
bn
a nn

Imediatamente, partir da n-sima equao:

xn =

em seguida, usando a (n-1)-sima equao:

x n 1 =

e assim por diante, at a 1 equao:

x1 =

b n 1 a ( n 1) n x n
a ( n 1)( n 1)

b 1 a 12 x 2 a 13 x 3 a 1n x n
a 11

INE5202 Prof. Daniel S. Freitas

De uma maneira geral, este procedimento pode ser resumido em:


xn =

bn
a nn

xi =

1
a ii

b i a ij x j

j= i +1

i = n1, n2, ... , 1

Cdigo computacional (Octave)


function x=eligausp(A,b,n)
% Soluo de um sistema linear nxn por Eliminao Gaussiana sem pivotamento
% (Eliminao Gaussiana "ingnua").
x = zeros(n,1);
% Etapa de eliminao:
for k=1:n-1
for i=k+1:n
mult = A(i,k)/A(k,k);
A(i,k)=mult;
for j=k+1:n
A(i,j) = A(i,j) - mult*A(k,j);
end
b(i) = b(i) - mult*b(k);
end
end
% Etapa de retrossubstituico:
x(n) = b(n) / A(n,n);
for i=n-1:-1:1
x(i) = b(i);
for j=i+1:n
x(i) = x(i) - A(i,j)*x(j);
end
x(i) = x(i)/A(i,i);
end

Casos em que a EG "ingnua" falha


Exemplo:

0.x 1 + x 2 = 1

x1 + x 2 = 2

donde se conclui que no se pode confiar em resultados obtidos por EG para a11 0.
para testar esta hiptese, considere:

.x 1 + x 2 = 1

x1 + x 2 = 2
resolvendo:

em que um nro pequeno e 0

49

INE5202 Prof. Daniel S. Freitas

.x 1 + x 2 = 1

(1 1 ) x 2 = 2 1

retrossubstituio

x2 =

2 1
11

x1 =

50

1 x2

ocorre que, neste caso, como 1/ grande, em clculos com mantissa finita tanto 2-1/ como 1-1/
seriam computados como (-1/), o que traria as seguintes conseqncias:
x2 seria calculado como 1 (!!)
x1 seria calculado como 0
quando a soluo correta seria (por regra de Cramer, por Exemplo):

x1 =

1
1
1

x2 =

1 2.
1
1

na verdade, a EG "ingnua" funcionaria bem se as equaes fossem primeiro permutadas


neste caso, aps a etapa de eliminao, teramos:
x1 + x 2 = 2

(1 ) x 2 = 1 2.

retrossubstituio

x2 =

1 2.
1
1

x1 = 2 x 2 1

Obs.: o problema consiste no fato de ser pequeno em relao aos outros coeficientes na mesma linha.
Concluso:
A ordem em que as equaes so tratadas afeta significativamente a preciso do algoritmo de
eliminao no computador.
Na eliminao gaussiana ingnua, a ordem sempre a natural {1,2,...,n}.
Qual a melhor ordem a usar? Alguma que seja determinada pelo sistema sendo resolvido.
Modificao da ordem = pivotamento.

Estratgias de pivotamento
1.

Pivotamento parcial rearranjo das equaes de maneira a colocar os maiores coeficientes na


diagonal principal, a cada passo. (parcial: apenas trocas de linhas)

2.

Pivotamento parcial normalizado idem ao anterior, mas a comparao feita entre coeficientes
normalizados (em escala).

INE5202 Prof. Daniel S. Freitas

3.3 Eliminao Gaussiana com Pivotamento Parcial

Vamos guardar a ordem em que as equaes so tratadas em um vetor ndice:

l = {l1, l2, ..., ln}

os li so inteiros de 1 a n, em qualquer ordem. Exemplo: l ={2,3,1,4}

Retomando o exemplo da EG "ingnua":


6
2

12 8
3 13

4
6

2
4
16

6 10
26
9
3
19

1 18 34

ordem das linhas: l = {1,2,3,4}

pivotamento
l1 l2

12 8

2
6
3 13

4
6

6 10
26

2
4
16
9
3
19

1 18 34

ordem das linhas: l = { 2,1,3,4}

1 passo) Eliminao de x1 na 2, na 3 e na 4 equaes:


12
8
6
10

2
1 1
(1 2 )
(1 4 ) 11 15 2 1 2

0
4
13
( 1 2 )

26

3
51 2

21

l 2 ( 6 12).l 1
l 3 ( 3 12).l 1
l 4 ( 6 12).l 1

2 passo) Pivotamento (l2 l3) e eliminao de x2 na 3 e na 4 equaes:


Pivotamento:
12
8
6
10

(1 4 ) 11 15 2 1 2
(1 2 )
2
1 1

0
4
13
( 1 2 )

26

51 2
3

21

Eliminao:
12
8
6
10

11 15 2
12
(1 4 )
(1 2 ) ( 2 11) 4 11 10 11

( 0)
4
13
( 1 2 )

ordem das linhas: l = { 2,3,1,4}

26

51 2
18 11 l 3 ( 2 11).l 2

21 l 4 ( 0).l 2

51

INE5202 Prof. Daniel S. Freitas

3 passo) Pivotamento (l3 l4) e eliminao de x3 na 4 equao:


Pivotamento:
12
8
6
10
26

11 15 2
12
51 2
(1 4 )
( 1 2 )
( 0)
4
13
21

(1 2 ) ( 2 11) 4 11 10 11 18 11

Eliminao:
12
8

11
(1 4 )
( 1 2 )
( 0)

(1 2 ) ( 2 11)

6
10
15 2 1 2
4
13
(1 11) 3 11

ordem das linhas: l = { 2,3,4,1}

26

51 2
21

3 11 l 4 (1 11).l 3

Passo final) Obteno da soluo por retrossubstituio:


- da equao l4:
x4 = 1
- com x4, da equao l3:
4x3 131 = -21
- com x4 e x3 , da equao l2:
x2 = 1
- com x4, x3 e x2 , da equao l1:
x1 = 3

x3 = -2

Algoritmo para Eliminao gaussiana com pivotamento parcial (octave)


function x=eligausp(A,b,n)
% Soluo de um sistema linear nxn por Elim. Gaussiana com pivotamento parcial.
x = zeros(n,1);
% Etapa de eliminao:
for k=1:n-1
ipv=pivot(A,n,k);
if ipv~=k
tmp=A(k,:);
A(k,:)=A(ipv,:);
tmp=b(k);
b(k)=b(ipv);
end
for i=k+1:n
mult = A(i,k)/A(k,k);
A(i,k)=mult;
for j=k+1:n
A(i,j) = A(i,j) - mult*A(k,j);
end
b(i) = b(i) - mult*b(k);
end

end

% Etapa de retrossubstituico:
x(n) = b(n) / A(n,n);
for i=n-1:-1:1
x(i) = b(i);
for j=i+1:n
x(i) = x(i) - A(i,j)*x(j);
end
x(i) = x(i)/A(i,i);
end

a funo pivot (logo abaixo) determina


qual a mudana que deve ser feita na
ordem das equaes
A(ipv,:)=tmp;
b(ipv)=tmp;

52

INE5202 Prof. Daniel S. Freitas

function ipvt=pivot(A,n,k)
% Busca a equao piv, ou seja, a equao com coeficiente de maior
%
mdulo na coluna k
ipvt=k;
pvt=abs(A(k,k));
for i=k+1:n
p = abs(A(i,k));
if p > pvt
pvt=p;
ipvt=i;
end
end

53

Potrebbero piacerti anche