Você está na página 1de 17

Sistemas lineares: métodos iterativos

5
5.1 Introdução
Os métodos iterativos para sistemas de equações lineares são baseados no teorema do
ponto fixo de Banach. Assim, dado um sistema de equações lineares Ax = b, a ideia central é
reescrevê-lo numa forma equivalente x = T x + c. Se T for uma contração, então para qualquer
aproximação inicial x(0) a sequência gerada por x(k+1) = T x(k) + c, k ≥ 0 converge para a única
solução do sistema Ax = b.
Nesse capítulo vamos apresentar o método de Gauss-Jacobi e o método de Gauss-Seidel. Vamos
apresentar também condições suficientes para a convergência desses métodos.
Para facilidade do estudante incluímos as demonstrações dos principais resultados. Essas demon-
strações podem ser omitidas numa primeira leitura.

5.2 O método de Gauss-Jacobi


Consideremos o sistema de equações lineares

a11 x1 + a12 x2 + a13 x3 + · · · + a1n xn = b1


a21 x1 + a22 x2 + a23 x3 + · · · + a2n xn = b2
a31 x1 + a32 x2 + a33 x3 + · · · + a3n xn = b3
.. .. .
. . = ..
an1 x1 + an2 x2 + an3 x3 + · · · + ann xn = bn .

79
80 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

Vamos supor que os elementos da diagonal sejam não-nulos, aii 6= 0, i = 1, 2, . . . , n. Segue que
podemos isolar x1 na primeira equação, x2 na segunda equação e etc., escrever o sistema acima
como:
1 b1
x1 = (−a12 x2 − a13 x3 − · · · − a1n xn ) +
a11 a11
1 b2
x2 = (−a21 x1 − a23 x3 − · · · − a2n xn ) +
a22 a22
1 b3
x3 = (−a31 x1 − a32 x2 − · · · − a3n xn ) +
a33 a33
.. .. ..
. = . .
1 bn
xn = (−an1 x1 − an2 x2 − · · · − an,n−1 xn−1 ) + .
ann ann

Assim, o sistema pode ser escrito na forma x = T x + c, onde

.. b1
 
 a12 a13 a1n 
0 − − ··· . −  a11 
a11 a11 a11 
..
  b 
 a21 a23 a2n   2 
− 0 − ··· . − 
 a22 a22 a22   a22 
 
 a
T = 31 a32 .. a3n  c =  b3 
 
− − 0 ··· . −

 a33 a33 a33   a33 

 .. .. .. .. ..   . 
 . 
 . . . . .   . 
 a an2 an3 an,n−1  b 
n1
− − − ··· − 0 n
.
ann ann ann ann ann
(0) (0) (0)
Dado um vetor x(0) = (x1 , x2 , . . . , xn ), o método de Gauss-Jacobi é um método iterativo que
gera uma sequência de vetores construída iterativamente por

x(k+1) = T x(k) + c, k ≥ 0.

Numa forma geral temos para um sistema de equações lineares, supondo que os elementos da
diagonal aii 6= 0, o seguinte esquema

(k+1) 1  (k) (k)


 b1
x1 = −a12 x2 − a13 x3 − · · · − a1n x(k) n +
a11 a11
(k+1) 1 
(k) (k)
 b2
x2 = −a21 x1 − a23 x3 − · · · − a2n x(k) n +
a22 a22
(k+1) 1 
(k) (k)
 b3
x3 = −a31 x1 − a32 x2 − · · · − a3n x(k) n +
a33 a33
.. .. ..
. = . .
1 
(k) (k) (k)
 bn
x(k+1)
n = −a x
n1 1 − a x
n2 2 − · · · − a n,n−1 n−1 +
x .
ann ann
5.2. O MÉTODO DE GAUSS-JACOBI 81

• Exemplo 5.2.1

Consideremos o sistema de equações lineares a seguir:

10x1 + 5x2 + 3x3 + x4 = 6


2x1 + 10x2 − 4x3 − 3x4 = 5
x1 + 3x2 − 10x3 + 5x4 = 2
−5x1 + x2 + 3x3 + 10x4 = 3.

Isolando cada uma das incógnitas, temos

x1 = 0.6 − 0.5x2 − 0.3x3 − 0.1x4


x2 = 0.5 − 0.2x1 + 0.4x3 + 0.3x4
x3 = −0.2 + 0.1x1 + 0.3x2 + 0.5x4
x4 = 0.3 + 0.5x1 − 0.1x2 − 0.3x3 .

Pelo método de Gauss-Jacobi, podemos escrever as iterações


(k+1) (k) (k) (k)
x1 = 0.6 − 0.5x2 − 0.3x3 − 0.1x4
(k+1) (k) (k) (k)
x2 = 0.5 − 0.2x1 + 0.4x3 + 0.3x4
(k+1) (k) (k) (k)
x3 = −0.2 + 0.1x1 + 0.3x2 + 0.5x4
(k+1) (k) (k) (k)
x4 = 0.3 + 0.5x1 − 0.1x2 − 0.3x3 .

Tomando x(0) = (0, 0, 0, 0) como aproximaçãoo inicial, obtemos


(1) (0) (0) (0)
x1 = 0.6 − 0.5x2 − 0.3x3 − 0.1x4 = 0.6
(1) (0) (0) (0)
x2 = 0.5 − 0.2x1 + 0.4x3 + 0.3x4 = 0.5
(1) (0) (0) (0)
x3 = −0.2 + 0.1x1 + 0.3x2 + 0.5x4 = −0.2
(1) (0) (0) (0)
x4 = 0.3 + 0.5x1 − 0.1x2 − 0.3x3 = 0.3.

Assim, obtemos uma nova aproximação x(1) = (0.6, 0.5, −0.2, 0.3) que deverá ser usada no passo
seguinte para obter:
(2) (1) (1) (1)
x1 = 0.6 − 0.5x2 − 0.3x3 − 0.1x4 = 0.38
(2) (1) (1) (1)
x2 = 0.5 − 0.2x1 + 0.4x3 + 0.3x4 = 0.39
(2) (1) (1) (1)
x3 = −0.2 + 0.1x1 + 0.3x2 + 0.5x4 = 0.06
(2) (1) (1) (1)
x4 = 0.3 + 0.5x1 − 0.1x2 − 0.3x3 = 0.61.

Obtemos então uma nova aproximação

x(2) = (0.38, 0.39, 0.06, 0.61).


82 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

Verifique que a aproximação x(3) é dada por x(3) = (0.326, 0.631, 0.182, 0.433).
Continuamos o procedimento até atingirmos a precisão desejada.
Após 10 mil iterações obtivemos

x(10000) = (0.2575050032, 0.5783855905, 0.0600400267, 0.3529019346).

Uma condição suficiente para a convergência do método de Gauss-Jacobi:

Teorema 5.2.2 (Critério de linhas) Seja A uma matriz n × n e Ax = b um sistema de


equações lineares. Sejam
n
X ajk
αj = , j = 1, 2, . . . , n. (5.2.1)
k=1, k6=j
a jj

e
α = max{α1 , α2 , . . . , αn }.
Se α < 1 então, para qualquer aproximação inicial x(0) , o método de Gauss-Jacobi gera uma
sequência de aproximações (x(k) ) que converge para a única solução do sistema independente da
aproximação inicial dada x(0) .

• Exemplo 5.2.3 Vamos utilizar o critério de linhas para estudar a convergência do sistema
abaixo.

   
10 5 3 1 x1 6
 2 10 −4 −3   x2   5 
  = 
 1 3 −10 5   x3   2 
−5 1 3 10 x4 3

Temos que

5+3+1
α1 = = 0.9
10
2+4+3
α2 = = 0.9
10
1+3+5
α3 = = 0.9
10
5+1+3
α4 = = 0.9
10
α = 0.9 < 1.

Como α < 1 segue que o método de Gauss-Jacobi gera uma sequência de vetores x(k) que
converge para a solução do sistema independentemente da aproximação inicial x(0) .
5.2. O MÉTODO DE GAUSS-JACOBI 83

Em alguns casos podemos efetuar operações sobre as linhas ou colunas de uma matriz de modo
que assuma uma nova configuração que satisfaz ao critério de linhas. Como exemplo, considere
a matriz abaixo, note que ela não satisfaz ao critério de linhas.
 
2 1 10
A =  1 8 −2 
4 2 1

Mas permutando as linhas 1 e 3, obtemos a matriz


 
4 2 1
A1 =  1 8 −2 
2 1 10

que satisfaz ao critério de linhas.

5.2.1 Critérios de Parada


Os critérios de parada nos métodos iterativos para sistemas de equações lineares são os mesmos
usados para equações não lineares, mas adaptados a vetores e matrizes.
Uma norma de vetores em Rn , denotada por k · · · k é uma função que satisfaz:
(a) kxk ≥ 0 para todo x ∈ Rn ,
(b) kxk = 0 se, e somente se, x = 0,
(c) kαxk = |α|kxk, para todo α ∈ R e x ∈ Rn ,
(d) kx + yk ≤ kxk + kyk, ∀x, y ∈ Rn .

Exemplos de Normas em Rn
(a) Norma 2 ou norma Euclidiana: dado x = (xi ) ∈ Rn definimos
v
u n
uX
kxk2 = t x2i .
i=1

(b) Norma do máximo: dado x = (xi ) ∈ Rn definimos

kxk∞ = max |xi |.


1≤i≤n

(c) Norma da soma: dado x = (xi ) ∈ Rn definimos


n
X
kxk = |xi |.
i=1

Teorema 5.2.4 Em espaços Rn , vale a relação



kxk∞ ≤ kxk2 ≤ n kxk∞ .
84 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

Agora vamos introduzir a noção de norma de matriz. Seja Mn o espaço vetorial de todas as
matrizes quadradas de ordem n.
Uma norma de matriz é uma função, denotada por k · · · k, que satisfaz
(a) kAk ≥ 0 para todo A ∈ Mn ,
(b) kAk = 0 se, e somente se, A = 0,
(c) kαAk = |α|kAk, para todo α ∈ R e A ∈ Mn ,
(d) kA + Bk ≤ kAk + kBk, ∀A, B ∈ Mn .
(e) kABk ≤ kAk · kBk.
A noção de norma induz a noção de distância: a distância entre as matrizes A e B é dada por
kA − Bk.
O seguinte resultado apresenta vários exemplos de norma de matrizes.

Teorema 5.2.5 Seja k · · · k uma norma de vetores em Rn . Então,

kAk = sup kAxk


kxk=1

é uma norma de matrizes em Mn .

A norma dada no teorema acima é chamada de norma natural ou norma induzida.

Exemplos de Normas Matrizes

(a) Norma do máximo:

kAk∞ = sup kAxk∞ .


kxk∞ =1

(b) Norma 2 ou euclidiana


kAk2 = sup kAxk2 .
kxk2 =1

Considerando uma norma de vetores k.k, os critérios de parada mais utilizados nos métodos de
Gauss-Jacobi e Gauss-Seidel são:

(a) kx(k+1) − x(k) k < ε (erro absoluto),

kx(k+1) − x(k) k
(b) < ε (erro relativo).
kx(k+1) k

5.3 O método de Gauss-Seidel


Dado um sistema de equações lineares Ax = b, o método de Gauss-Seidel também consiste em
escrevermos o sistema na forma equivalente

x = T x + c.
5.3. O MÉTODO DE GAUSS-SEIDEL 85

(k+1)
Durante a aplicação do método de Gauss-Jacobi, pudemos observar que ao calcularmos x2
(k+1)
já conhecíamos x1 , o valor mais atualizado de x1 , mas este não foi utilizado para calcular
(k+1) (k+1) (k+1) (k+1)
x2 . Do mesmo modo, ao calcularmos x3 já conhecíamos x1 e x2 , mas novamente
(k+1)
estes não foram utilizados. E assim sucessivamente, até que finalmente ao calcularmos xn
(k+1) (k+1)
já conhecíamos x1 , . . . , xn−1 , mas estes não foram utilizados. O Método de Gauss-Seidel,
utiliza em cada aproximação, a aproximação mais atual de cada componente. Isto é, ao calcular-
(k+1) (k+1) (k+1)
mos x2 utilizamos x1 e os demais da iteração anterior. Ao calcularmos x3 utilizamos
(k+1) (k+1) (k+1) (k+1) (k+1)
x1 e x2 . E assim por diante, até que ao calcularmos xn utilizamos x1 , . . . , xn−1 .
É importante perceber a diferença entre os métodos de Gauss-Jacobi e Gauss-Seidel.
Vamos ilustrar o método de Gauss-Seidel com um exemplo:

• Exemplo 5.3.1

Consideremos o sistema de equações lineares.

10x1 + 2x2 + x4 = 10
5x1 + 10x2 + x3 = 2
x2 + 4x3 + x4 = 8
−x3 + 6x4 = 3

Isolando cada uma das incógnitas, temos:

x1 = 1 − 0.2x2 − 0.4x4
x2 = 0.2 − 0.5x1 − 0.3x3
x3 = 2 − 0.25x2 − 0.25x4
x4 = 0.5 + 0.6667x3 .

Tomemos como aproximação inicial o vetor x(0) = (0, 0, 0, 0) obtemos


(1) (0) (0) (1)
x1 = 1 − 0.2x2 − 0.4x4 = 1, usar x1 na próxima equação,
(1) (1) (0) (1) (1)
x2 = 0.2 − 0.5x1 − 0.3x3 = −0.3, usar x1 , x2 na próxima equação,
(1) (1) (0)
x3 = 2 − 0.25x2 − 0.25x4 = 2.075,
(1) (1)
x4 = 0.5 + 0.6667x3 = 0.845833.

Assim, temos um novo vetor x(1) = (1, −0.3, 2.075, 0.845833) e continuamos o processo para
calcular x(2) :
(2) (1) (1) (2)
x1 = 1 − 0.2x2 − 0.4x4 = 0.9754166667, usar x1 na próxima equação,
(2) (2) (1) (2) (2)
x2 = 0.2 − 0.5x1 − 0.3x3 = −0.4952083334, usar x1 , x2 na próxima equação,
(2) (2) (1)
x3 = 2 − 0.25x2 − 0.25x4 = 1.912343750,
(2) (2)
x4 = 0.5 + 0.6667x3 = 0.81872395.
86 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

Assim, temos um novo vetor x(2) = (0.9754167, −0.495208, 1.91234375, 0.81872395). Continu-
amos o processo até atingirmos a precisão desejada.
Para esse exemplo, temos o seguinte esquema geral:
(k+1) (k) (k)
x1 = 1 − 0.2x2 − 0.4x4
(k+1) (k+1) (k)
x2 = 0.2 − 0.5x1 − 0.3x3
(k+1) (k+1) (k)
x3 = 2 − 0.25x2 − 0.25x4
(k+1) (k+1)
x4 = 0.5 + 0.6667x3 .

Para um sistema geral de equações lineares, supondo que os elementos da diagonal aii 6= 0, i =
1, 2, . . . , n temos o seguinte esquema (atenção para as iterações):

(k+1) 1  (k) (k)


 b1
x1 = −a12 x2 − a13 x3 − · · · − a1n x(k) n +
a11 a11
(k+1) 1 
(k+1) (k)
 b2
x2 = −a21 x1 − a23 x3 − · · · − a2n x(k)
n +
a22 a22
(k+1) 1 
(k+1) (k+1)
 b3
x3 = −a31 x1 − a32 x2 − · · · − a3n x(k)
n +
a33 a33
.. .. ..
. = . .
(k+1) 1 
(k+1) (k+1) (k+1)
 bn
xn = −an1 x1 − an2 x2 − · · · − an,n−1 xn−1 + .
ann ann

Uma condição suficiente para a convergência do método de Gauss-Seidel:


Teorema 5.3.2 (Critério de Sassenfeld) Seja A = (aij ) uma matriz quadrada de ordem n.
Sejam βi , i = 1, 2, . . . , n dados por
n
X |a1j |
β1 = ,
j=2
|a11 |
i−1 n
X |aij |βj X |aij |
βi = + .
j=1
|aii | j=i+1
|a ii |

Se β = max{βi } < 1, então o método de Gauss-Seidel gera uma sequência de vetores (x(k) ) que
converge para a única solução do sistema, independentemente da aproximação inicial x(0) .

• Exemplo 5.3.3

Consideremos o sistema de equações lineares.


    
10 2 0 1 x1 10
 5 10 1 0   x2   2
  

 0 1
 = 
4 1  x3   8 
0 0 −1 6 x4 3
5.3. O MÉTODO DE GAUSS-SEIDEL 87

1
β1 = [2 + 0 + 1] = 0.3
10
1
β2 = [5 × 0.3 + 1 + 0] = 0.25
10
1
β3 = [0 × 0.3 + 1 × 0.25 + 1] = 0.3125
4
1
β4 = [0 × 0.3 + 0 × 0.25 + 1 × 0.3125] = 0.05283
6

segue que βmax = 0.3125 < 1 e portanto satisfaz ao critério de Sassenfeld.

Consideremos a matriz
 
1 3 6
A= 7 1 2 
2 8 3

Essa matriz não satisfaz ao critério de Sassenfeld. Mas trocando linha 1 com a linha 2 e em
seguida a linha 2 com a linha 3, obtemos
 
7 1 2
B= 2 8 3 
1 3 6

que satisfaz ao critério de Sassenfeld. Verifique.


Para o próximo resultado, podemos supor que a matriz A do sistema linear Ax = b possui
elementos da diagonal não nulos e iguais a 1.

Teorema 5.3.4 (Critério de Sassenfeld) Seja A = (aij ) uma matriz quadrada de ordem n.
Sejam βi , i = 1, 2, . . . , n dados por
n
X
β1 = |aij |,
j=1

i−1
X n
X
βi = |aij |βj + |aij |.
j=1 j=i+1

Se β = max{βi } < 1, então o método de Gauss-Seidel converge.

Demonstração: Consideremos o sistema linear Ax = b. Podemos supor que os elementos


da diagonal de A sejam não nulos e iguais a 1. Assim, o sistema pode ser reescrito na forma
x = T x + c. O método de Gauss-Seidel consiste em gerar uma sequência (x(k) ), k = 1, 2, . . . ,
que converge para a solução x.
Seja y (k) = x(k) − x o vetor dos erros. Substituindo no método de Gauss-Seidel, temos
88 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

n
(m+1) (m)
X
−y1 = a1j yj
j=2
i−1 n
(m+1) (m+1) (m)
X X
−yi = aij yj + aij yj , i = 2, . . . , n.
j=1 j=i+1

Da primeira equação, temos


n
(m+1) (m) (m)
X
|y1 | ≤ max |yj | |a1j | ≤ β1 max |yj |.
2≤j≤n 2≤j≤n
j=2

Supondo que vale a

(m)
|ys(m+1) | ≤ βs max |yj |,
1≤j≤n

1 ≤ s ≤ i − 1, vamos provar que essa desigualdade ainda é válida para s = i.


De fato, !
i−1 n
(m+1) (m)
X X
|yi |≤ |aij |βj + |aij | max |yj |, i = 2, . . . , n.
1≤j≤n
j=1 j=i+1

Donde,
(m+1) (m)
|yi | ≤ βi max |yj |, i = 2, . . . , n.
1≤j≤n

Seja β = max1≤j≤n βj . Segue que


(m+1) (m)
max |yi | ≤ β max |yi |.
1≤i≤n 1≤i≤n

Por indução, obtemos


(m+1) (0)
max |yi | ≤ β m max |yi |.
1≤i≤n 1≤i≤n

(k) (k)
Como 0 ≤ β < 1, temos que maxi≤i≤n |yi | → 0 quando k → ∞. Segue que xi → xi . 

Relação entre o critério de linhas e o critério de Sassenfled:

Existe uma relação entre o critério de linhas e o critério de Sassenfeld. Essa relação é demon-
strada no teorema 5.3.5 cujo enunciado é dado a seguir:

Teorema 5.3.5 Se uma matriz A satisfaz ao critério de linhas, então ela também satisfaz ao
ao critério de Sassenfeld.
5.3. O MÉTODO DE GAUSS-SEIDEL 89

Demonstração: A prova é por indução. Devemos provar que se


n
X
α = max |aij | < 1
1≤i≤n
j=1,j6=i

então o critério de Sassenfeld é satisfeito. De fato, se i = 1, temos


n
X X
β1 = |aij | ≤ max |aij | < 1.
i
j=2 i=1,i6=1

Suponha agora que βj < 1 para j = 1, 2, . . . , i − 1. Então,


i−1
X n
X n
X
βi = |aij |βj + |aij | ≤ max |aij | < 1.
i
j=1 j=i+1 j=1,j6=i

Segue que β = maxj βj < 1. 


Logo, podemos utilizar também o critério de linhas para estudar a convergência do método de
Gauss-Seidel.

• Exemplo 5.3.6

A recíproca do teorema 5.3.5 não é verdadeira. Tomemos a matriz


 
5 1 2
 
A=  4 6 3 

1 3 6

é fácil verificar que satisfaz ao critério de Sassenfeld, mas não satisfaz ao critério de linhas.
A matriz  
3 0 1
 
A=  1 −1 0 

3 1 62
é fácil verificar não satisfaz ao critério de linha; mas satisfaz ao critério de Sassenfeld. Verifique.

Exercício 5.3.7

1. Escreva o sistema linear abaixo

10x1 − x2 + 2x3 = 6,
−x1 + 11x2 − x3 + 3x4 = 25,
2x1 − x2 + 10x3 − x4 = −11,
2x2 − 3x3 + 8x4 = 15.
90 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

na forma
x = Tx + c
e use o método de Gauss-Jacobi para obter uma solução aproximada, use como critério
de parada
kxk+1 − xk k∞
< 10−3 .
kxk+1 k∞

2. Use o método de Gauss-Jacobi para obter uma aproximação da solução do sistema de


equações lineares com aproximação inicial x(0) = (0, 0, 0). Faça três iterações. Verifique
se o critério de linhas é satisfeito. É dado abaixo a matriz ampliada do sistema.
 
10 2 1 7
 
 3 5 1 −8 
 
2 3 10 6

(k) (k) (k)


k iterações x1 x2 x3
0
1
2
3

3. Use o método de Gauss-Seidel para obter uma aproximação da solução do sistema de


equações lineares com aproximação inicial x(0) = (0, 0, 0). Faça três iterações. Verifique
se o critério de Sassenfeld é satisfeito. A matriz ampliada do sistema é a do problema
anterior.

4. Encontre as duas primeiras iterações do método de Gauss-Jacobi, usando x0 = 0, nos


sistemas de equações lineares abaixo.
 
3x
 1
 − x 2 + x 3 = 1, 10x1 − x2 = 9

a) 3x1 + 6x2 + 2x3 = 0, b) −x1 + 10x2 − 2x3 = 7
 
3x1 + 3x2 + 7x3 = 4 −2x2 + 10x3 = 6.
 


 4x1 + x2 + x3 + x5 = 6

−x1 − 3x2 + x3 + x4 = 6



c) 2x1 + x2 + 5x3 − x4 − x5 = 6

−x1 − x2 − x3 + 4x4 = 6





2x − x + x + 4x = 6
2 3 4 5

5. Encontre as duas primeiras iterações do método de Gauss-Seidel, usando x(0) = 0, no


exercício acima.
5.4. ESTUDO DA CONVERGÊNCIA DOS MÉTODOS ITERATIVOS 91

6. Considere a matriz  
α −β α
 
A=
 β −β β 

β −β β
onde 0 < β < α. Mostre que o método de Gauss-Jacobi converge; mas o métodode
Gauss-Seidel diverge.

5.4 Estudo da convergência dos métodos iterativos


Nessa seção vamos estudar o método de Gauss-Seidel e o método de Gauss-Jacobi. Esses são os
principais métodos iterativos para resolver sistemas de equações lineares. Como todo método
iterativo, eles iniciam-se com uma aproximação inicial x(0) e geram uma sequência (x(k) ) que
converge para a solução x.
A ideia geral desses métodos é converter o sistema dado Ax = b em um sistema quivalente na
forma x = T x + c, para alguma matriz T e vetor c fixados.
Consideremos um sistema de equações lineares Ax = b, onde A = (aij ) é uma matriz quadrada
n × n. Escreva o sistema na forma equivalente dada por x = T x + c. Defina a seguinte aplicação
F : Rn → Rn dada por F x = T x + c, onde T = (cjk ).
Munindo Rn com a métrica
d(x, y) = max |xi − yi |
1≤i≤n

obtemos que (R , d) é um espaço métrico completo, onde x = (x1 , x2 , . . . , xn ) e y = (y1 , y2 , . . . , yn )


n

são vetores do Rn .
Veremos que sob algumas condições T será uma contração. De fato, dados x = (x1 , x2 , . . . , xn )
e y = (y1 , y2 , . . . , yn ) vetores do Rn , então

d(F x, F y) = d(T x + c, T y + c) = d(T x, T y) = max |(T (x − y))i |


i
n
X n
X
≤ max |xi − yi | max |cjk | = d(x, y) max |cjk |.
i j j
k=1 k=1

Seja
n
X
K = max |cjk |.
j
k=1

Se a matriz T é tal que


n
X
K = max |cjk | < 1, (5.4.2)
1≤j≤n
k=1

então T é uma contração.


A condição dada pela equação (5.4.2) é chamado de critério de linhas pois envolve soma dos
elementos de cada linha. É uma condição suficiente para a convergência da sequência dada pelo
Teorema 1.3.1. Assim, obtemos o seguinte resultado.
92 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

Teorema 5.4.1 Dado o sistema de equações lineares x = T x + c, onde T = (cjk ) é uma matriz
quadrada n × n que satisfaz
Xn
K = max |cjk | < 1.
j
k=1

Então, o sistema admite uma única solução. Além disso, dado qualquer aproximação inicial
x(0) , a sequência gerada por
x(m+1) = T x(m) + c, m ≥ 0
converge para a solução x do sistema.
O erro cometido na aproximação é dado
K Km
d(x(m) , x) ≤ d(x(m−1) , x(m) ) ≤ d(x(0) , x(1) ).
1−K 1−K

Casos particulares importantes:

(1) O Método iterativo de Jacobi:


Dado o sistema de equações lineares Ax = b, onde A = (aij ) e b = (bj ), o método iterativo de
Jacobi é dado por
!
(m+1) 1 X (m)
xi = bi − aij xj , i = 1, 2, . . . , n. (5.4.3)
aii j=1, j6=i

Este esquema é sugerido pela resolução da i-ésima equação para xi , não é difícil verificar que
X  aij  bi
xi = − xj + , i = 1, 2, . . . , n.
j=1,j6=i
aii aii

Outra forma mais imediata de obtermos esse método é trabalhando matricialmente. Seja D a
matriz diagonal composta pela diagonal de A, então

Ax = b ⇔ (A − D + D)x = b ⇔ (A − D)x + Dx = b
⇔ Dx = b − (A − D)x ⇔
x = D−1 [b − (A − D)x]
⇔ x = D−1 b − D−1 (A − D)x.

Assim, a matriz C no método


Pn iterativo é dada por C = −D−1 (A − D).
Como a condição maxj k=1 |cjk | < 1 é relativamente simples nesse caso, podemos traduzir essa
condição em termos dos coeficientes da matriz A. Este resultado é o critério de linhas.

Teorema 5.4.2 (Critério de linhas) Seja A uma matriz n × n e Ax = b um sistema de


equações lineares. Sejam
n
X ajk
αj = , j = 1, 2, . . . , n. (5.4.4)
k=1, k6=j
a jj
5.5. USANDO MAPLE: O MÉTODO DE GAUSS-JACOBI 93

Se
α = max{α1 , α2 , . . . , αn } < 1,
então para qualquer aproximação inicial x(0) o método de Gauss-Jacobi gera uma sequência de
aproximações (x(k) ) que converge para a solução do sistema.

(2) O Método iterativo de Gauss-Seidel:

Dado o sistema de equações lineares Ax = b, sejam D a matriz diagonal formada pelos elementos
da diagonal de A, −U a matriz triangular superior de diagonal nula formada pela parte superior
de A e −L a matriz triangular inferior de diagonal nula formada pela parte inferior de A. Então,
A = (−L + D − U ).
Assim, x = (D − L)−1 b + (D − L)−1 U x. Note que uma condição necessária e suficiente para a
existência de (D − L)−1 é que os coeficientes da diagonal de A sejam não nulos, isto é, aii 6= 0.
No Teorema 5.4.1 o nosso sistema ficou escrito como x = T x + c, onde T = (D − L)−1 U e
c = (D − L)−1 b e o método iterativo de Gauss-Seidel fica expresso como

x(m+1) = T x(m) + c.

Ou de outra forma: A = D − L − U ,

Ax = b
(D − L − U )x = b
(D − L)x = Ux + b
−1
D (D − L)x = D−1 U x + D−1 b
(I − D−1 L)x = D−1 U x + D−1 b

(I − D−1 L)x(k+1) = D−1 U x(k) + D−1 b
x(k+1) = D−1 Lx(k+1) + D−1 U x(k) + D−1 b.

O Teorema 5.4.1 aplicado a T é suficiente para garantir a convergência do método iterativo de


Gauss-Seidel. Obter uma condição sobre a matriz T pode ser trabalhoso, na prática usamos o
critério de linhas.

5.5 Usando Maple: o método de Gauss-Jacobi


O procedimento em Maple a seguir determina uma aproximação para a solução do sistema
Ax = b. Você entra com a matriz Aini , o vetor bin , a aproximação inicial xin , a dimensão da
matriz n e o número máximo de iterações itmax.

> restart: with(linalg):


> GJacobi:=proc(Ain,bin,xin,n,itmax)
94 CAPÍTULO 5. SISTEMAS LINEARES: MÉTODOS ITERATIVOS

> local A,b,xant,xnew,d,it,i,k,j;


> A:=Ain; b:=bin; xant:=xin;xnew:=vector(n);
> for it from 1 while it <= itmax do
> for i from 1 to n do
> xnew[i] := b[i];
> for k from 1 to n do
> if k <> i then xnew[i] := xnew[i] - A[i,k]*xant[k]; fi;
> od;
> xnew[i] :=xnew[i]/A[i, i];
> od;
> for j from 1 to n do xant[j]:=xnew[j] od;
> od;
> print(‘Aproximação computada‘);
> print(evalf(evalm(xnew)));
> end:
###Exemplo
> GJacobi1([[10,2,5,1],[3,10,1,1],[2,3,10,1],[-1,3,1,20]],
[18,15,16,23],[0.,0.,0.,0.],4,3);

5.6 Usando Maple: o método de Gauss-Seidel


O procedimento em Maple a seguir determina uma aproximação para a solução do sistema
Ax = b. Você entra com a matriz ampliada M = [A|b], a precisão desejada e o número N de
iterações.
> restart:
> with(linalg):
> GSeidel:=proc(a, prec, nmax)
> local n, xold, xnew, i, j, k, m, erro, soma:
> n:=rowdim(a):
> # chute inicial é [0,...,0]
> xold:=vector(n,0):
> # Começando as iteradas
> xnew:=vector(n,0):
> erro:=1:
> for j from 1 to nmax do
> if erro > prec then
> # Calculando vetor xnew para iterada j
> for i from 1 to n do
> soma:=0:
> for k from 1 to n do
> if i<>k then soma:=soma+a[i,k]*xnew[k]: fi
> od:
5.7. RESUMO DO CAPÍTULO 95

> xnew[i]:=(a[i,n+1]-evalf(soma))/a[i,i]:
> od:
> else break
> fi:
> # Verificando a precisão e atualizando os dados
> for k from 1 to n do
> erro:=0:
> m:=abs(xnew[k]-xold[k]):
> if erro < m then erro:=m: fi:
> xold[k]:=xnew[k]:
> od:
> od:
> # Escrevendo a solução
> print(xold, ‘ Iterações feitas‘, j-1):
> end:
##Exemplo:
> M:=matrix([[5.,-1,0,0,1],[-1,5,-1,0,1],[0,-1,5,-1,1],[0,0,-1,5,1]]);
> GSeidel(M,.0001,4);

5.7 Resumo do capítulo


Neste capítulo apresentamos os principais métodos iterativos para resolução de sistemas
de equações lineares e critérios de convergência.

1. Método de Gauss-Jacobi;

2. Método de Gauss-Seidel;

3. O critério de linhas;

4. O critério de Sassenfeld.

Você também pode gostar