Você está na página 1de 39

Métodos Numéricos 2022/2023

2. Sistemas de Equações Lineares

Universidade de Aveiro
Departamento de Matemática
Introdução

Sistema de n equações a n incógnitas:





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


 a x
21 1 + a22 x2 . . . a2n xn = b2


 ··· ··· ···


 a x
n1 1 + an2 x2 . . . ann xn = bn

Notação Matricial: Ax = b
     
a a12 ··· a1n x b
 11   1   1 
 a21 a22 ··· a2n  x2   b2 
     

A=
 .. .. .. ..
,
  ..  ,
x=  b=
 .. 

 . . . .   .   . 
     
an1 an2 ··· ann xn bn


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Introdução

• Norma de um vector ∥.∥ : Rn −→ R+


0 , tal que

(i) ∥x∥ = 0 ⇐⇒ x = 0

(ii) ∥αx∥ = |α|∥x∥, ∀α ∈ R, ∀x ∈ Rn

(iii) ∥x + y∥ ≤ ∥x∥ + ∥y∥, ∀x, y ∈ Rn

• Limite de uma sucessão de vectores


 
(k) (k)
{x(k) }k∈N ⊂ Rn , x(k) = x1 , x2 , . . . , x(k)
n ∈ Rn , tal que
(k)
lim xi = xi .
k→∞

Então, lim x(k) = x, sendo x = (x1 , x2 , . . . , xn ) ∈ Rn e


k→∞
(k)
lim x = x ⇐⇒ lim ∥x(k) − x∥ = 0.
k→∞ k→∞

1⃝
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Introdução

• Norma de uma matriz (quadrada) ∥.∥ : Rn×n −→ R+


0 , tal que

(i) ∥A∥ = 0 ⇐⇒ A = 0

(ii) ∥αA∥ = |α|∥A∥, ∀α ∈ R, ∀A ∈ Rn×n

(iii) ∥A + B∥ ≤ ∥A∥ + ∥B∥, ∀A, B ∈ Rn×n

• Limite de uma sucessão de matrizes


 
(k) n×n (k) (k)
{A }k∈N ⊂ R ,A = aij ∈ Rn×n , tal que
(i,j)
(k)
lim aij = aij , i, j = 1, . . . , n.
k→∞

Então, lim A(k) = A, sendo A = (aij )(i,j) ∈ Rn×n e


k→∞
(k)
lim A = A ⇐⇒ lim ∥A(k) − A∥ = 0.
k→∞ k→∞

1 2⃝
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Introdução

Exemplos de Normas (que vamos usar)

1) Norma máxima (ou norma do máximo)

Norma vectorial: ∥x∥∞ = max |xi |


i=1,2,...,n
n
X
Norma matricial: ∥A∥∞ = max |aij |
i=1,2,...,n
j=1

2) Norma absoluta (ou norma da soma)


n
X
Norma vectorial: ∥x∥1 = |xi |
i=1
n
X
Norma matricial: ∥A∥1 = max |aij |
j=1,2,...,n
i=1

1 2 3⃝
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos

O sistema Ax = b é possı́vel e determinado se e só se det(A) ̸= 0.

Consideremos, então, que det(A) ̸= 0 e comecemos por estudar alguns


métodos diretos para o cálculo da solução x do sistema linear Ax = b.

Num método direto, a solução é obtida após um número finito de passos


durante os quais podem ocorrer erros (devido a arredondamentos) que se
propagam ao longo das operações associadas ao algoritmo numérico usado.

Tais erros podem ter uma maior ou menor influência na aproximação que
se obtém para o valor da solução x.

1 2 3 4⃝
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: eliminação de Gauss

Método de eliminação de Gauss


Ax = b ⇐⇒ U x = d, onde U é uma matriz triangular (superior):
   
L1 a a12 · · · a1n | b1 a a12 · · · a1n | b1
 11   11 
(1) (1) (1)
L2  a21 a22 · · · a2n | b2   0 a22 · · · a2n | b2
   

..  .. .. .. .. −→ .. .. .. ..
   
.. .. 
. 
 . . . . | .  
  . . . . | . 

Ln an1 an2 ··· ann | bn 0 0 ··· a(n−1)
nn | b(n−1)
n

(1)
• a11 , a22 , . . . , a(n−1)
nn pivots

• Para p = 1 até n − 1 fazer Li ←− Li − mip Lp , onde


aip
mip = (p−1) (multiplicadores), i = p + 1, . . . , n , a(p−1)
pp
(0)
̸= 0, a11 ≡ a11
app

1 2 3 4 5⃝
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: instabilidade numérica

Exemplo:

 0.003 x + 59.140 x2 = 59.170
1
Solução exata x = [10 1]T
 5.291 x1 − 6.130 x2 = 46.780

Resolução pelo método de eliminação de Gauss em F P (10, 4, 2, A):


   
0.003 59.14 | 59.17 L2 ←L2 −m21 L1 0.003 59.14 | 59.17
  −→  
5.291 −6.130 | 46.78 0 −104300 | −104400

a21 5.291
m21 = a11
= 0.003
= 1763.66(6) → m21 = 1764 ≫ 1

Solução aproximada x = [−10.00 1.001]T

A utilização de um pivot com um valor absoluto muito baixo conduziu a


uma situação de instabilidade numérica no cálculo da solução do sistema.
1 2 3 4 5 6⃝
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: escolha de pivot

A instabilidade numérica pode ser evitada usando

⋆ pivotagem parcial (escolha parcial de pivot)

⋆ pivotagem total (escolha total de pivot)

Pivotagem parcial:
no inı́cio do passo p é escolhido para pivot o elemento akp tal que

|akp | = max |aip | (p ≥ k)


p≤i≤n

e se k ̸= p, as linhas k e p são trocadas entre si

1 2 3 4 5 6 7⃝
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: escolha de pivot

Pivotagem parcial

 
a11 ··· ··· ··· a1n | b1
.. .. .. ..
 
.
 

 . . | . 

(p−1) (p−1)
0 ··· 0 app ··· apn | b(p−1)
 

 p 

 .. .. .. .. .. .. 

 . . . . . | . 

(p−1) (p−1)
0 ··· 0 anp ··· ann | b(p−1)
n

a(p−1)
pp , . . . , a(p−1)
np candidatos a pivot no passo p

1 2 3 4 5 6 7 8⃝
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: escolha de pivot

Pivotagem total:
no inı́cio do passo p é escolhido para pivot o elemento akr tal que

|akr | = max |aij |.


p≤i≤n
p≤j≤n

Se k ̸= p, as linhas k e p são trocadas entre si e se r ̸= p, as colunas r e


p são trocadas entre si (atenção à troca de colunas!)

1 2 3 4 5 6 7 8 9⃝
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: escolha de pivot

Pivotagem total
 
a11 ··· ··· ··· a1n | b1
.. . . .. ..
 
.
 

 . . | . 

(p−1) (p−1)
0 ··· 0 app ··· apn | b(p−1)
 

 p 

 .. .. .. .. .. .. 

 . . . . . | . 

(p−1) (p−1)
0 ··· 0 anp ··· ann | b(p−1)
n

a(p−1)
pp , . . . , a(p−1)
np , . . . , a(p−1)
pn , . . . , a(p−1)
nn candidatos a pivot no passo p

A técnica de pivotagem total conduz a uma menor acumulação de erros


mas exige um esforço computacional muito grande. Na prática, é
preferı́vel usar pivotagem parcial que, em geral, produz bons resultados.

1 2 3 4 5 6 7 8 9 10 ⃝
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: escolha de pivot

Resolução do exemplo anterior usando pivotagem parcial:


   
0.003 59.14 | 59.17 1 ↔L2
5.291 −6.130 | 46.78
 L−→  
5.291 −6.130 | 46.78 0.003 59.14 | 59.17

L2 ←L2 −m21 L1
−→ ···

a21 0.003
m21 = a11
= 5.291
= 5.670 × 10−4 ≤ 1

Solução aproximada x = [10.00 1.000]T , igual à solução exata.

1 2 3 4 5 6 7 8 9 10 11 ⃝
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: fatorização LU

Sejam Ak as submatrizes principais de A, com k = 1, . . . , n, n ∈ N.


Se det(Ak ) ̸= 0, para k = 1, . . . , n, então é possı́vel decompor a matriz
A na forma fatorizada A = LU , onde U é uma matriz triangular superior
que se obtém de A por aplicação do método de eliminação de Gauss e
L é uma matriz triangular inferior, com diagonal unitária e elementos mij ,
i = 2, . . . , n, j = 1, . . . , n − 1, designados por multiplicadores que ocorrem
no método de eliminação de Gauss, ou seja,
   
1 0 ··· 0 a a12 ··· a1n
   11 
(1) (1)
 m21 1 ··· 0   0 a22 ··· a2n
   

A=  .. .. .. ..  
 
.. .. .. ..


 . . . .   . . . . 
   
mn1 mn2 ··· 1 0 0 ··· a(n−1)
nn
| {z } | {z }
L U
1 2 3 4 5 6 7 8 9 10 11 12 ⃝
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: fatorização LU

Método da fatorização LU

Ax = b ⇐⇒ LU x = b
Ly = b
⇐⇒
Ux = y

O sistema Ly = b resolve-se por substituição descendente (direta) e, uma


vez obtido o vector y, a solução do sistema x obtém-se de U x = y por
substituição ascendente (inversa).

1 2 3 4 5 6 7 8 9 10 11 12 13 ⃝
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos diretos: fatorização LU

Método da fatorização LU com pivotagem

Se det(Ak ) = 0, para algum k ∈ {1, . . . , n − 1}, então é necessário usar


uma matriz de permutação P de ordem n, a qual pode ser obtida a partir
da matriz identidade de ordem n por adequada troca de linhas:

Ax = b ⇐⇒ PA x = Pb
|{z}
LU

⇐⇒ L |{z}
Ux = P b
y

Ly = P b
⇐⇒
Ux = y

1 2 3 4 5 6 7 8 9 10 11 12 13 14 ⃝
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Refinamento iterativo da solução

A solução de um sistema Ax = b, obtida por um qualquer método direto,


não é, em geral, exata, devido ao efeito dos erros de arredondamento e ao
modo como estes se propagam nas operações efetuadas em cada método.
No entanto, é possı́vel melhorar (refinar) uma solução aproximada usando
um método de refinamento iterativo:

• seja x(0) uma solução aproximada da solução x do sistema Ax = b;

(0) (0)
(0) T
• solução melhorada x(1) = x(0) + δ (0) , onde δ (0) = [δ1 , δ2 . . . , δn ]
é um vetor de correção da aproximação x(0) .

Como obter δ (0) ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ⃝
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Refinamento iterativo da solução

Resı́duo associado à aproximação obtida

 
(0) (0)
Ax = b ⇐⇒ A x +δ =b

⇐⇒ Ax(0) + Aδ (0) = b
⇐⇒ Aδ (0) = b − Ax(0)
| {z }
r (0)

1. r (0) é o resı́duo associado à aproximação x(0)

2. Obter δ (0) resolvendo o sistema Aδ (0) = r (0)

(1) (0) (0) (1)



3. Calcular solução melhorada x =x +δ tomar x ≈ x

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ⃝
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Refinamento iterativo da solução

Algoritmo do refinamento iterativo (método dos resı́duos)

• Dados: A, b, x(0) aproximação da solução de Ax = b, ε ∈ R+

• Para i = 0, 1, 2, . . . , calcular
1. r (i) = b − Ax(i)
2. δ (i) resolvendo Aδ (i) = r (i)
3. x(i+1) = x(i) + δ (i)
Até que δ (i) < ε

• Solução melhorada (refinada): x(i+1)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ⃝
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Refinamento iterativo da solução

 1.01x + 0.99x2 = 2
1
Exemplo:
 0.99x1 + 1.01x2 = 2

x(0) = [1.01 1.01]T solução obtida por um método direto

Método dos resı́duos:


 
(0) (0)
−0.02
•r = b − Ax =  resı́duo associado à aproximação x(0)
−0.02
 
(0)
−0.01
•δ =  vector correção
−0.01

• x = x(0) + δ (0) = [1.00 1.00]T solução melhorada

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ⃝
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Condicionamento de um sistema

Consideremos o sistema Ax = b e admitamos que os elementos de A ou


de b estão afetados de erros (perturbações).

• 1º caso: perturbação no vector b

δb perturbação associada a b −→ δx perturbação respetiva da solução x

Seja Ax = b o sistema perturbado, onde b = b + δb e x = x + δx . Então,

Ax = b ⇐⇒ A (x + δx ) = b + δb
⇐⇒ δx = A−1 δb

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ⃝
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Condicionamento de um sistema

Tomando normas, tem-se

∥δx ∥ ≤ ∥A−1 ∥ ∥δb ∥


∥δb ∥
≤ ∥A−1 ∥ ∥A∥ ∥x∥
∥b∥
donde, conclui-se que

∥δx ∥ −1 ∥δb ∥
≤ ∥A ∥ ∥A∥
∥x∥ | {z } ∥b∥
cond(A)

cond(A) = ∥A−1 ∥ ∥A∥ é o número de condição da matriz A

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ⃝
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Condicionamento de um sistema

• 2º caso: perturbação na matriz A


δA perturbação associada a A −→ δx perturbação respetiva da solução x
Seja A x = b o sistema perturbado, onde A = A + δA e x = x + δx .
Então,

A x = b ⇐⇒ (A + δA ) (x + δx ) = b
⇐⇒ δx = −A−1 δA (x + δx )

pelo que, atendendo às propriedades das normas, pode obter-se

∥δx ∥ ∥δA ∥
≤ cond(A)
∥x + δx ∥ ∥A∥

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ⃝
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Condicionamento de um sistema

Admitindo que as perturbações δA são suficientemente pequenas,


tal que ∥A−1 ∥∥δA ∥ < 1, pode mostrar-se que:

∥δx ∥ cond(A) ∥δA ∥



∥x∥ 1 − ∥A−1 ∥∥δA ∥ ∥A∥

• 3º caso: perturbações em A e em b, com ∥A−1 ∥∥δA ∥ < 1,


mostra-se que:

∥δx ∥ ∥δA ∥ ∥δb ∥


 
cond(A)
≤ +
∥x∥ 1− ∥A−1 ∥∥δ A∥ ∥A∥ ∥b∥

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ⃝
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Condicionamento de um sistema

Conclusão:

• Se cond(A) >> 1, pequenas perturbações em A ou em b podem


originar grandes perturbações na solução x. O sistema Ax = b diz-se
mal condicionado (A é mal condicionada).

• Se cond(A) ≈ 1, pequenas perturbações em A ou em b não irão afetar


significativamente a precisão da solução x. Diz-se, então, que o sistema é
bem condicionado (A é bem condicionada).

Notar que: cond(A) ≥ 1.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ⃝
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos iterativos: introdução

Nos métodos iterativos, toma-se uma aproximação inicial x(0) e, a partir


daı́, calcula-se uma sucessão de aproximações x(1) , x(2) , . . . , x(k) , . . .
que se pretende que seja convergente para a solução exata x do sistema
linear Ax = b, isto é, tal que

lim x(k) = x ⇐⇒ lim ∥x(k) − x∥ = 0.


k→∞ k→∞

Nos métodos iterativos convergentes, na prática, após um número finito k


de iterações obtém-se uma solução aproximada x(k) . No entanto, nestes
métodos, com um número reduzido de iterações k pode conseguir-se uma
boa aproximação x(k) da solução exata x.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ⃝
25 26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos iterativos: formulação

Nos métodos iterativos a matriz A do sistema não é alterada


(contrariamente ao que sucede nos métodos diretos), o que permite
economizar memória e tempo de cálculo. Por este facto, estes métodos
são indicados para sistemas de grandes dimensões ou que apresentem
matrizes esparsas (com muitos elementos iguais a zero).

Método iterativo (formulação geral):


• A = M − N, M matriz invertı́vel

Ax = b ⇐⇒ Mx = Nx + b
⇐⇒ x = |M −1 N
{z } x + M −1
| {z b}
G c

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ⃝
26 27 28 29 30 31 32 33 34 35 36 37 38
Métodos iterativos: convergência

Método iterativo consistente com o sistema Ax = b:

x(k+1) = G x(k) + c, k = 0, 1, 2, . . . (1)

O método iterativo (1) diz-se convergente se, para qualquer aproximação


inicial x(0) , a sucessão x(k) gerada pelo método convergir para um limite
independente de x(0) .
Definindo e(k) := x − x(k) o erro associado à aproximação x(k) , então

e(k) = G e(k−1) = · · · = Gk e(0) , k = 1, 2, . . .

pelo que, a sucessão {x(k) } gerada por (1), converge para a solução x, se

lim e(k) = 0 ⇐⇒ lim Gk = 0


k→∞ k→∞

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ⃝
27 28 29 30 31 32 33 34 35 36 37 38
Métodos iterativos: convergência sobre a matriz G

Em que condições Gk (k = 1, 2, . . .) converge para a matriz nula?

Condição necessária e suficiente de convergência:

lim Gk = 0 ⇐⇒ ρ(G) < 1


k→∞

onde

ρ(G) = max {|λi | : λi valores próprios da matriz G, i = 1, . . . , n}

(raio espectral da matriz G)

Condição suficiente de convergência: Se, em qualquer norma, ∥G∥ < 1,


então lim Gk = 0.
k→∞

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ⃝
28 29 30 31 32 33 34 35 36 37 38
Métodos iterativos: decomposição da matriz A

Nos métodos iterativos que iremos estudar - método de Jacobi e método


de Gauss-Seidel - consideramos a seguinte decomposição da matriz dos
coeficientes A:

A = D + L + U , com

• D matriz diagonal formada pelos elementos da diagonal principal de A;


• L matriz triangular inferior formada pelos elementos de A que estão
abaixo da diagonal principal;
• U matriz triangular superior formada pelos elementos de A que estão
acima da diagonal principal.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ⃝
29 30 31 32 33 34 35 36 37 38
Método iterativo de Jacobi

Usando esta decomposição de A, vamos deduzir o método iterativo de


Jacobi:

Ax = b ⇐⇒ (D + L + U )x = b
⇐⇒ Dx + (L + U )x = b
⇐⇒ Dx = −(L + U )x + b
∃D −1
⇐⇒ x = −D −1 (L + U ) x + D −1
| {z b}
| {z }
GJ cJ

Método iterativo de Jacobi:

x(k+1) = GJ x(k) + cJ , k = 0, 1, 2, . . .

onde GJ = −D −1 (L + U ) e cJ = D −1 b.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ⃝
30 31 32 33 34 35 36 37 38
Método iterativo de Jacobi

Em termos matriciais,
      
(k+1) (k)
x1 0 −a12
a11
··· − aa1n
11
x1 b1
a11
      
(k+1) a21 (k)
x2  − a22 0 ··· − aa2n x2 b2
      
 
= 22
  
+ a22 
.. .. .. .. .. ..
  
   ..    
 .   . . . .  .   . 
      
x(k+1)
n − aann
n1
− aannn2
··· 0 x(k)
n
bn
ann

isto é,
 
n
(k+1) 1 X (k)
xi = bi − aij xj  , k = 0, 1, 2, . . . , i = 1, 2, . . . , n
aii j=1, j̸=i

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ⃝
31 32 33 34 35 36 37 38
Método iterativo de Gauss-Seidel

Usando a decomposição de A considerada anteriormente, vamos deduzir o


método iterativo de de Gauss-Seidel:

Ax = b ⇐⇒ (D + L +U )x = b
| {z }
⇐⇒ (D + L)x + U x = b
⇐⇒ (D + L)x = −U x + b
∃(D+L)−1
⇐⇒ x = −(D + L)−1 U x + (D + L)−1 b
| {z } | {z }
GGS cGS

Método iterativo de Gauss-Seidel:

x(k+1) = GGS x(k) + cGS , k = 0, 1, 2, . . .

onde GGS = −(D + L)−1 U e cGS = (D + L)−1 b.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ⃝
32 33 34 35 36 37 38
Método iterativo de Gauss-Seidel

Forma alternativa de escrita do método iterativo de Gauss-Seidel:


De

Ax = b ⇐⇒ · · · ⇐⇒ (D + L)x = −U x + b

podemos deduzir o método iterativo:

(D + L)x(k+1) = −U x(k) + b, k = 0, 1, 2, . . .
∃D −1
⇐⇒ D −1 (D + L)x(k+1) = −D −1 U x(k) + D −1 b
⇐⇒ x(k+1) + D −1 L x(k+1) = −D −1 U x(k) + D −1 b

⇐⇒ x(k+1) = −D −1 L x(k+1) − D −1 U x(k) + D −1 b, k = 0, 1, 2, . . .

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ⃝
33 34 35 36 37 38
Método iterativo de Gauss-Seidel
    
(k+1) (k+1)
x1 0 0 ··· 0 x1
    
(k+1) a (k+1)
x2  − a21 0 ··· 0 x2
    
  22
 
= +
.. .. .. .. ..
 
   ..  
 .   . . . .  . 
    
x(k+1)
n − aann
n1
− aannn2
··· 0 x(k+1)
n

    
a12 (k)
0 −a 11
··· − aa1n
11
x1 b1
a11
    
(k)
0 0 ··· − aa2n x2 b2
    
 22
  
+ a22 
 , isto é,
.. .. .. .. ..
 
 ..    
 . . . .  .   . 
    
(k) bn
0 0 ··· 0 xn ann

i−1 n
(k+1)
X aij (k+1)
X aij (k) bi
xi =− xj − xj + , k = 0, 1, 2, . . . , i = 1, 2, . . . , n
j=1
aii j=i+1
aii aii

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ⃝
34 35 36 37 38
Comparação dos métodos iterativos

Comparando as fórmulas matriciais componente a componente,


(k+1)
constata-se que, no método de Gauss-Seidel o cálculo de xi é
(k+1) (k+1) (k+1)
atualizado com os valores de x1 , x2 , . . . , xi−1 da iteração de
(k+1)
ordem k + 1, enquanto que no método de Jacobi o cálculo de xi
(k) (k)
apenas tem em conta os valores x1 , x2 , . . . , x(k)
n , obtidos na iteração
anterior de ordem k.

Por isso, em geral, o método de Gauss-Seidel converge mais rapidamente


do que o método de Jacobi (isto é, aplicando igual número de iterações e
tomando a mesma aproximação inicial, conduz a melhores aproximações).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ⃝
35 36 37 38
Convergência sobre a matriz A

Condição suficiente de convergência dos métodos de Jacobi e de


Gauss-Seidel sobre a matriz A:

Se a matriz A do sistema linear Ax = b, for de diagonal estritamente


dominante por linhas (DEDL), então os métodos iterativos de Jacobi e
Gauss-Seidel são convergentes para a solução x, qualquer que seja a
aproximação inicial considerada.

n
X
Diz-se que uma matriz é DEDL se |aii | > |aij |, i = 1, . . . , n.
j=1,j̸=i

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ⃝
36 37 38
Critérios de paragem

Aplicar o método iterativo convergente,

x(k) = G x(k−1) + c, k = 1, 2, . . . ,

até que o vetor x(k) esteja suficientemente próximo de x,


segundo um dos seguintes critérios (numa dada norma):

• x(k) − x(k−1) < ε1 (tolerância absoluta)

∥x(k) −x(k−1) ∥
• < ε2 (tolerância relativa)
∥x(k) ∥

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ⃝
37 38
Critérios de paragem

∥G∥
• 1−∥G∥
x(k) − x(k−1) < ε3 (majorante do erro)

• b − Ax(k) < ε4 (tolerância no resı́duo)

• impondo um número máximo de iterações, k = kmax .

Após um ou mais critérios serem satisfeitos ocorre a paragem do método,


obtendo-se x ≈ x(k) , com a tolerância desejada.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ⃝
38

Você também pode gostar