Você está na página 1de 27

MS211 - Cálculo Numérico

Aula 2 – Eliminação de Gauss e Fatoração LU.

Marcos Eduardo Valle


Introdução

Na aula anterior, apresentamos o modelo de Leontief, que pode


ser formulado como um sistema linear com n equações e n
incógnitas: 


 a11 x1 + a12 x2 + . . . a1n xn = b1 ,

a x + a x + . . . a x = b ,
21 1 22 2 2n n 1


 ...

a x + a x + . . . a x = b .
n1 1 n2 2 nn n n

Sistemas lineares é provavelmente o mais importante problema


matemático encontrado em aplicações científicas e industriais.
Se um sistema linear não tem solução, diremos que ele é
inconsistente.

Dizemos que um sistema linear é consistente se ele possui pelo


menos uma solução.

Um sistema linear consistente pode ter ou uma única solução ou


infinitas soluções.

O conjunto de todas as soluções de um sistema linear é chamado


conjunto solução.

Dizemos que dois sistemas lineares são equivalentes se


possuem o mesmo conjunto solução.

Nessa e nas próximas aulas, estudaremos sistemas lineares com


n equações e n incógnitas, consistente e que admite uma única
solução.
Notação Matricial
Para facilitar a exposição, identificamos o sistema linear



a11 x1 + a12 x2 + . . . a1n xn = b1 ,

a x + a x + . . . a x = b ,
21 1 22 2 2n n 1


...

a x + a x + . . . a x = b .
n1 1 n2 2 nn n n

com a equação matricial


    
a11 a12 . . . a1n x1 b1
a21 a22 . . . a2n  x2  b2 
..   ..  =  ..  ,
    
 .. .. ..
 . . . .  .   . 
an1 an2 . . . ann xn bn
ou, equivalentemente,
Ax = b.
Produto Matriz-Vetor
O produto v = Ax, de uma matriz A = (aij ) ∈ Rn×n por um vetor
coluna x = [x1 , . . . , xn ]T ∈ Rn , resulta um novo vetor coluna coluna
v = [v1 , v2 , . . . , vn ]T ∈ Rn cujas componentes são dadas por:
n
X
vi = aij xj = ai1 x1 + ai2 x2 + . . . + ain xn .
j=1

Note que para cada i, efetuamos n produtos e n − 1 adições, ou


seja, 2n − 1 operações são efetuadas para determinar vi .

Como v possui n componentes, o produto v = Ax requer


n(2n − 1) = 2n2 − n operações aritméticas.

Simplificadamente, o produto matriz-vetor requer O(n2 )


operações aritméticas.
Uma matriz A ∈ Rn×n é não-singular se, e somente se, existe
uma matriz A−1 , chamada inversa de A, tal que

AA−1 = A−1 A = I,

em que I ∈ Rn×n denota a matriz identidade.

Equivalentemente, uma matriz A ∈ Rn×n é não-singular se, e


somente se, det(A) 6= 0.

Se A é uma matriz não-singular, então a solução de Ax = b é

x∗ = A−1 b.

Logo, o sistema linear Ax = b é admite uma única solução!

Apesar dessa considerações teóricas, não determinaremos a


solução de Ax = b usando A−1 pois o cálculo da inversa de A
exige um número desnecessário de operações aritméticas!
Na aula anterior, apresentamos brevemente o método da
eliminação de Gauss para a resolução de um sistema linear.

No método da eliminação de Gauss, um sistema linear Ax = b é


transformado num sistema linear equivalente Ux = c, que pode
ser resolvido facilmente usando a substituição reversa.

Para transformar Ax = b em Ux = c, efetuamos as operações:

Operações Elementares

• Permutar duas equações.


• Multiplicar uma equação por uma constante não-nula.
• Adicionar (ou subtrair) um múltiplo de uma equação à outra.

Operações elementares não afetam a solução do sistema, ou


seja, os sistemas Ax = b e Ux = c possuem a mesma solução!
Sistema Triangular Superior
Se U ∈ Rn×n é uma matriz triangular superior não-singular, i.e,
 
u11 u12 u13 . . . u1n
 0 u22 u23 . . . u2n 
 
U= 0 0 u33 . . . u3n  ,

 .. .. .. . .. .
.. 
 . . . 
0 0 0 . . . unn
com uii 6= 0 para todo i = 1, . . . , n, então a solução de Ux = c é
determinada usando a chamada substituição reversa (do inglês
back substitution). Formalmente, tem-se
 
n
1  X
xi = ci − uij xj  , para i = n, n − 1, . . . , 1.
uii
j=i+1

A substituição reversa efetua O(n2 ) operações aritméticas.


Exemplo 1
Resolva o sistema triangular superior Ux = c, em que
   
0.8 −0.2 −0.2 −0.3 0.5
 0 +0.85 −0.25 −0.38
 e c = 0.53
 
U=  0 0 0.61 −0.48  0.72
0 0 0 0.21 0.89
Exemplo 1
Resolva o sistema triangular superior Ux = c, em que
   
0.8 −0.2 −0.2 −0.3 0.5
 0 +0.85 −0.25 −0.38
 e c = 0.53
 
U=  0 0 0.61 −0.48 0.72
0 0 0 0.21 0.89

Resposta: A solução do sistema Ux = c, que resolvemos na


aula anterior usando a substituição reversa, é
 
4.32
3.84
x∗ = 4.51

4.29
Sistema Triangular Inferior
Se L ∈ Rn×n é uma matriz triangular inferior não-singular, i.e,
 
l11 0 0 . . . 0
l21 l22 0 . . . 0 
 
L = l31 l32 l33 . . . 0  ,
 
 .. .. .. . . .. 
 . . . . . 
ln1 ln2 ln3 . . . lnn

com lii 6= 0 para todo i = 1, . . . , n, então a solução de Ly = b é


determinada usando a chamada substituição direta:
 
i−1
1 X
yi = bi − lij xj  , para i = 1, 2, . . . , n.
lii
j=1

A substituição direta também requer O(n2 ) operações.


Exemplo 2
Resolva o sistema triangular inferior Ly = b, em que
   
1.00 0.00 0.00 0.00 0.5
−0.25 1.00 0.00 0.00 0.4
  
L= −0.38 −0.44 1.00 0.00 e b = 0.3
−0.25 −0.29 −0.85 1.00 0
Exemplo 2
Resolva o sistema triangular inferior Ly = b, em que
   
1.00 0.00 0.00 0.00 0.5
−0.25 1.00 0.00 0.00 0.4
L= −0.38 −0.44 1.00 0.00 e b = 0.3
  

−0.25 −0.29 −0.85 1.00 0

Resposta: A solução do sistema, obtida usando substituição


direta, é Ly = b é  
0.50
0.53
y∗ = 
0.72

0.89
Método da Eliminação de Gauss
No método da Eliminação de Gauss, aplicamos operações
elementares em Ax = b de modo a obter um sistema equivalente
Ux = c, em que U é uma matriz triangular superior.

A i-ésima linha da matriz A será denotada por ai , ou seja,


 
ai = ai1 ai2 . . . ain , i = 1, . . . , n.

Denotaremos por [A|b] a matriz A concatenada com o vetor b.

Inicialmente, escrevemos A(0) = A e b(0) = b.

A cada estágio j = 0, 1, . . . , n − 1, operações elementares são


aplicadas no par [A(j) |b(j) ] para obter um novo par [A(j+1) |b(j+1) ]
(j)
com zeros abaixo do elemento ajj .
(0)
No primeiro estágio, introduzimos zeros abaixo de a11 subtraindo
da j-ésima linha um múltiplo mi1 da primeira linha.
 (0) (0) (0) (0)
  (1) (1) (1) (1)

a11 a12 . . . a1n | b1 a11 a12 . . . a1n | b1
 (0) (0) (0) (0)  (1) (1) (1) 
a21 a22 . . . a2n | b2  . . . a2n | b2 

 0 a22
 →  ..
 . .. .. ..  .. .. .. 
.. ..

 .
 . . . . | .   . . . . | . 

(0) (0) (0) (0) (1) (1) (1)
an1 an2 . . . ann | bn 0 an2 . . . ann | bn
Formalmente, para i = 2, . . . , n, definimos
(0)
ai1 (1) (0) (0) (1) (0) (0)
mi1 = (0)
, bi = bi − mi1 b1 e ai = ai − mi1 a1 .
a11
(j)
No j-ésimo estágio, introduzimos zeros abaixo de ajj , ou seja,
(j−1)
aij (j) (j−1) (j−1) (j) (j−1) (j−1)
mij = (j−1)
, bi = bi −mij bj e ai = ai −mij aj ,
ajj
para i = j + 1, . . . , n.
Exemplo 3
Use o método da eliminação de Gauss para determinar a solução
do sistema linear Ax = b, em que
   
0.8 −0.2 −0.2 −0.3 0.5
−0.2 0.9 −0.2 −0.3 0.4
A= −0.3 −0.3 0.8 −0.2 e b = 0.3
  

−0.2 −0.2 −0.4 0.8 0


Exemplo 3
Use o método da eliminação de Gauss para determinar a solução
do sistema linear Ax = b, em que
   
0.8 −0.2 −0.2 −0.3 0.5
−0.2 0.9 −0.2 −0.3 0.4
A= −0.3 −0.3 0.8 −0.2 e b = 0.3
  

−0.2 −0.2 −0.4 0.8 0

Resposta: Primeiramente, definimos


 
0.8 −0.2 −0.2 −0.3 | 0.5
−0.2 0.9 −0.2 −0.3 | 0.4
[A(0) |b(0) ] = 
−0.3 −0.3 0.8 −0.2 | 0.3

−0.2 −0.2 −0.4 0.8 | 0


No primeiro estágio do método da eliminação de Gauss,
calculamos os multiplicadores
−0.2
m21 = = −0.25, m31 = −0.375 e m41 = −0.25.
0.8
(1) (0)
Note que b2 = b2 (0) − m12 b1 = 0.4 + (0.25)(0.5) = 0.525 e
(1) (0) (0)
a2 = a2 + m12 a1
   
= −0.2 0.9 −0.2 −0.3 + 0.25 0.8 −0.2 −0.2 −0.3
 
= 0 0.85 −0.25 −0.375 .
(1) (0)
Analogamente, b3 = b3 (0) − m13 b1 = 0.4875,
(1) (0)
b4 = b4 (0) − m14 b1 = 0.125,
(1) (0) (0)  
a3 = a3 + m13 a1 = 0 −0.375 0.725 −0.3125
e
(1) (0) (0)  
a4 = a4 + m14 a1 = 0 −0.25 −0.45 0.725 .
Assim, ao final no primeiro estágio do método da eliminação de
Gauss, temos a matriz aumentada:
 
0.80 −0.20 −0.20 −0.30 | 0.50
 0 0.85 −0.25 −0.375 | 0.525 
[A(1) |b(1) ] =  
 0 −0.375 0.725 −0.3125 | 0.4875
0 −0.25 −0.45 0.725 | 0.125
Procedendo de forma semelhante, no segundo estágio
calculamos os multiplicadores
(1) (1)
a32 −0.375 a42
m32 = (1)
= = −0.44118 e m42 = (1)
= −0.29412.
a22 0.85 a22
e, com eles, encontramos a matriz aumentada
 
0.80 −0.20 −0.20 −0.30 | 0.50
0 0.85 −0.25 −0.375 | 0.525 
[A(2) |b(2) ] = 


 0 0 0.61471 −0.47794 | 0.71912
0 0 −0.52353 0.61471 | 0.27941
No último estágio (estágio 3), calculamos o multiplicador
(2)
a43 −0.52353
m43 = (2)
= = −0.85167,
a33 0.61471

e determinamos a matriz aumentada


 
0.80 −0.20 −0.20 −0.30 | 0.50
 0 0.85 −0.25 −0.375 | 0.525 
[A(3) |b(3) ] ==  
 0 0 0.61471 −0.47794 | 0.71912
0 0 0 0.20766 | 0.89187

Finalmente, usando a substituição reversa, a solução do sistema


linear é  
4.3226
3.8387
x∗ = 4.5092

4.2949
Algoritmo da Eliminação de Gauss

Entrada: Matriz não-singular A ∈ Rn×n e vetor coluna b ∈ Rn .


para j = 1 : n − 1 faça
para i = j + 1 : n faça
a
• mij = ij .
ajj
• ai = ai − mij aj .
• bi = bi − mij bj .

fim
fim
Saída: Matriz triangular superior A e b.
A notação i = j + 1 : n significa: “para i = 1 até i = n.

No algoritmo acima, U e c são escritas sobre A e b para


economizar espaço na memória.
Número de Operações da Eliminação de Gauss
O método da eliminação de Gauss contém dois loops.

No loop para j, efetuamos


n−1
X
(#operaçoes) = (#operações efetuadas no estágio j).
j=1

O loop para i, resulta em outro somatório


n−1 X
X n
(#operaçoes) = (operações efetuadas na linha i).
j=1 i=j+1

Na linha i, efetuamos 1 + 2n + 2 = 2n + 3 operações. Assim,


n−1 X
n
X n(n − 1)
(#operaçoes) = (2n + 3) = (2n + 3) = O(n3 ).
2
j=1 i=j+1
Fatoração LU
Os multiplicadores mij podem ser organizados numa matriz L
triangular inferior com diagonal unitária:
 
1 0 0 ... 0
m21 1 0 . . . 0
 
L = m31 m32 1 . . . 0 .

 .. .. .. . . .. 
 . . . . .
mn1 mn2 mn3 . . . 1

A matriz original A, a matriz triangular superior U obtida no final


do processo de eliminação e a matriz L triangular inferior com os
multiplicadores satisfazem:
A = LU,
chamada fatoração LU de A.
Exemplo 4
Determine a fatoração LU da matriz
 
0.8 −0.2 −0.2 −0.3
−0.2 0.9 −0.2 −0.3
A= −0.3 −0.3 0.8 −0.2 .

−0.2 −0.2 −0.4 0.8


Exemplo 4
Determine a fatoração LU da matriz
 
0.8 −0.2 −0.2 −0.3
−0.2 0.9 −0.2 −0.3
A= −0.3 −0.3 0.8 −0.2 .

−0.2 −0.2 −0.4 0.8

Resposta: Com base nos exemplos anteriores, tem-se


  
1.00 0.00 0.00 0.00 0.80 −0.20 −0.20 −0.30
−0.25 1.00 0.00 0.00 0.00 0.85 −0.25 −0.38
 
A=−0.38 −0.44 1.00 0.00 0.00 0.00 0.61 −0.48
−0.25 −0.29 −0.85 1.00 0.00 0.00 0.00 0.21
| {z }| {z }
L U
O sistema Ax = b é resolvido da seguinte forma usando a
fatoração LU:
• Primeiro, resolve-se Ly = b usando substituição direta (O(n2 )).
• Depois, resolve-se Ux = y usando substituição reversa (O(n2 )).

Teoricamente e computacionalmente, a fatoração LU é


equivalente ao método da eliminação de Gauss! Ambas
requerem O(n3 ) operações aritméticas!

Na prática, na fatoração LU guardamos em L os multiplicadores


usados para transformar A numa matriz triangular superior U.

A informação contida em L é particularmente útil se precisamos


resolver um sistema linear Ax = b0 , com a mesma matriz A mas
um diferente vetor do lado direito pois não precisamos fatorar
novamente a matriz A.
Considerações Finais

Na aula de hoje, apresentamos uma breve revisão de aritmética


matricial e destacamos que tanto o produto matricial Ax como a
solução de um sistema triangular requerem O(n2 ) operações.

Na aula de hoje também formalizamos o método da eliminação


de Gauss que foi brevemente introduzido na aula anterior.

Observamos que o método da eliminação de Gauss é equivalente


a fatoração LU, no qual escrevemos A = LU. Tanto a eliminação
de Gauss como a fatoração LU requerem O(n3 ) operações.

Muito grato pela atenção!

Você também pode gostar