Você está na página 1de 26

MS211 - Cálculo Numérico

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

Marcos Eduardo Valle


Matemática Aplicada
IMECC - Unicamp

Marcos Eduardo Valle MS211 - Cálculo Numérico 1 / 26


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 2


 . . .

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

Na aula de hoje, estuaremos o método da Eliminação de Gauss e a


fatoração LU para a resolução de sistemas lineares.

Sistemas lineares estão entre os mais importantes problemas


matemáticos encontrados em aplicações científicas e industriais.

Marcos Eduardo Valle MS211 - Cálculo Numérico 2 / 26


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.
Marcos Eduardo Valle MS211 - Cálculo Numérico 3 / 26
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 2


 ...

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.
Marcos Eduardo Valle MS211 - Cálculo Numérico 4 / 26
Uma matriz A ∈ Rn×n é não-singular ou inversível 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!
Marcos Eduardo Valle MS211 - Cálculo Numérico 5 / 26
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 regressiva ou 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!

Marcos Eduardo Valle MS211 - Cálculo Numérico 6 / 26


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 substituição regressiva (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

Marcos Eduardo Valle MS211 - Cálculo Numérico 7 / 26


Algoritmo da Substituição Regressiva

Entrada: Matriz triangular superior não-singular U ∈ Rn×n e


vetor coluna c ∈ Rn .
para i = n até 1 faça
• xi = ci .
para j = i + 1 até n faça
• xi = xi − uij xj .
fim
• xi = xi /uii.
fim
Saída: Solução do sistema linear Ux = c.
No algoritmo acima, as componentes abaixo da diagonal principal
de U são completamente ignoradas.

Marcos Eduardo Valle MS211 - Cálculo Numérico 8 / 26


Número de Operações da Substituição Regressiva

Multiplicação Soma Subtração Divisão Total


i =n 0 0 0 1 1
i =n−1 1 0 1 1 3
i =n−2 2 1 1 1 5
.. .. .. .. .. ..
. . . . . .
i =n−k k k −1 1 1 2k + 1
.. .. .. .. .. ..
. . . . . .
i =1 n−1 n−2 1 1 2n − 1
Total: n2
Concluindo, a substituição regressiva efetua O(n2 ) operações
aritméticas.

Marcos Eduardo Valle MS211 - Cálculo Numérico 9 / 26


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 regressiva, é
 
4.3046
3.8462
x∗ = 
4.5152

4.2381

Marcos Eduardo Valle MS211 - Cálculo Numérico 10 / 26


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.


Marcos Eduardo Valle MS211 - Cálculo Numérico 11 / 26
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: Usando a substituição direta, encontramos:


0.5
y1 = = 0.5
1.00
1
y2 = (0.4 − (−0.25 × 0.5)) = 0.53.
1.00
1
y3 = (0.3 − (−0.38 × 0.5 − 0.44 × 0.53)) = 0.72.
1.00
1
y4 = (0 − (−0.25 × 0.5 − 0.29 × 0.53 − 0.85 × 0.72)) = 0.89.
1.00
Marcos Eduardo Valle MS211 - Cálculo Numérico 12 / 26
Portanto, a solução do sistema é Ly = b é
 
0.50
0.53
y∗ = 
0.72 .

0.89

Marcos Eduardo Valle MS211 - Cálculo Numérico 13 / 26


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 .
Marcos Eduardo Valle MS211 - Cálculo Numérico 14 / 26
(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.
Marcos Eduardo Valle MS211 - Cálculo Numérico 15 / 26
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

Marcos Eduardo Valle MS211 - Cálculo Numérico 16 / 26


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) (0)
Note que b2 = b2 − m21 b1 = 0.4 − (−0.25)(0.5) = 0.525 e
(1) (0) (0)
a2 = a2 − m21 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 .
Marcos Eduardo Valle MS211 - Cálculo Numérico 17 / 26
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
Marcos Eduardo Valle MS211 - Cálculo Numérico 18 / 26
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 regressiva, a solução do sistema


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

4.2949

Marcos Eduardo Valle MS211 - Cálculo Numérico 19 / 26


Algoritmo da Eliminação de Gauss

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


para j = 1 até n − 1 faça
para i = j + 1 até n faça
a
• mij = ij .
ajj
• bi = bi − mij bj .
para k = j + 1 até n faça
• aik = aik − mij ajk
fim
fim
fim
Resolver Ax = b com substituição regressiva.
Saída: Solução do sistema linear.
No algoritmo acima, U e c são escritas sobre A e b para
economizar espaço na memória.
Marcos Eduardo Valle MS211 - Cálculo Numérico 20 / 26
Número de Operações da Eliminação de Gauss
No loop para j, efetuamos
n−1
X
(#operações) = (#operações efetuadas no estágio j).
j=1

O loop para i, resulta em outro somatório


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

Na linha i, efetuamos 3 + 2(n − j) operações.

Portanto, o número total de operações para calcular U e c é:


n−1 X
n
X  2n3 n2 7n
(#operações) = 3 + 2(n − j) = + − .
3 2 6
j=1 i=j+1
Marcos Eduardo Valle MS211 - Cálculo Numérico 21 / 26
Número de Operações da Eliminação de Gauss

No método da eliminação de Gauss, também efetuamos n2


operações com a substituição regressiva.

Assim, o número total de operações efetuadas na eliminação de


Gauss é
n−1 X
n
X 2n3 3n2 7n
2(n − j) + 3 + n2 =
 
(#operações) = + − .
3 2 6
j=1 i=j+1

Como o número total de operações é dominado por n3 , escrevemos

(#operações) = O(n3 ).

Lê-se: “O número total de operações é da ordem de n3 .”

Marcos Eduardo Valle MS211 - Cálculo Numérico 22 / 26


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
 
m31 m32 1 . . . 0
L= .
 .. .. .. . . .. 
 . . . . .
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.
Marcos Eduardo Valle MS211 - Cálculo Numérico 23 / 26
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.85 −0.25 −0.38
0.00 0.00  
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

Marcos Eduardo Valle MS211 - Cálculo Numérico 24 / 26


Usando a fatoração LU, o sistema Ax = b é resolvido como segue:
Conhecendo L e U tais que A = LU, tem-se
Ax = b =⇒ (LU)x = b =⇒ L(Ux) = b.
Tomando y = Ux, temos os sistemas triangulares:
Ly = b e Ux = y.

Portanto, conhecendo a fatoração A = LU, a solução do sistema


linear Ax = b é determinada como segue:
• Resolve-se Ly = b usando substituição direta (O(n2 )).
• Resolve-se Ux = y usando substituição regressiva (O(n2 )).

Teoricamente e computacionalmente, a fatoração LU é equivalente


ao método da eliminação de Gauss!

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


usados para transformar A numa matriz triangular superior U.
Marcos Eduardo Valle MS211 - Cálculo Numérico 25 / 26
Considerações Finais

Na aula de hoje, comentamos sobre a resolução de sistemas


lineares e vimos que 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!

Marcos Eduardo Valle MS211 - Cálculo Numérico 26 / 26

Você também pode gostar