Você está na página 1de 27

Apostila de Cálculo Numérico

Profa . Vanessa Rolnik


Departamento de Computação e Matemática - FFCLRP/USP

Capı́tulo 3. Métodos numéricos para sistemas lineares

3.1 - Método de eliminação de Gauss


Este material é baseado nas Seções 4.1, 4.2, 4.3, 4.5 e 4.11 do livro FRANCO, N.B.
Cálculo Numérico. São Paulo: Pearson Prentice Hall, 2006.

Objetivos desta aula

• discutir a problemática sobre resolução numérica de sistemas lineares

• estudar o método de eliminação de Gauss e o método de eliminação de Gauss com


pivotamento parcial

De modo geral, um sistema de n equações lineares é escrito como




 a11 x1 + a12 x2 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + · · · + a2n xn = b2

.. (1)


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

onde aij e bi são números reais dados e xi i = 1, 2, · · · , n são as incógnitas.


Uma solução para esse sistema consiste de valores para as n incógnitas tais que
quando esses valores são substituı́dos nas equações, todas elas são satisfeitas simulta-
neamente.

Exemplo 1. Verifique que x1 = 1, x2 = 1 e x3 = −1 é solução do sistema de 3 equações


lineares 
 x1 + x2 + x3 = 1
x1 − x2 − x3 = 1
2x1 + 3x2 − 4x3 = 9

Observe que este é um sistema de 3 equações lineares. Para saber se x1 = 1, x2 = 1


e x3 = −1 é solução, substituı́mos esses valores nas equações e verifcamos que as 3 são
satisfeitas simultaneamente

 1 + 1 − 1 = 1 ok
1 − 1 + 1 = 1 ok
2(1) + 3(1) − 4(−1) = 9 ok

1
O sistema (10) é representado na forma matricial por
    
a11 a12 · · · a1n x1 b1
 a21 a22 · · · a2n   x2   b2 
..   ..  =  ..  , (2)
    
 .. .. . .
 . . . .  .   . 
an1 an2 · · · ann xn bn

ou simplesmente
Ax = b, (3)
onde A é chamada matriz dos coeficientes, b é o vetor de termos independentes e x é o
vetor das incógnitas.

Exercı́cio 1. Escreva o sistema do Exemplo 1) na forma matricial.

    
1 1 1 x1 1
 1 −1 −1   x2  =  1  , (4)
2 3 −4 x3 9

Classificação quanto ao número de soluções:

• sistema possı́vel e determinado: admite uma única solução;

• sistema possı́vel e indeterminado: admite infinitas soluções;

• sistema impossı́vel: não admite solução.

Exercı́cio 2. Classificar os seguintes sistemas lineares:


  
x1 + x2 = 6 x1 + x2 = 1 x1 + x2 = 1
x1 − x2 = 2 2x1 + 2x2 = 2 x1 + x2 = 4

Exercı́cio 3. Em cada caso do Ex 2), calcule o determinante da matriz dos coeficientes.


É possı́vel tirar alguma conclusão?

Exercı́cio 4. Em cada caso do Ex 2), observe que as equações correspodem a equações


de reta em um plano. Esboce as retas no plano x1 x2 . Descreva a posição relativa entre
as retas.

Exercı́cios 2) 3) e 4) Classificar os seguintes sistemas lineares. Calcule o determi-


nante da matriz dos coeficientes. É possı́vel tirar alguma conclusão? Observe que as
equações correspodem a equações de reta em um plano. Esboce as retas no plano x1 x2 .
Descreva a posição relativa entre as retas.

x1 + x2 = 6
(I)
x1 − x2 = 2

2
A única solução deste sistema é x1 = 4, x2 = 2. Portanto, sistema possı́vel e
determinado.  
1 1
Matriz dos coeficientes A = , det A = 1(−1) − 1(1) = 2
1 −1

Posição relativa: retas concorrentes, cujo ponto de intersecção é (4, 2) solução do


sistema.


x1 + x2 = 1
(II)
2x1 + 2x2 = 2
Resolvendo o sistema, observamos que ele tem infinitas soluções que podem ser
escritas da forma: x2 = 1 − x1 , para qualquer x1 ∈ R. Portanto, sistema possı́vel e
indeterminado.  
1 1
Matriz dos coeficientes A = , det A = 1(2) − 1(2) = 0
2 2

Posição relativa: retas paralelas coincidentes, os pontos de intersecção são do tipo


(x1 , 1 − x1 ).

x1 + x2 = 1
(III)
x1 + x2 = 4
Resolvendo o sistema, observamos que ele não tem solução. Portanto, sistema im-
possı́vel.

3
 
1 1
Matriz dos coeficientes A = , det A = 1(1) − 1(1) = 0
1 1

Posição relativa: retas paralelas distintas, não há ponto de intersecção.

Conclusão sobre o determinante: det A 6= 0, A é dita matriz não singular e sistema


é possı́vel e determinado; det A = 0, A é dita matriz singular e sistema ou é possı́vel ou
é possı́vel e indeterminado.

Exercı́cio 5. Pense em métodos que você conhece para resolver sistemas de equações
lineares. Pesquise vantagens e desvantagens desses métodos para resolver sistemas
“grandes”.
1) Substituição (isolar uma variável, substituir nas outras equações): não é um
procedimento que pode ser transformado em um algoritmo.

2) Inversão da matriz Ax = b ⇒ A−1 Ax = A−1 b ⇒ x = A−1 b: necessita de


muitas operações, o que além do custo computacional, causa propagação de erro de
arredondamento.

3) Regra de Cramer
det Ai
xi = ,
det A
Ai : matriz dos coeficientes com a coluna i substituı́da pelo vetor dos termos inde-
pendentes b.
O número de operações deste método é da ordem de n!, onde n é a ordem do sistema.
Por exemplo, para um sistema 50 × 50, seriam necessárias da ordem de 50—
operações ≈ 1064 operações.
Supondo que uma operação possa ser realiza em 10−12 segundos, então seriam ne-
cessários 3 × 1042 anos para resolver o sistema. Mais do que a idade da Terra!

4) Escalonamento
Número total de operações é igual a (4n3 + 9n2 − 7n)/6.
Se n = 50, são necessárias 87 025 operações.
Supondo que uma operação possa ser realiza em 10−12 segundos, serão gastos apro-
ximadamente 8, 7 × 10−8 segundos.

4
Para os métodos numéricos, vamos considerar sistemas lineares que admitem uma
única solução. Vamos começar pelos métodos exatos, ou seja, realizam um número
finito e pré-determinado de operações para alcançar a solução. Fornecem a solução exata
a menos de erros de arredondamento e demais efeitos numéricos, como o de propagação.

Método de Eliminação de Gauss


Ideia: transformar o sistema Ax = b em um sistema equivalente (que possui a mesma
solução) do tipo triangular superior, por meio da operação

Lk ← Lk − cLz , c 6= 0

ou seja, a linha k é substituı́da pela própria linha k subtraı́da da linha z multiplicada


por c 6= 0.
Vamos aplicar essa ideia de forma sistemática na matriz aumentada (A|b)
 
a11 a12 · · · a1n | b1
 a21 a22 · · · a2n | b2 
..  . (5)
 
 .. .. ..
 . . . | . 
an1 an2 · · · ann | bn

Exemplo 2. Paralelamente à teoria, resolva


    
6 2 −1 x1 7
 2 4 1   x2  =  7  , (6)
3 2 8 x3 13

2a) escreva a matriz ampliada

 
6 2 −1 | 7
 2 4 1 | 7 
3 2 8 | 13

Passo 1) supor a11 6= 0 e anular os coeficientes da primeira coluna, abaixo da diagonal.


a11 é chamado pivô e a linha 1 é chamada de linha pivô
a21
L2 ← L2 − m21 L1 m21 =
a11
a21 = a21 − m21 a11 = 0
a22 = a22 − m21 a12
..
.
a2n = a2n − m21 a1n
b2 = b2 − m21 b1

a31
L3 ← L3 − m31 L1 m31 =
a11

5
a31 = a31 − m31 a11 = 0
a32 = a32 − m31 a12
..
.
a3n = a3n − m31 a1n
b3 = b3 − m31 b1

E assim por diante até a última linha


an1
Ln ← Ln − mn1 L1 mn1 =
a11
an1 = an1 − mn1 a11 = 0
an2 = an2 − mn1 a12
..
.
ann = ann − mn1 a1n
bn = bn − mn1 b1

2b) aplique o Passo 1) na matriz ampliada do Exemplo 2)

a11 = 6 (pivô)
L1 (linha pivô)
a21 2 1
m21 = = = e a operação elementar é L2 ← L2 − 13 L1
a11 6 3
1
a21 = 2 − 3 6 = 0
a22 = 4 − 13 2 = 10
3
a23 = 1 − 13 (−1) = 4
3
b2 = 7 − 13 7 = 14
3

a31 3 1 1
m31 = = = e a operação elementar é L3 ← L3 − L1
a11 6 2 2
a31 = 3 − 12 6 = 0
a32 = 2 − 12 2 = 1
a33 = 8 − 12 (−1) = 17
2
b3 = 13 − 12 7 = 19
2

Ao final do Passo 1) temos a matriz ampliada


 
6 2 −1 | 7
 0 10 4
| 14 
3 3 3
17 19
0 1 2 | 2

6
Passo 2) Toma a matriz aumetada resultante do Passo 1). Supor a22 6= 0 e anular os
coeficientes da segunda coluna, abaixo da diagonal.
a22 é chamado pivô e a linha 2 é chamada de linha pivô
a32
L3 ← L3 − m32 L2 m32 =
a22
a32 = 0
a33 = a33 − m32 a23
..
.
a3n = a3n − m32 a2n
b3 = b3 − m32 b2

E assim por diante até a última linha


an2
Ln ← Ln − mn2 L2 mn2 =
a22
an2 = 0
an3 = an3 − mn2 a23
..
.
ann = ann − mn2 a2n
bn = bn − mn2 b2

2c) Aplique o Passo 2) na matriz ampliada resultante do Passo 1)

10
a22 = (pivô)
3
L2 (linha pivô)
a32 1 3 3
m32 = = = e a operação elementar é L3 ← L3 − L
10 2
a22 10/3 10
3 10
a32 = 1 − 10 3
=0
a33 = 17
2
− 10 4
3 3
= 81
10
b3 = 19
2
− 10
3 3
14
= 81
10

Ao final do Passo 2) temos a matriz ampliada


 
6 2 −1 | 7
 0 10 4
| 14 
3 3 3
81 81
0 0 10 | 10

7
Passo n − 1) Toma a matriz aumetada resultante do Passo n-2). Supor an−1,n−1 6= 0 e anular
os coeficientes da coluna n − 1, abaixo da diagonal, ou seja, o elemento an,n−1 .
an−1,n−1 é chamado pivô e a linha n − 1 é chamada de linha pivô
an,n−1
Ln ← Ln − mn,n−1 L2 mn,n−1 =
an−1,n−1
an,n−1 = 0
ann = ann − mn,n−1 an−1,n
bn = bn − mn,n−1 bn−1

Após n − 1 passos, obtemos uma matriz trinagular superior da forma




 a11 x1 + a12 x2 + · · · + a1,n−1 xn−1 + a1n xn = b1
a22 x2 + · · · + a2,n−1 xn−1 + a2n xn = b2




.. (7)
.




 an−1,n−1 xn−1 + an−1,n xn = bn−1
 +an,n xn = bn

2d) Escreva o sistema triangular superior equivalente ao sistema original do Exemplo


2) e resolva-o.


 6x1 + 2x2 − x3 = 7
10 4 14
3 2
x + x
3 3
= 3
81 81
x =

10 3 10
81 81
Da 3a. equação, x3 = 10 / 10 ⇒ x3 = 1,
14
Da 2a. equação, x2 = ( 3 − 43 x3 )/ 10 3
Substituindo x3 = 1, x2 = ( 14 3
− 4
3
(1))/ 10
3
=1
Da 1. equação, x1 = (7 − 2x2 + x3 )/6
Substituindo x2 = 1 e x3 = 1, x1 = (7 − 2(1) + (1))/6 = 1
Logo, a solução é (1, 1, 1).

Exercı́cio 6. Resolva o sistema linear usando 4 dı́gitos significativos em todas as


operações 

 10x1 + 5x2 − x3 + x4 = 2
2x1 + 10x2 − 2x3 − x4 = −26


 −x1 − 2x2 + 10x3 + 2x4 = 20
x1 + 3x2 + 2x3 + 10x4 = −25

Passo 1) Montar a matriz ampliada


 
10 5 −1 1 | 2
 2 10 −2 −1 | −26
[A|b](0) = 
−1

−2 10 2 | 20 
1 3 2 10 | −25
Passo 2) Calculo da matriz escalonada 1

8
Pivô = a11 = 10
SEGUNDA LINHA
a21 2 1
m2 = = = = 0, 2 e a operação elementar é L2 ← L2 − 0, 2L1
a11 10 5
a22 = 10 − 0, 2 ∗ 5 = 9
a23 = −2 − 0, 2 ∗ (−1) = −1, 8
a24 = −1 − 0, 2 ∗ 1 = −1, 2
b2 = −26 − 0, 2 ∗ (2) = −26, 4
TERCEIRA LINHA
a31 −1
m3 = = = −0, 1 e a operação elementar é L3 ← L3 − (−0, 1L1 )
a11 10
a32 = −2 − (−0, 1 ∗ 5) = −1, 5
a33 = 10 − (−0, 1 ∗ (−1) = −9, 9
a34 = 2 − (−0, 1 ∗ 1) = 2, 1
b3 = 20 − (−0, 1 ∗ 2) = 20, 2
QUARTA LINHA
a41 1
m4 = = = 0, 1 e a operação elementar é L4 ← L4 − 0, 1L1
a11 10
a42 = 3 − 0, 1 ∗ 5) = 2, 5
a43 = 2 − 0, 1 ∗ (−1) = 2, 1
a44 = 10 − 0, 1 ∗ 1 = 9, 9
b4 = −25 − 0, 1 ∗ 2 = −25, 2
 
10 5 −1 1 | 2
0 9 −1, 8 −1, 2 | −26, 4
[A|b](1) = 
 0 −1, 5 9, 9

2, 1 | 20, 2 
0 2, 5 2, 1 9, 9 | −25, 2
Passo 3) Calculo da matriz escalonada 2
Pivô = a22 = 9
TERCEIRA LINHA
a32 −1, 5
m3 = = = −0.1667 e a operação elementar é L3 ← L3 − (−0.1667L2 )
a22 9
a33 = 9, 9 − (−0, 1667 ∗ (−1, 8) = 9, 6
a34 = 2, 1 − (−0, 1667 ∗ 1, 2) = 1, 9
b3 = 20, 2 − (−0, 1667 ∗ −26, 4) = 15, 8
QUARTA LINHA
a42 2, 5
m4 = = = 0, 2778 e a operação elementar é L4 ← L4 − 0, 2778L2
a22 9
a43 = 2, 1 − 0, 2778 ∗ (−1, 8) = 2, 6
a44 = 9, 9 − 0, 2778 ∗ (−1, 2) = 10, 23
b4 = −25, 2 − 0, 2778 ∗ −26, 4 = −17, 87
 
10 5 −1 1 | 2
 0 9 −1, 8 −1, 2 | −26, 4 
[A|b](2) =  
 0 0 9, 6 1, 9 | 15, 8 
0 0 2, 6 10, 23 | −17, 87
Passo 4) Calculo da matriz escalonada 3
Pivô = a33 = 9, 6

9
QUARTA LINHA
a43 2, 6
m4 = = = 0, 2708 e a operação elementar é L4 ← L4 − 0, 2708L3
a33 9, 6
a44 = 10, 23 − 0, 2708 ∗ 1, 9 = 9, 716
b4 = −17, 87 − 0, 2708 ∗ 15, 8 = −22, 15
 
10 5 −1 1 | 2
 0 9 −1, 8 −1, 2 | −26, 4 
[A|b](2) =  
 0 0 9, 6 1, 9 | 15, 8 
0 0 0 9, 716 | −22, 15

Passo 5) Resolver o sistema



 10x1 + 5x2
 − 1x3 + 1x4 = 2
0x1 + 9x2 − 1, 8x3 − 1, 2x4 = −26, 4


 0x1 + 0x2 + 9, 6x3 + 1, 9x4 = 15, 8
0x1 + 0x2 + 0x3 + 9, 716x4 = −22, 15

−22,15
x4 = 9,716
= −2, 280
15,8−(1,9∗−2,28)
x3 = 9,6
= 20,13
9,6
= 2, 097
−26,4+(1,2∗−2,280)+(1,8∗2,097)
x2 = 9
= −26,4−2,736+3,775
9
= −29,14+3.775
9
= −25,37
9
= −2, 819
2+2,280+2,097−(5∗−2,819) 6,377+14,1 20,48
x1 = 10
= 10
= 10 = 2, 048

Exercı́cio 7. Escreva um algoritmo para o método de eliminação de Gauss, implemente


em linguagem C e teste para os sistemas desta aula.

Exercı́cio 8. Escreva uma subrotina para a substituição retroativa para resolver um


sistema triangular superior, acrescente ao programa implementado no Exercı́cio 7) e
teste para os sistemas desta aula.

Método de Eliminação de Gauss com pivotamento parcial


A estratégia de pivotamento parcial resolve o problema se em algum passo k, akk 6= 0
e também reduz a propagação de erros de arredondamento. É aplicada em todo passo,
na escolha do pivô e da linha pivô.
No passo k, escolhemos o pivô entre os coeficientes da coluna k da diagonal para
baixo, como sendo aquele que possui o maior valor em módulo. Se necessário, permu-
tamos as linhas. Em termos matemáticos, no passo k, calculamos

max |aik | = |ark |,


i=k,k+1,...,n

pivô = ark (se módulo)


se r 6= k, permutamos as linhas r e k.

10
Exemplo 3. Resolva o sistema linear pelo método de eliminação de Gauss com pivo-
tamento parcial  
2 −3 1 | −5
 4 −6 −1 | −7 
1 2 1 | 4

Passo 1) Escolha do pivô e da linha pivô


max{|a11 |, |a21 |, |a31 |} = max{|2|, |4|, |1|} = |4| = |a21 |
Logo, precisamos permutar as linhas 1 e 2.
 
4 −6 −1 | −7
 2 −3 1 | −5 
1 2 1 | 4
o pivô é a11 = 4 (novo a11
L1 (nova) é a linha pivô
a21 2 1
m21 = = = e a operação elementar é L2 ← L2 − 21 L1
a11 4 2
a21 = 2 − 12 4 = 0
a22 = −3 − 12 (−6) = 0
a23 = 1 − 12 (−1) = 23
b2 = −5 − 12 (−7) = −3 2

a31 1 1
m31 = = e a operação elementar é L3 ← L3 − L1
a11 4 4
1
a31 = 1 − 4 4 = 0
a32 = 2 − 14 (−6) = 27
a33 = 1 − 14 (−1) = 45
b3 = 4 − 14 (−7) = 23
4

Ao final do Passo 1) temos a matriz ampliada


 
6 2 −1 | 7
 0 0 3
2
| −32

7 5 23
0 2 4
| 4

Passo 2) Escolha do pivô e da linha pivô


max{|a22 |, |a32 |} = max{|0|, |7/2|} = |7/2| = |a32 |
Logo, precisamos permutar as linhas 2 e 3.
 
6 2 −1 | 7
 0 7 5
| 23 
2 4 4
3 −3
0 0 2
| 2

Como a matriz já está escalonada, precisamos apenas resolver o sistema.

11
Exercı́cio 9. Resolva o sistema do Exercı́cio 6. pelo método de eliminação de Gauss
com pivotamento parcial usando 4 dı́gitos significativos em todas as operações. Com-
pare com a solução exata e com a solução com o resultado do Exercı́cio 6. calculando
a norma do máximo para o erro.

Exercı́cio 10. Modifique o algoritmo do método de eliminação de Gauss para incluir o


pivotamento parcial, implemente em linguagem C e teste para os exemplos desta aula.

12
2.1 - Métodos diretos - decomposição LU
Este material é baseado nas Seções 4.1 a 4.5 e 4.11 do livro FRANCO, N.B. Cálculo
Numérico. São Paulo: Pearson Prentice Hall, 2006.

Objetivos desta aula


• estudar a decomposição de uma matriz A em LU e como utilizar a decomposição
para resolver sistemas lineares, calcular determinantes e inverter matrizes

Decomposição LU
O objetivo é decompor uma matriz quadrada An×n = (aij ) em um produto de uma
triangular inferior Ln×n = (`ij ) com `ii = 1, i = 1, · · · , n e uma matriz triangular
superior Un×n = (uij ), ou seja,
A = LU.

Obs. A decomposição de uma matriz no produto LU em que L tem 1 na diagonal


é conhecida também como Método de Doolittle. Quando a decomposição LU é tal que
U tem 1 na diagonal é chamada Fatoração de Crout.

Esquema prático

Vamos supor que A possa ser decomposta (isto acontece, por exemplo, quando
det(A) 6= 0) e vamos impor LU = A, da seguinte forma
0 ··· 0
    
1 u11 u12 · · · u1n a11 a12 · · · a1n
. . ..   0 u
22 · · · u2n 
. .    a21 a22 · · · a2n 
 `21 1

 =  .. ..  . (8)
 
 . . . .
. . . . . .
. .. . .
 .. .. .. 0   .
 
. . .   . . . . 
`n1 `n2 · · · 1 0 ··· 0 unn an1 an2 · · · ann
Com isso, obtemos
• 1a linha de U : fazendo o produto da 1a linha de L por todas as colunas de U e
igualando com os elementos da 1a linha de A
1.u11 = a11 ⇒ u11 = a11
1.u12 = a12 ⇒ u12 = a12
..
.
1.u1n = a1n ⇒ u1n = a1n
• 1a coluna de L: fazendo o produto da 2a até a última linha de L pela 1a coluna
de U e igualando com os elementos da 1a coluna de A
a21
`21 u11 = a21 ⇒ `21 =
u11
a31
`31 u11 = a31 ⇒ `31 =
u11
..
.
an1
`n1 u11 = an1 ⇒ `n1 =
u11

13
• 2a linha de U : fazendo o produto da 2a linha de L pelas colunas de U , da 2a até
a última, e igualando com os elementos da 2a linha de A
`21 u12 + u22 = a22 ⇒ u22 = a22 − `21 u12
`21 u13 + u23 = a23 ⇒ u23 = a23 − `21 u13
..
.
`21 u1n + u2n = a2n ⇒ u2n = a2n − `21 u1n
• 2a coluna de L: fazendo o produto da 3a até a última linha de L pela 2a coluna
de U e igualando com os elementos da 2a coluna de A
a32 − `31 u12
`31 u12 + `32 u22 = a32 ⇒ `32 =
u22
a42 − `41 u12
`41 u12 + `42 u22 = a42 ⇒ `42 =
u22
..
.
an2 − `n1 u12
`n1 u12 + `n2 u22 = an2 ⇒ `n2 =
u22
• se continuarmos calculando 3a linha de U , 3a coluna de L, 4a linha de U , 4a coluna
de L, teremos as fórmulas gerais

 uij = aij − i−1
P
k=1 `ik ukj , i ≤ j,
  (9)
 `ij = aij − j−1 `ik ukj /ujj ,
P
k=1 i > j.



5 2 1
Exemplo 1. Decompor em LU a matriz A =  3 1 4 
1 1 3
Queremos determinar os seguintes elementos de L e de U :
    
1 0 0 u11 u12 u13 5 2 1
 `21 1 0   0 u22 u23  =  3 1 4  .
`31 `32 1 0 0 u33 1 1 3
• 1a linha de U
u11 = a11 ⇒ u11 = 5
u12 = a12 ⇒ u12 = 2
u13 = a13 ⇒ u13 = 1
• 1a coluna de L
a21 3
`21 = ⇒ `21 =
u11 5
a31 1
`31 = ⇒ `31 =
u11 5

• 2a linha de U
3 −1
u22 = a22 − `21 u12 ⇒ u22 = 1 − (2) =
5 5
3 17
u23 = a23 − `21 u13 ⇒ u23 = 4 − (1) =
5 5

14
• 2a coluna de L
a32 − `31 u12 1 − 15 (2)
`32 = ⇒ `32 = −1 = −3
u22 5

• 3a linha de U
u33 = a33 − `31 u13 − `32 u23 ⇒ u33 = 3 − 15 (1) − (−3) 17
5
= 13
   
1 0 0 5 2 1
3
Com isso, obtemos L =  5
1 0  e U =  0 − 15 17
5
.
1
5
−3 1 0 0 13

Aplicações

• Resolução do sistema linear Ax = b

Substituindo A = LU no sistema, obtemos

LU x = b

e então resolvemos dois sistemas, primeiro um trinagular inferior Ly = b e depois um


triangular superior U x = b.
Exemplo 2. Resolva o sistema linear usando decomposição LU
    
5 2 1 x1 0
 3 1 4   x2  =  −7  .
1 1 3 x3 −5

1o ) Ly = b     
1 0 0 y1 0
3

5
1 0   y2  =  −7  ,
1
5
−3 1 y3 −5
ou, em forma de sistema,

 y1 = 0
3
y 1 + y2 = −7
 51
5
y 1 − 3y2 + y3 = −5

de onde obtemos y1 = 0, y2 = −7 e y3 = −26


2o ) U x = y     
5 2 1 x1 0
 0 − 1 17   x2  =  −7  ,
5 5
0 0 13 x3 −26
ou, em forma de sistema,

 5x1 + 2x2 + x3 = 0
− 15 x2 + 17
x
5 3
= −7
13x3 = −26

15
de onde obtemos x3 = −2, x2 = 1 e x1 = 0.  
0
Portanto, a solução do sistema Ax = b é x =  1  .
−2

• Cálculo do determinante da latriz A

det(A) = u11 u22 · · · unn .

Exemplo 3. Calcule o determinante da matriz do Exemplo 1).


 
5 2 1
Como a matriz foi decomposta em LU e sabemos que U =  0 − 15 17 5
, calcu-
0 0 13
lamos o determinante multiplicando os elementos da diagonal, ou seja,
 
1
det(A) = 5 − (13) = −13.
5

• Cálculo da inversa da matriz A

Seja A uma matriz quadrada não singular (det(A) 6= 0). Então

AA−1 = I.
. . .
Escrevendo A−1 = [b1 .. b2 .. · · · .. bn ], em que bj é a coluna j da matriz A−1 e
. . .
I = [e1 .. e2 .. · · · .. en ], em que ej é a coluna j da matriz identidade, temos
. . . . . .
A[b1 .. b2 .. · · · .. bn ] = [e1 .. e2 .. · · · .. en ].

Com isso, podemos resolver os sistemas lineares

Abj = ej , j = 1, 2, · · · , n

que encontraremos as colunas bj da matriz inversa.


Em particular, usando a decomposição LU , obtemos as colunas de A−1 fazendo:

Lyi = ei
, i = 1, 2, · · · , n.
U b i = yi

Exemplo 4. Calcule a inversa da matriz do Exemplo 1).


Devemos resolver o sistema
    
5 2 1 b11 b12 b13 1 0 0
 3 1 4   b21 b22 b23  =  0 1 0  .
1 1 3 b31 b32 b33 0 0 1

16
Para a 1a coluna, temos que resolver
    
1 0 0 y11 1
3
Ly1 = e1 ⇒ 
5
1 0   y21  =  0 
1
5
−3 1 y31 0

Resolvendo o Sistema

 y11 = 1
3
y 11 + y 21 = 0
 51
y
5 11
− 3y21 + y31 = 0
y11 = 1
3
y21 = −
5
−3 1
y31 =3∗ − = −2
5 5
e     
5 2 1 b11 1
U b1 = y1 ⇒  0 − 15 17
5
  b21  =  −3/5  ,
0 0 13 b31 −2
Resolvendo o Sistema

 5b11 + 2b21 + b31 = 1
−1
b
5 21
+ 17
b
5 31
= −3
5
13b31 = −2

−2
b31 = = −0.1538461538
13
−3 17 −2 −1 5
b21 =( − ∗ ) ∗ −5 = ∗ −5 = = 0.3846153846
5 5 13 13 13
2 5 1 5 1 1
b11 = (1 + −2∗ )∗ = ∗ = = 0.07692307692
13 13 5 13 5 13
Para a 2a coluna, temos que resolver
    
1 0 0 y12 0
Ly2 = e2 ⇒  53 1 0   y22  =  1 
1
5
−3 1 y32 0

Resolvendo o Sistema

 y12 = 0
3
y12 + y22 = 1
 51
y
5 12
− 3y22 + y32 = 0
y12 = 0
y22 = 1
y32 = 3 ∗ 1 = 3
e     
5 2 1 b12 0
1 17  
U b2 = y2 ⇒  0 −5 5 b22  =  1 ,
0 0 13 b32 3

17
Resolvendo o Sistema

 5b12 + 2b22 + b32 = 0
−1 17
b
5 22
+ b
5 32
= 1
13b32 = 3

3
b32 = = 0, 2307692308
13
17 3 14 −14
b22 = (1 − ∗ ) ∗ −5 = ∗ −5 = = −1.076923077
5 13 65 13
3 14 1 25 1 5
b12 = (0 − +2∗ )∗ = ∗ = = 0.3846153846
13 13 5 13 5 13
Para a 3a coluna, temos que resolver
    
1 0 0 y13 0
3
Ly3 = e3 ⇒ 
5
1 0   y23  =  0 
1
5
−3 1 y33 1

Resolvendo o Sistema

 y13 = 0
3
y13 + y23 = 0
 51
y
5 13
− 3y 23 + y 33 = 1

y13 = 0
y23 = 0
y33 = 1
e     
5 2 1 b13 0
U b3 = y3 ⇒  0 − 15 17
5
  b23  =  0  ,
0 0 13 b33 1
Resolvendo o Sistema

 5b13 +
 2b23 + b33 = 0
−1 17
b
5 23
+ b33 = 0
 5
13b33 = 1

1
b33 = = 0.07692307692
13
17 1 −17 17
b23 = (0 − ∗ ) ∗ −5 = ∗ −5 = = 1.307692308
5 13 65 13
1 17 1 −35 1 −7
b13 = (0 − −2∗ )∗ = ∗ = = −0.53846153845
13 13 5 13 5 13
Com isso, obtemos a matriz inversa
 
b11 b12 b13
A−1  b21 b22 b23 
b31 b32 b33

18
 
0.07692307692 0.3846153846 −0.53846153845
A−1  0.3846153846 −1.076923077 1.30769230 
−0.1538461538 0.2307692308 0.07692307692

Exercı́cios

1) Resolva o sistema linear Ax = b onde


    

2 3 −1 x1 4
 1 0 2  , x =  x2  e b= 3 
0 3 −1 x3 2

usando decomposição LU .

2) Calcule o determinante da matriz do Exercı́cio 1) usando decomposição LU .

3) Considere a matriz  
3 0 3
A =  2 −2 1  .
1 2 0
Calcule A−1 utilizando fatoração LU .

4) Na fatoração de Crout, a matriz A se decompõe no produto LU , sendo L uma matriz


triangular inferior L = (`ij ) e U uma matriz triangular superior U = (uij ) tal que com
uii = 1, i = 1, · · · , n. Encontre as fórmulas para este método e resolva os sistemas do
Exemplo 1) e do Exercı́cio 1).

5) Como podemos utilizar o método de eliminação de Gauss (sem pivotamento) para


calcular o determinante de uma matriz? Aplique o método para calcular o determinante
da matriz do Exercı́cio 1).

6) Como podemos utilizar o método de eliminação de Gauss para obter a inversa de


uma matriz? Utilize este método para obter a inversa da matriz do Exercı́cio 3).

7) Comparando os exercı́cios 1) e 5), você consegue observar alguma relação entre as


matrizes L e U , a matriz resultante da eliminação de Gauss e os multiplicadores?

19
3.3 - Métodos iterativos Jacobi e Gauss-Seidel
Este material é baseado na Seção 5.2 do livro FRANCO, N.B. Cálculo Numérico.
São Paulo: Pearson Prentice Hall, 2006.

Objetivos desta aula

• etudar dois métodos iterativos, Jacobi e Gauss-Seidel, bem como os critérios para
convergência

Métodos iterativos
Vamos estudar os métodos de Jacobi e Gauss-Seidel, ambos iterativos, para re-
solver sistemas lineares. Um método é iterativo quando fornece uma sequência de
aproximações da solução, cada uma das quais obtidas das anteriores pela repetição do
mesmo tipo de processo.
A principal vantagem em relação aos métodos exatos é que podem chegar tão
próximos da solução quanto desejarmos. A desvantagem é que a sequência gerada
pode ou não convergir para a solução do sistema.
É aplicado, por exemplo, quando a matriz dos coeficientes é esparsa (muitos ele-
mentos iguais a zero).
Consideramos sistemas lineares Ax = b possı́vel e determinado, onde A é uma matriz
quadrada de ordem n, x e b são vetores n × 1, que, na forma de sistema fica


 a11 x1 + a12 x2 + · · · a1n xn = b1
 a21 x1 + a22 x2 + · · · a2n xn = b2

.. (10)


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

Método de Jacobi
Dado o sistema linear (10), o método de Jacobi consiste na determinação de uma
(0) (0) (0)
sequência com primeiro termo x(0) = (x1 , x2 , · · · , xn )t dado e demais termos x(k) =
(k) (k) (k)
(x1 , x2 , · · · , xn )t obtidos pelo processo iterativo:
 (k+1) (k) (k)

 x1 = (b1 − a12 x2 − · · · − a1n xn )/a11
 x(k+1) = (b − a x(k) − a x(k) · · · − a x(k) )/a

2 2 21 1 23 3 2n n 22
. (11)

 ..

 (k+1) (k) (k)
xn = (bn − an1 x1 − · · · − an,n−1 xn−1 )/ann
Observe que este método se parece com o método da iteração linear (ou do ponto
fixo) que foi discutido para uma equação. Neste caso, temos n equações e isolamos o
xi na linha i, para cada i = 1, 2, · · · , n, as incógnitas que aparecem do lado direito de
cada equação é colocada na iteração k e as do lado esquerdo na iteração k + 1.

20
CONVERGÊNCIA
Critério das linhas: Uma matriz satisfaz o critério das linhas se
n
X
|aij |
j=1,j6=i
αi = < 1, para todo i = 1, 2, · · · , n.
|aii |
Se o critério das linhas então o método de Jacobi gera uma sequência que converge
para a solução do sistema, idependetemente do x(0) tomado.

TESTE DE PARADA
• Erro absoluto ||x(k+1) − x(k) ||∞ < 
||x(k+1) − x(k) ||∞
• Erro relativo <
||x(k+1) ||∞
• Número máximo de iterações k + 1 < N M AX
onde  é uma precisão pré-fixada, x(k) e x(k+1) são dois termos consecutivos da sequência.
Quando o critério escolhido for alcançado, a solução numérica será x = x(k+1) .
Além disso, N M AX é o número máximo de iterações, suficientemente grande para
não ser alcançado quando o método convergir. Logo, se o processo parar pelo NMAX,
podemos dizer que não convergiu em N M AX iterações.

Exemplo 5. Para o sistema



 10x1 + 2x2 + x3 = 7
x1 + 5x2 + x3 = −8
2x1 + 3x2 + 10x3 = 6

a) teste a convergência do método de Jacobi;


b) resolva-o com x(0) = (0.7, −1.6, 0.6)t , precisão de 10−2 para o erro relativo e
N M AX = 5.

a) Vamos aplicar o critério das linhas:


|2| + |1| 3
α1 = = <1
|10| 10
|1| + |1| 2
α2 = = <1
|5| 5
|2| + |3| 5
α3 = = <1
|10| 10
Como todos os α’s são menores que 1, o critério das linhas foi satisfeito. Isto quer
dizer que o método de Jacobi irá convergir.
Processo iterativo:

(k+1) (k) (k)
 x1
 = (7 − 2x2 − x3 )/10
(k+1) (k) (k)
x2 = (−8 − x1 − x3 )/5
 x(k+1) = (6 − 2x(k) − 3x(k) )/10

3 1 2

21
1a. ITERAÇÃO (k = 0)

(1) (0) (0)
 x1 = (7 − 2x2 − x3 )/10

(1) (0) (0)
x2 = (−8 − x1 − x3 )/5
 x(1) = (6 − 2x(0) − 3x(0) )/10

3 1 2
(0) (0) (0)
Do enunciado, x(0) = (0.7, −1.6, 0.6)t . Logo, x1 = 0.7, x2 = −1.6 e x3 = 0.6.
Substituindo no processo,

(1)
 x1 = (7 − 2(−1.6) − 0.6)/10 = 0.96

(1)
x2 = (−8 − (0.7) − 0.6)/5 = −1.86
 x(1) = (6 − 2(0.7) − 3(−1.6))/10 = 0.94

3

Assim, x(1) = (0.96, −1.86, 0.94)t


||x(1) − x(0) ||∞
Teste de parada: < 10−2 ?
||x(1) ||∞
     
0.96 0.7 0.26
||x(1) − x(0) ||∞ =k  −1.86  −  −1.6  k∞ =k  −0, 26  k∞ = 0.34
0.94 0.6 0.34
(1)
||x ||∞ = 1.86
||x(1) − x(0) ||∞ 0.34
(1)
= = 0.1827956989 > 10−2 CONTINUE
||x ||∞ 1.86
k + 1 = 1 < 5 CONTINUE

2a. ITERAÇÃO (k = 1)

(2) (1) (1)
 x1 = (7 − 2x2 − x3 )/10 = (7 − 2(−1.86) − 0.94)/10 = 0.978

(2) (1) (1)
x2 = (−8 − x1 − x3 )/5 = (−8 − 0.96 − 0.94)/5 = −1.98
 x(2) = (6 − 2x(1) − 3x(1) )/10 = (6 − 2(0.96) − 3(−1.86))/10 = 0.966

3 1 2

Assim, x(2) = (0.978, −1.98, 0.966)t


||x(2) − x(1) ||∞
Teste de parada: (2) ||
< 10−2 ?
 ||x ∞    
0.978 0.96 0.018
||x(2) − x(1) ||∞ =k  −1.98  −  −1.86  k∞ =k  −0.12  k∞ = 0.12
0.966 0.94 0.026
(2)
||x ||∞ = 1.98
||x(2) − x(1) ||∞ 0.12
(2)
= = 0.060606061 > 10−2 CONTINUE
||x ||∞ 1.98
k + 1 = 2 < 5 CONTINUE

3a. ITERAÇÃO (k = 2)

(3)
 x1 = (7 − 2(−1.98) − 0.966)/10 = 0.9994

(3)
x2 = (−8 − 0.978 − 0.966)/5 = −1.9888
 x(3) = (6 − 2(0.978) − 3(−1.98))/10 = 0.9984

3

22
Assim, x(3) = (0.9994, −1.9888, 0.9984)t
||x(3) − x(2) ||∞
Teste de parada: (3) ||
< 10−2 ?
 ||x ∞     
0.9994 0.978 0.0214
||x(3) − x(2) ||∞ =k  −1.9888  −  −1.98  k∞ =k  −0.0088  k∞ = 0.0324
0.9984 0.966 0.0324
||x(3) ||∞ = 1.9888
||x(3) − x(2) ||∞ 0.0324
(2)
= = 0.01629123089 > 10−2 CONTINUE
||x ||∞ 1.9888
k + 1 = 3 < 5 CONTINUE

4a. ITERAÇÃO (k = 3)

(3)
 x1 = (7 − 2(−1.9888) − 0.9994)/10 = 0.99782

(3)
x2 = (−8 − 0.9994 − 0.9984)/5 = −1.99956
 x(3) = (6 − 2(0.9994) − 3(−1.9888))/10 = 0.99676

3

Assim, x(4) = (0.99782, −1.99956, 0.99676)t


||x(4) − x(3) ||∞
Teste de parada: (4) ||
< 10−2 ?
 ||x ∞     
0.99782 0.9994 0.00158
||x(4) −x(3) ||∞ =k  −1.99956  −  −1.9888  k∞ =k  0.01076  k∞ = 0.01076
0.99676 0.9984 0.00164
(4)
||x ||∞ = 1.99956
||x(3) − x(2) ||∞ 0.01076
(2)
= ≈ 0.00538118386 < 10−2 PARE
||x ||∞ 1.99956

A solução aproximada do sistema com precisão de 10−2 é

x = (0.99782, −1.99956, 0.99676)t

Método de Gauss-Seidel
Semelhante ao método de Jacobi, o método de Gauss-Seidel consiste na deter-
(0) (0) (0)
minação de uma sequência com primeiro termo x(0) = (x1 , x2 , · · · , xn )t dado e
(k) (k) (k)
demais termos x(k) = (x1 , x2 , · · · , xn )t obtidos pelo processo iterativo:

(k+1) (k) (k)

 x1 = (b1 − a12 x2 − · · · − a1n xn )/a11
(k+1) (k+1) (k) (k)

 x2 = (b2 − a21 x1 − a23 x3 · · · − a2n xn )/a22



(k+1) (k+1) (k+1) (k) (k)
x3 = (b3 − a31 x1 − a32 x2 − a34 x4 · · · − a3n xn )/a33 (12)

 .
 .
.


 x(k+1) = (b − a x(k+1) − · · · − a

x
(k+1)
)/a
n n n1 1 n,n−1 n−1 nn

23
(k+1)
Este método difere do anterior pois, a medida que os novos xi vão sendo calcu-
(k+1) (k+1)
lados, eles já são substituı́dos nos cálculos de xi+1 ,..., xn . Com isso, a convergência
para a solução é acelerada.

CONVERGÊNCIA
1) Se o critério das linhas for satisfeito então o método de Gauss-Seidel gera uma
sequência que converge para a solução do sistema, idependetemente do x(0) tomado.

2) Critério de Sassenfeld: Uma matriz satisfaz o critério de Sassenfeld se


Xn
|a1j |
j=2
β1 = < 1,
|a11 |
i−1
X n
X
|aij |βj + |aij |
j=1 j=i+1
βi = < 1, para todo i = 2, 3, · · · , n. (13)
|aii |
Se o critério de Sassenfeld for satisfeito então o método de Gauss-Seidel gera uma
sequência que converge para a solução do sistema, idependetemente do x(0) tomado.

TESTE DE PARADA
Os mesmos do método de Jacobi.

Exemplo 6. Para o sistema



 10x1 + 2x2 + x3 = 7
x1 + 5x2 + x3 = −8
2x1 + 3x2 + 10x3 = 6

a) teste a convergência do método de Gauss-Seidel;


b) resolva-o com x(0) = (0.7, −1.6, 0.6)t , precisão de 10−2 para o erro relativo e
N M AX = 5.

a) Vamos aplicar o critério de Sassenfeld:


|2| + |1| 3
β1 = = <1
|10| 10
3
|1| 10 + |1| 13
β2 = = <1
|5| 50
3
|2| 10 + |3| 13
50 8
β3 = = <1
|10| 50
Como todos os β’s são menores que 1, o critério de Sassenfeld foi satisfeito. Isto
quer dizer que o método de Gauss-Seidel irá convergir.

b) Processo iterativo:

(k+1) (k) (k)
 x1
 = (7 − 2x2 − x3 )/10
(k+1) (k+1) (k)
x2 = (−8 − x1 − x3 )/5
 x(k+1) = (6 − 2x(k+1) − 3x(k+1) )/10

3 1 2

24
1a. ITERAÇÃO (k = 0)

(1) (0) (0)
 x1 = (7 − 2x2 − x3 )/10

(1) (1) (0)
x2 = (−8 − x1 − x3 )/5
 x(1) = (6 − 2x(1) − 3x(1) )/10

3 1 2
(0) (0) (0)
Do enunciado, x(0) = (0.7, −1.6, 0.6)t . Logo, x1 = 0.7, x2 = −1.6 e x3 = 0.6.
Substituindo no processo,

(1)
 x1 = (7 − 2(−1.6) − 0.6)/10 = 0.96

(1)
x2 = (−8 − 0.96 − 0.6)/5 = −1.912
 x(1) = (6 − 2(0.96) − 3(−1.912))/10 = 0.9816

3

Assim, x(1) = (0.96, −1.912, 0.9816)t


||x(1) − x(0) ||∞
Teste de parada: (1) ||
< 10−2 ?
 ||x ∞     
0.96 0.7 0.26
||x(1) − x(0) ||∞ =k  −1.912  −  −1.6  k∞ =k  −0.312  k∞ = 0.3816
0.9816 0.6 0.3816
(1)
||x ||∞ = 1.912
||x(1) − x(0) ||∞ 0.3816
= = 0.19958159 > 10−2 CONTINUE
||x(1) ||∞ 1.912
k + 1 = 1 < 5 CONTINUE

2a. ITERAÇÃO (k = 1)

(2) (1) (1)
 x1 = (7 − 2x2 − x3 )/10 = (7 − 2(−1.912) − 0.9816)/10 = 0.98424

(2) (2) (1)
x2 = (−8 − x1 − x3 )/5 = (−8 − 0.98424 − 0.9816)/5 = −1.993168
 x(2) = (6 − 2x(2) − 3x(2) )/10 = (6 − 2(0.98424) − 3(−1.993168))/10 = 1.0011024

3 1 2

Assim, x(2) = (0.98424, −1.993168, 1.0011024)t


||x(2) − x(1) ||∞
Teste de parada: (2) ||
< 10−2 ?
 ||x ∞     
0.98424 0.96 0.02424
||x(2) − x(1) ||∞ =k  −1.993168  −  −1.912  k∞ =k  −0, 081168  k∞
1.0011024 0.9816 0.0195024
= 0.081168
||x(2) ||∞ = 1.993168
||x(2) − x(1) ||∞ 0, 081168
(2)
= = 0, 04072311014 > 10−2 CONTINUE
||x ||∞ 1, 993168
k + 1 = 2 < 5 CONTINUE

3a. ITERAÇÃO (k = 2)

(3)
 x1 = (7 − 2(−1.993168) − 1, 0011024)/10 = 0.99852336

(3)
x2 = (−8 − 0.99852336 − 1.0011024)/5 = −1.999925152
 x(3) = (6 − 2(0.99852336) − 3(−1.999925152))/10 = 1.000272874

3

25
Assim, x(3) = (0.99852336, −1.999925152, 1.000272874)t
||x(3) − x(2) ||∞
Teste de parada: (3) ||
< 10−2 ?
 ||x ∞   
0.99852336 0.98424
||x(3) − x(2) ||∞ =k  −1.999925152  −  −1.993168  k∞
 1.000272874 1.0011024
0.01428336
=k  −0.006757152  k∞ = 0.01428336
−0.000829526
(3)
||x ||∞ = 1.999925152
||x(3) − x(2) ||∞ 0.01428336
(2)
= = 0.00714194728 < 10−2 PARE
||x ||∞ 1.999925152

A solução aproximada do sistema com precisão de 10−2 é

x = (0.99852336, −1.999925152, 1.000272874)t

OBSERVAÇÕES

1) O critério de Sassenfeld é mais abrangente no sentido de englobar mais sistemas.


Pode ocorrer do critério das linhas não ser satisfeito mas o critério de Sassenfeld sim.
2) Se os critérios não forem satisfeitos, podemos fazer permutações de linhas e
colunas para encontrar uma combinação de coeficientes que nos garanta convergência.
3) A velocidade de convergência em ambos os métodos é mais rápida quanto menores
forem os valores dos α’s e β’s. Assim, uma permutação conveniente das linhas ou colunas
da matriz pode aumentar a velocidade de convergência.

Exemplo 7. Dado o sistema linear



 4x1 + 2x2 + 6x3 = 1
4x1 − x2 + 3x3 = 2
−x1 + 5x2 + 3x3 = 3

mostre que, reordenando as equações e incógnitas, podemos fazer com que o critério
de Sassenfeld seja satisfeito mas não o das linhas. Escreva uma conclusão sobre a
covergência dos métodos vistos nesta aula.

26
Exercı́cios
8) Dado o sistema 
x1 + x2 = 3
x1 − 3x2 = −3
a) aplique os critérios das linhas e Sassenfeld (mantendo linhas e colunas nessa
ordem);
b) faça 4 iterações do método de Jacobi, sem calcular erro;
c) plote no plano cartesiano x1 x2 os gráficos das retas definidas pelas equações do
sistema, jutamente com as 4 soluções obtidas em b);
d) repita b)-c) para o método de Gauss-Seidel;
e) permute as linhas do sistema e aplique os critérios das linhas e Sassenfeld;
d) repita b)-c);
e) repita b)-c) para o método de Gauss-Seidel;

9) a) Escreva uma fórmula geral para o processo(11) e então escreva um algoritmo para
o método de Jacobi.

b) Escreva uma fórmula geral para o processo(12) e então escreva um algoritmo para
o método de Gauss-Seidel.

27

Você também pode gostar