Você está na página 1de 46

Métodos Computacionais em Engenharia

Capı́tulo 5: Métodos numéricos em Álgebra Linear

Mestrado integrado em Engenharia Civil

Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa

Magda Rebelo, Ano Lectivo 2012/2013

Métodos Computacionais em Engenharia 1 / 46


Indı́ce

1 Introdução

2 Métodos Directos
Método de Gauss
Método de decomposição LU

3 Normas vectoriais e matriciais

4 Valores e vectores próprios

5 Métodos iterativos
Método iterativo geral
Método de Jacobi
Método de Gauss-Seidel

Métodos Computacionais em Engenharia 2 / 46


Introdução

Considere-se um sistema de equações lineares (possı́vel e determinado)


    
a11 a12 . . . a1n x1 b1
 a21 a22 . . . a2n   x2   b2 
    
 .. .. .. ..   ..  =  .. 
 . . . .  .   . 
an1 an2 . . . ann xn bn
| {z } | {z } | {z }
A X B

A ∈ Mn×n (R) → matriz dos coeficientes;


B ∈ Mn×1 (R) → vector dos temos independentes;
X ∈ Mn×1 (R) → vector de incógnitas;
Neste capı́tulo iremos estudar:
◮ métodos que permitam obter a solução exacta do sistema AX = B:
métodos directos;
◮ métodos que permitam determinar a solução aproximada do sistema de
equações AX = B: métodos iterativos.

Métodos Computacionais em Engenharia 3 / 46


Métodos Directos Método de Gauss

Método de Gauss

No método de Gauss pretende-se obter um sistema de equações AX e =B e


equivalente ao sistema de equações AX = B e cuja matriz principal, A, e é uma
matriz triangular.
Através de transformações elementares na matriz A é possivel obter uma
matriz Ae triangular.
◮ Supondo a11 6= 0 (a11 pivot)
 
a11 a12 ... a1n b1 −→
 a21 a22 ... a2n b2 
  a
l2 → l2 − a21 l1
 .. .. .. .. ..  11
 . . . . .  .
.
.
an1 an2 ... ann bn a
ln → ln − an1 l1
| {z } 11

A(1) B (1)
 
a11 a12 ... a1n b1
 0 a22 − a21 a12
... a2n − a21 a1n
b2 − aa2111b1 
 a11 a11 
 .. .. .. .. .. 
 
 . . . . . 
0 an2 − an1 a12
a11
... ann − an1 a1n
a11
bn − an1a11
b1

| {z }
A(2) B (2)

Métodos Computacionais em Engenharia 4 / 46


Métodos Directos Método de Gauss

Se a11 = 0 pode efectuar-se uma troca de linhas de modo a que o


primeiro elemento da primeira linha seja 6= 0.
a21 an1
Os valores a11 , . . . , a11 denominam-se multiplicadores.
(2)
Designemos os elementos das matrizes A(2) e B (2) por aij , i, j = 1, 2, ..., n e
(2)
bi , i = 1, 2, ..., n, respectivamente.
(2) (2)
◮ Supondo a22 6= 0 (a22 pivot)

−→
 (2) (2) (2) (2)

a11 a12 ... a1n b1 (2)
 (2) (2) (2)  a
32 l
 0 a22 ... a2n b2  l3 → l3 −
  (2) 2
  a
22
 . . .. . . 
 . . . .  .
 . . . . .  .
(2) (2) (2) .
0 an2 ... ann bn (2)
| {z } a
n1 l
ln → ln − (2) 2
A(2) B (2) a22
 (2) 
a11 a12 ... a1n b1
 (2) (2) (2) 
 0 a22 ... a2n b2 
 
 . . . . . 
 . . . . . 
 . . . . . 
 
 (2) (2) (2) (2) 
 an2 a2n (2) an2 b2 
0 0 ... ann − (2)
bn − (2)
a a
22 22
| {z }
Métodos Computacionais em Engenharia A(3) B (3) 5 / 46
Métodos Directos Método de Gauss

Ao fim de n − 1 passos (supondo que os pivots são sempre não nulos)


chegamos a um sistema triangular superior
 (n) (n) (n)
  (n)

a11 a12 . . . a1n x1 b1
 (n) (n)   (n) 
 0 a22 . . . a2n    x2   b2 
 . .. 
..   ..   .. 
 . ..  
 . . . .  .  . 
0 0
(n)
. . . ann xn bn
(n)
| {z } | {z } | {z }
X
A(n) B (n)
e a solução é dada por substituição ascendente:
 (n)

 bn

 xn = (n)

 ann

 (n) (n)

 b − a(n−1)n xn


n−1
 x n−1 =

 (n)
a(n−1)(n−1)
 ..

 .

 n

 X

 b
(n)

(n)
a1k xk

 1



 x1 =
k=1
(n)
a11
Métodos Computacionais em Engenharia 6 / 46
Métodos Directos Método de Gauss

Método de Gauss: Escolha de pivot

(k)
◮ Se num dado passo k do método o pivot akk for nulo é possı́vel encontrar
(k)
j > k tal que ajk 6= 0 e, por troca de linhas, considerar este elemento
como pivot.
Exemplo:
     
1 2 1 0 −→
1 2 1 0 1 2 1 0
 1 2 0 2   0 0 −1 2  −→  0 2 1 0 
l2 → l2 − l1
1 4 2 0 l3 → l3 − l1 0 2 1 0 l2 ↔ l3 0 0 −1 2

(k)
◮ Mesmo quando o pivot akk for não nulo poderá ser vantajosa a troca
descrita anteriormente.
Exemplo: O sistema

 −1.414214x1 + 2x2 = 1
x1 − 1.414214x2 + x3 = 1

2x2 − 1.414214x3 = 1
tem uma única solução dada por x1 = x2 = x3 = 1.70710805 . . . .
Métodos Computacionais em Engenharia 7 / 46
Métodos Directos Método de Gauss

Método de gauss: Escolha de pivot

Resolvendo o sistema de equações anterior, usando o método de Gauss


 
−1.414214 2 0 1
 1 −1.414214 1 1 
0 2 −1.414214 1
 
−1.414214 2 0 1
−→
 0 −0.0000010 1 1.707107 
 
1
l2 → l2 − − 1.414214 l1 0 2 −1.414214 1
 
−1.414214 2 0 1
−→
 0 −0.0000010 1 1.707107 
 
2
l3 → l3 − − 0.0000010 l2 0 0 1999999 3414215

Por substituição ascencente obtém-se


x1 = 0.7071065, x2 = 1.0, x3 = 1.707108 (instabilidade!)

◮ Prova-se que a escolha adequada dos elementos pivot permite diminuir a


acumulação de erros de arredondamento dos cálculos intermédios.

Métodos Computacionais em Engenharia 8 / 46


Métodos Directos Método de Gauss

Método de gauss: Escolha parcial de pivot

◮A escolha parcial parcial de pivot consiste em, no inı́cio do passo k,


seleccionar como pivot um elemento tal que

(k) (k)
ajk = max aik .
k≤i≤n

Regressemos ao exemplo anterior.


 
−1.414214 2 0 1
 1 −1.414214 1 1 
0 2 −1.414214 1
 
−1.414214 2 0 1
−→
 0 −0.0000010 1 1.707107 
 
1
l2 → l2 − − 1.414214 l1 0 2 −1.414214 1
 
−1.414214 2 0 1
−→  0 2 −1.414214 1 
l2 ↔ l3 0 −0.0000010 1 1.707107
 
−1.414214 2 0 1
−→
 0 2 −1.414214 1 
 
l3 → l3 − − 0.0000010
2
l2 0 0 0.9999992 1.707108

Métodos Computacionais em Engenharia 9 / 46


Métodos Directos Método de Gauss

Por substituição ascendente obtém-se x1 = x2 = x3 = 1.707109.


Existem sistemas cuja matriz simples tem propriedades especiais e com
os quais não é necessário fazer troca parcial de pivot.

Matriz de diagonal estritamente dominante


Uma matriz quadrada A diz-se de diagonal estritamente dominante (por
n
X
linhas) se |aii | > |aij |, i = 1, 2, ..., n.
j=1, j6=i

Considere-se o sistema de equações lineares AX = B. Prova-se que:


Se a matriz A é uma matriz de diagonal estritamente dominante (por
linhas) então o método de eliminação de Gauss pode ser concretizado
sem troca de linhas.
Se a transposta de A é de diagonal estritamente dominante então o
método de Gauss com escolha parcial de pivot não envolve troca de
linhas.
Métodos Computacionais em Engenharia 10 / 46
Métodos Directos Método de decomposição LU

Factorizações triangulares: Factorização LU

Considere-se um sistema de equações lineares possı́vel e determinado AX = B.


Suponhamos que A pode ser escrita de uma maneira única na forma:
  
1 0 ... ... 0 u11 u12 . . . . . . unn
 l21 1 0 . . . 0   0 u22 u23 . . . u2n 
  
 0   u3n 
A =  l31 l32 1 ...  0 0 u33 . . . 
 .. .. . .. .
.. .   .
..   .. .. .. .. .. 
 . . . . . . 
ln1 ln2 . . . ln(n−1) 1 0 0 ... 0 unn
| {z }| {z }
L U
sendo L uma matriz triangular inferior e U uma matriz triangular
superior.
Usando a factorização anterior de A, vem:
AX = B ⇔ (LU ) X = B ⇒ L (U X) = B.
Assim, podemos resolver o sistema recorrendo a dois sistemas
triangulares:
1 LY = B → determina-se Y ;

2 U X = Y → determina-se X.
Métodos Computacionais em Engenharia 11 / 46
Métodos Directos Método de decomposição LU

N Acerca da existência e unicidade da factorização LU de uma dada matriz


quadradada tem-se:
Proposição:
Seja A = [aij ] uma matriz quadrada de ordem n. Se as matrizes
Ak , k = 1, 2, ..., n, definidas por
 
a11 a12 ... a1k
 a21 a22 ... a2k 
 
Ak =  . .. .. 
 .. ... . . 
ak1 ak2 . . . akk

forem invertı́veis, então existe uma factorização única A = LU , onde L é uma


matriz triangular inferior com a diagonal unitária e U é uma matriz triangular
superior.

Métodos Computacionais em Engenharia 12 / 46


Métodos Directos Método de decomposição LU

Factorização LU

Supondo que estão satisfeitas as condições da proposição anterior e sendo


A = [aij ], L = [lij ] e U = [uij ] vem
n
X
aij = lik ukj , i, j = 1, 2, ..., n. (1)
k=1

As equações que permitem determinar lij , uij , i, j = 1, 2, ..., n que satisfazem


(1) são dadas por:

 u1j = a1j , j = 1, 2, ..., n,

 ai1

 li1 = , i = 2, 3, ..., n,

 u11

 i−1
X
uij = aij − lik ukj , i = 2, 3, ..., n; j = i, i + 1, ..., n (2)



 k=1

 P i−1

 lji = aji − k=1 ljk uki , i = 2, 3, ..., n − 1; j = i + 1, i + 2, ..., n.

uii

Métodos Computacionais em Engenharia 13 / 46


Métodos Directos Método de decomposição LU

Factorização LU

Podemos ainda determinar as entradas de L e U , reduzindo a matriz A a uma


matriz triangular superior.

A matriz triangular superior equivalente por linhas a A é a matriz U ;


A matriz L é determinada a partir dos multiplicadores intervenientes nas
transformações elementares utilizadas para chegar a U .

Relembre: Cada operação elementar numa matriz corresponde a uma pré


multiplicação por uma matriz elementar.
Por exemplo, no método de Gauss, tem-se A(2) = −M (1) A(1) , onde
 
1 0 ... ... 0
 a21
1 0 ... 0 
 a11 
 a31
0 1 ... 0 
M (1) =
 a11 

 .. .. .. .. .. 
 . . . . . 
an1
a11
0 ... ... 1

é a ”matriz dos multiplicadores”obtidos no primeiro passo.


Métodos Computacionais em Engenharia 14 / 46
Métodos Directos Método de decomposição LU

Factorização LU

A matriz M (1) é o produto de matrizes elementares. Com efeito,


 1 0 ... ... 0  1 0 ... ... 0 
a21
 1 0 ... 0  0 1 0 ... 0 
 a11  a31 
(1)  0 0 1 ... 0  a11
0 1 ... 0 
M =    · ... ·
  
 . . . . .  . . . . . 
 . . . . .  . . . . . 
. . . . . . . . . .
0 0 ... ... 1 0 0 ... ... 1
 1 0 ... ... 0 
 0 1 0 ... 0 
 0 0 1 ... 0 
 
·  
 . . . . . 
 . . . . . 
 . . . . . 
an1
a11
0 ... 0 1

◮ Mais geralmente
    
A(i) = −M (i−1) −M (i−2) . . . −M (1) A (1)
|{z} .
A

Métodos Computacionais em Engenharia 15 / 46


Métodos Directos Método de decomposição LU

Factorização LU

◮ Ao fim de n − 1 passos temos


    
−M (n−1) −M (n−2) . . . −M (1) A = A(n) ,

sendo A(n) uma matriz triangular superior.


 −1
Como −M (k) = M (k) , tem-se
 −1  −1  (−1)
A = −M (1) −M (2) . . . −M (n−1) A(n)
(1)
= M
| M (2){z. . . M (n−1)} A (n)
|{z},
L U
sendo L dada por
 
1 0 ... ... 0
 a21
1 0 ... 0 
 a11 
 a31
(2)
a32 
 1 ... 0 
L= .
a11 (2)
a22
 .. .. .. .. 
 .. 
 . . . . . 
 (2)
an2

an1
a11 (2) ... ... 1
a22
Métodos Computacionais em Engenharia 16 / 46
Métodos Directos Método de decomposição LU

Exemplo 2
Considere o sistema de equações
    
1 0 2 x1 0
 2 2 1   x2  =  2  .
0 1 1 x3 1
| {z } | {z } | {z }
A X B

Usando a factorização LU , com lii = 1, da matriz A determine a solução do


sistema de equações AX = B.

◮ Existe a factorização LU da matriz A pois esta encontra-se nas condições


da Proposição da pag. 12.
◮ Determinemos L e U .
     
1 0 2 −→
1 0 2 1 0 2
A= 2 1   0 −3   0 −3 
−→
2 2 2
l2 → l2 − 2l1 5
0 1 1 0 1 1 l3 → l3 − 1 l
2 2 0 0
l3 → l3 − 0l1 2

Métodos Computacionais em Engenharia 17 / 46


Métodos Directos Método de decomposição LU

Assim,    
1 0 0 1 0 2
L= 2 1 0  e U = 0 2 −3  .
1 5
0 2 1 0 0 2

Assim, sendo A = LU , de modo a determinar X vamos resolver os dois


sistemas de equações que se seguem:
 
0
•LY = B ⇒ Y =  2 
0
 
0
•U X = Y ⇒ X =  1  .
0
 
0
A solução do sistema de equações é X =  1  .
0

Métodos Computacionais em Engenharia 18 / 46


Normas vectoriais e matriciais

Norma de um vector

A norma de um vector X ∈ Rn é uma aplicação k.k : Rn −→ R que verifica as


seguintes propriedades:

1. ∀X ∈ Rn , kXk ≥ 0 e kXk = 0 ⇔ X = 0;
2. ∀α ∈ R, ∀X ∈ Rn , kαXk = |α|kXk;
3. ∀X, Y ∈ Rn , kX + Y k ≤ kXk + kY k.

◮ Exemplos de normas vectorias. Seja X = [x1 x2 ... xn ]T ∈ Rn .


n
X
⊲kXk1 = |xi |; ⊲kXk∞ = max |xi |;
1≤i≤n
i=1
v
u n
uX
⊲kXk2 = t x2i (norma euclidiana).
i=1

◮ Exemplo: Considere-se X = [−1 2 4 − 2]T :



kXk1 = 9, kXk2 = 25 = 5, kXk∞ = 4.

Métodos Computacionais em Engenharia 19 / 46


Normas vectoriais e matriciais

”Bolas”unitárias em R2 em relação às normas kXk1 , kXk2 e kXk∞ .

Métodos Computacionais em Engenharia 20 / 46


Normas vectoriais e matriciais

Convergência em Rn

Considere-se
 
(k)
uma sucessão de vectores de Rn : x(k) = x1 , . . . , x(k)
n ∈ Rn , k ∈ N,

z = (z1 , . . . , zn ) ∈ Rn .

Definição:
Uma sucessão x(k) converge para z se

lim kx(k) − zk = 0.
k→∞

Note-se que
(k)
x(k) −→k→∞ z ⇔ xi −→k→∞ zi , i = 1, 2, . . . , n.

Métodos Computacionais em Engenharia 21 / 46


Normas vectoriais e matriciais

Normas matriciais

A norma de uma matriz A ∈ Rn × Rn é uma aplicação k.k : Rn × Rn −→ R


que verifica as seguintes propriedades:
1.∀A ∈ Rn × Rn , kAk ≥ 0 e kAk = 0 ⇔ A = 0;
2.∀α ∈ R, ∀A ∈ Rn × Rn , kαAk = |α|kAk;
3.∀A, B ∈ Rn × Rn , kA + Bk ≤ kAk + kBk;
4.∀A, B ∈ Rn × Rn , kABk ≤ kAkkBk.

◮Normasn matriciais
+
induzidas por normas vectoriais
Seja k.k : R −→ R0 uma norma vectorial. Defina-se a seguinte aplicação
kAXk
kAkI = sup .
X∈Rn \0 kXk

A aplicação anteriormente definida é uma norma de matriz e designa-se


por norma matricial induzida pela (ou subordinada à) norma
vectorial k.k.
Uma propriedade importante destas normas é que satisfazem a condição
de compatibilidade kAXk ≤ kAkkXk, ∀A ∈ Rn × Rn , ∀X ∈ Rn .
Métodos Computacionais em Engenharia 22 / 46
Normas vectoriais e matriciais

Normas matriciais induzidas por normas vectorias

Considere-se A = [aij ]i,j=1,...,n ∈ Rn × Rn .


1. A norma matricial induzida pela norma vectorial k.k1 pode ser dada por
n
X
kAk1 = max |aij |.
1≤j≤n
i=1

(máximo das somas por colunas dos valores absolutos dos elementos.)
2. A norma matricial induzida pela norma vectorial k.k∞ pode ser dada por
n
X
kAk∞ = max |aij |.
1≤i≤n
j=1

(máximo das somas por linhas dos valores absolutos dos elementos.)

Métodos Computacionais em Engenharia 23 / 46


Normas vectoriais e matriciais

3. A norma matricial induzida pela norma euclidiana k.k2 pode ser dada por
q
kAk2 = ρ(AT A),

onde ρ(A) designa o raio espectral de A. Relembre que :

ρ(A) = max{|λ| : λ ∈ σ(A)}(Raio espectral de A),


σ(A) = {λ ∈ C : λ é valor próprio de A}(Espectro de A),
λ é valor próprio de A ⇔ |A − λIn | = 0.

 
1 1 0
Exemplo: Considere-se a matriz A =  0 1 1 . Tem-se:
0 −1 1

⊲kAk1 = max{1, 3, 2} = 3;
⊲kAk∞ = max{2, 2, 2} = 2;
q
√ √ √ √
⊲σ(AT A) = {2 − 2, 2, 2 + 2} ⇒ ρ(AT A) = 2 + 2 ⇒ kAk2 = 2 + 2.

Métodos Computacionais em Engenharia 24 / 46


Valores e vectores próprios

Valores e vectores próprios

Seja A uma matriz quadrada. Diz-se que um escalar λ ∈ C é um valor


próprio de A se existir um vector não nulo X, designado por vector
próprio de A, tal que AX = λ X.

Para cada valor próprio existe uma infinidade de vectores próprios


associados a esse valor.
Um vector próprio não pode estar associado a dois valores próprios
distintos.
Os valores próprios de uma matriz são os zeros do seu polinómio
caracterı́stico, isto é,

{λ ∈ C é valor próprio de A ⇔ p(λ) = det(A − λI) = 0} .

e os vectores próprios associados são as soluções (não nulas) do sistema


linear homogéneo e indeterminado (A − λI)X = 0.

Métodos Computacionais em Engenharia 25 / 46


Valores e vectores próprios

Raio espectral e normas

O conjunto dos valores próprios de A é representado por σ(A) e


designa-se por espectro de A. O raio espectral de A é o maior dos valores
do espectro em módulo, ou seja,

ρ(A) = max{|λ| : λ ∈ σ(A)}.

Teorema:
Para qualquer norma matricial, k.k, induzida por uma norma vectorial e
para qualquer A ∈ Rn × Rn tem-se

ρ(A) ≤ kAk.

Dados A ∈ Rn × Rn e ε > 0, existe uma norma matricial, k.k, induzida


por uma norma vectorial tal que

kAk ≤ ρ(A) + ε.

Métodos Computacionais em Engenharia 26 / 46


Valores e vectores próprios

Localização de valores próprios

Do Teorema anterior podemos concluir que,


existe sempre uma norma matricial induzida por uma norma
vectorial cujo valor está próximo do raio espectral;
dados A ∈ Rn × Rn e ε > 0 existe uma norma matricial k.k induzida
por uma norma vectorial tal que

ρ(A) ≤ kAk ≤ ρ(A) + ε.

O Teorema anterior permite ainda localizar os valores próprios de uma


dada matriz quadrada A. De seguida será dado um outro resultado que
também permite localizar os valores próprios de uma matriz.

Métodos Computacionais em Engenharia 27 / 46


Valores e vectores próprios

Localização de valores próprios

Seja A = [aij ] uma matriz quadrada de ordem n, e definam-se os cı́rculos de


Gershgorin:
 

 

 Xn 
Gi (A) = z ∈ C : |z − aii | ≤ |aij | = ri , i = 1, 2, . . . , n.

 

 j=1 
j6=i

Teorema (Gershgorin):
Seja G(A) a reunião dos cı́rculos de Gershgorin de A.
Então,
n
[
σ(A) ⊆ G(A) = Gi .
i=1

Métodos Computacionais em Engenharia 28 / 46


Valores e vectores próprios

Exemplo
 
1 1 0
Considere-se novamente a matriz A =  0 1 1 . Vamos aplicar o
0 −1 1
Teorema de Gershgorin para obter uma estimativa dos valores próprios de A.

Para esta matriz, os cı́rculos de


Gershgorin são todos iguais:

G1 = G2 = G3 = {z ∈ C : |z − 1| ≤ 1},
S S
pelo G1 G2 G3 = G = G1 .

⊲ Assim, atendendo ao Teorema (Gershgorin) podemos afirmar que os


valores próprios de A pertencem a G, ou seja, σ(A) ⊆ G1 , ou seja,
ρ(A) ≤ 2.
⊲ Por outro lado, usando o resultado citado no Teorema da pag.26 temos
q

ρ(A) ≤ min{kAk1 , kAk2 , kAk∞ } = 2 + 2 = 1.8477 . . . .
Métodos Computacionais em Engenharia 29 / 46
Métodos iterativos Método iterativo geral

Método iterativo geral

Pretende-se determinar uma solução aproximada do sistema de equações


(possı́vel e determinado)
AX = B.
Os métodos que iremos estudar geram uma sucessão de vectores definidos
recursivamente da seguinte forma


X (0) → aproximação inicial;
(3)
X (k) = GX (k−1) + H, k = 1, 2, . . . ,

onde G ∈ Rn×n → matriz de iteração, H ∈ Rn .


G e H são determinados de modo a que os sistemas AX = B e
X = GX + H sejam equivalentes.

Métodos Computacionais em Engenharia 30 / 46


Métodos iterativos Método iterativo geral

Método iterativo geral - Convergência

Um método iterativo

X (k) = GX (k−1) + H, k = 1, 2, . . . ,

diz-se convergente se, para qualquer vector inicial X (0) a sucessão X (k)
convergir para um limite X ∗ , independente de X (0) .
⊲ Nestas condições o limite da sucessão X (k) , X ∗ , é a solução do sistema
de equações X = GX + H.
⊲ Se G e H são tais que os sistemas AX = B e X = GX + H são
equivalentes, então o limite da sucessão X (k) é também solução do
sistema AX = B.

Métodos Computacionais em Engenharia 31 / 46


Métodos iterativos Método iterativo geral

Método iterativo geral - Convergência

Teorema:
O método iterativo

X (k) = GX (k−1) + H, k = 1, 2, . . . ,

converge se e só se ρ(G) < 1.

◮ Atendendo a que ρ(G) < kGk, qualquer que seja a norma matricial
induzida por uma norma vectorial, temos o seguinte resultado suficiente
de convergência.

Métodos Computacionais em Engenharia 32 / 46


Métodos iterativos Método iterativo geral

Método iterativo geral - Condição suficiente de convergência

Corolário:
Se kGk < 1 para alguma norma induzida por uma norma vectorial, então o
método iterativo
X (k) = GX (k−1) + H, k = 1, 2, . . .
converge para um vector X e tem-se

kGkk
kX (k) − Xk ≤ kX (1) − X (0) k, (fórmula do erro a priori);
1 − kGk
kGk
kX (k) − Xk ≤ kX (k) − X (k−1) k, (fórmula do erro a posteriori).
1 − kGk

Métodos Computacionais em Engenharia 33 / 46


Métodos iterativos Método iterativo geral

Método iterativo geral

Observações:
Se o método converge em relação a uma norma vectorial então converge
em relação a qualquer norma vectorial.
Como
kX (k) − Xk ∼ (ρ(G))k kX (0) − Xk,
então deve-se escolher uma matriz de iteração G com o menor raio
espectral possı́vel.

Métodos Computacionais em Engenharia 34 / 46


Métodos iterativos Método iterativo geral

Método iterativo geral

Iremos estudar dois casos particulares do método iterativo geral:


◮ Método de Jacobi;
◮ Método de Gauss-Seidel.
Considere-se o sistema de equações AX = B e a seguinte decomposição da
matriz A:
A = L + D + U,
onde
 0 0 ... 0   a 0 ... 0   0 a12 ... a1n 
11
 a21 0 ... 0   0 a22 ... 0   0 0 ... a2n 
     
 . . .. .   . . .. .   . . .. . 
L=
 . .
.
. ,
 D=
 . .
.
. ,
 U =
 .. .
.
. 

 . . .   . . .   . . 
     
. . .
. . .
an1 . an n−1 0 0 . 0 ann 0 . 0 0

Métodos Computacionais em Engenharia 35 / 46


Métodos iterativos Método de Jacobi

Método de Jacobi

Se considerarmos a decomposição A = L + D + U , o sistema de equações


AX = B é equivalente a

X = −D−1 (L + U )X + D−1 B.

Com efeito, usando a decomposição anterior

AX = B ⇔ (L + D + U ) X = B ⇔ DX = − (L + U ) X + B
⇔D invertı́vel X = −D−1 (L + U ) X + D−1 B.

Assim, no método de Jacobi considera-se:

GJ = −D−1 (L + U ) e HJ = D−1 B

e a sucessão gerada pelo método de Jacobi é definida por:


 (0)
 X → aproximação inicial;
X = −D−1 (L + U ) X (k−1) + D
(k) −1
| {z B}, k = 1, 2, . . . . (4)

 | {z }
GJ HJ

Métodos Computacionais em Engenharia 36 / 46


Métodos iterativos Método de Jacobi

Método de Jacobi

Os termos
 da sucessão gerada
 pelo método de Jacobi,
(k) (k) (k) (k)
X = x1 , x2 , . . . , xn podem ainda ser definidos da seguinte forma
 n
 X

 b1 − aij xj
(k−1)



 (k) j=1

 x1 =

 a11

 ..

 .



 n
X
 (k−1)
bi − aij xj
, k = 1, 2, . . . .

 (k) j=1

 xi = aii



 ..

 .

 n

 X

 bn − aij xj
(k−1)



 (k) j=1
xn = ann

Métodos Computacionais em Engenharia 37 / 46


Métodos iterativos Método de Jacobi

Exemplo

Considere o sistema de equações lineares



 3x1 − x2 + x3 = 3
1
x1 − 2x2 + 12 x3 = −1 . (5)
 2
x1 − x2 + 4x3 = 6
   
3 −1 1 3
Neste caso A =  21 −2 12  , B =  −1  e
1 −1 4 6
     
0 0 0 3 0 0 0 −1 1
L= 1
2
0 0 , D= 0 −2 0 , U = 0 0 1
2
.
1 −1 0 0 0 4 0 0 0
Assim, a sucessão gerada pelo método de Jacobi é dada por
   
0 − 13 1
3 1
X (k) = −  − 14 0 − 41  X (k−1) +  12  k = 1, 2, . . . . (6)
1
4 −1 0 3
| {z 4 } 2
| {z }
GJ HJ

Métodos Computacionais em Engenharia 38 / 46


Métodos iterativos Método de Jacobi

Exemplo - Cont.

Ora, kGJ k∞ = max{2/3, 2/4, 2/4} = 2/3 < 1, pelo que atendendo ao
Corolário da pag.33 conclui-se que a sucessão definida por (6) converge
para a solução do sistema de equações AX = B, qualquer que seja a
iterada inicial X (0) que consideremos.
Considerando X (0) = [0 0 0]T , temos
       
0.6667 1 0.9653 1
(1) (2)
X = HJ , X = 1.125  , X (3) =  0.9479  , X (4) =  1.013  , X (5) =  0.9946 
1.125 1.0521 1.013 1.0054

e
kGJ k∞
kX − X (5) k∞ ≤ kX (5) − X (4) k∞ = 2 × 0.0347 = 0.0694 < 0.07.
1 − kGJ k∞

Ou seja, aproximamos cada uma das coordenadas de X com um erro


inferior a 0.07.

Métodos Computacionais em Engenharia 39 / 46


Métodos iterativos Método de Jacobi

Exemplo - Cont.

Note-se que neste caso o espectro da matriz GJ é dado por


( √ √ ) √
15 15 15
σ(GJ ) = − , 0, ⇒ ρ(GJ ) = = 0.32274... < 1
12 12 12
ρ(GJ ) < kGJ k∞ (como seria de esperar. . . .)

Usando este resultado fica também provada a convergência da sucessão gerada


pelo método de Jacobi.

Métodos Computacionais em Engenharia 40 / 46


Métodos iterativos Método de Gauss-Seidel

Método de Gauss-Seidel

Consideremos a decomposição A = L + D + U e suponhamos que a matriz


L + D é invertı́vel, então os sistema de equações

AX = B e X = −(L + D)−1 U X + (L + D)−1 B

são equivalentes. Com efeito,

AX = B ⇔ (L + D + U ) X = B ⇔ (L + D)X = −U X + B
−1 −1
⇔L+D invertı́vel X = − (L + D) U X + (L + D) B.

No método de Gauss-Seidel considera-se:


−1 −1
GGS = − (L + D) U e HGS = (L + D) B

e a sucessão gerada pelo método de Gauss-Seidel é definida por:



 (0)
 X → aproximação inicial;
−1 −1
X = − (L + D) U X (k−1) + (L + D) B , k = 1, 2, . . . .
(k)
(7)

 | {z } | {z }
GGS HGS

Métodos Computacionais em Engenharia 41 / 46


Métodos iterativos Método de Gauss-Seidel

Método de Gauss-Seidel

Os termos
 da sucessão gerada  pelo método de Gauss-Seidel,
(k) (k)
X (k) = x1 , x2 , . . . , x(k)
n podem ainda ser definidos da seguinte forma

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

Métodos Computacionais em Engenharia 42 / 46


Métodos iterativos Método de Gauss-Seidel

Exemplo

Consideremos novamente o sistema de equações lineares (5)


Neste caso
 −1  1 
03 0 3
0 0
(L + D) = 
−1
0  =  12
1
2
−2 1
− 12 0 
1
1 4 −1 − 16 − 18 1
4
 1

0 3
− 31
⇒ GGS = − (L + D)−1 U =  0 1
12
1
6

5 1
0 − 48 24
 T
−1 3 17
e HGS = (L + D) B = 1 .
4 16
Assim, sucessão gerada pelo método de Gauss-Seidel é dada por
 1
  
0 3 − 31 1
X (k) = −  0 1
12
1 
6 X (k−1) +  34  k = 1, 2, . . . . (8)
1 1 17
0 − 16 8 16
| {z } | {z }
GGS HGS

Métodos Computacionais em Engenharia 43 / 46


Métodos iterativos Método de Gauss-Seidel

Exemplo - Cont.

Ora, kGGS k∞ = max{2/3, 3/12, 3/16} = 2/3 < 1, pelo que a sucessão
definida por (8) converge para a solução do sistema de equações
AX = B, qualquer que seja a iterada inicial que consideremos.
Por outro lado, o espectro da matriz GGS é
( √ √ )
5 23 5 23 1
σ(GGS ) = − i, + i, 0 ⇒ ρ(GGS ) = √ = 0.144338 .
48 48 48 48 4 3

Usando este resultado fica também provada a convergência da sucessão


gerada pelo método de Gauss-Seidel.

Métodos Computacionais em Engenharia 44 / 46


Métodos iterativos Método de Gauss-Seidel

Exemplo - Cont.

Considerando X (0) = [0 0 0]T , temos


       
0.8958 0.9870 1.0005 1.0003
(1) (2) (3) (4) (5)
X = HGS , X =  0.9696  , X =  1.0039  , X =  1.0007  , X =  1.00001 
1.0287 1.0023 0.9997 0.9999

e
kGGS k∞
kX − X (5) k∞ ≤ kX (5) − X (4) k∞ = 2 × 0.0002 = 0.4 × 10−3 .
1 − kGGS k∞

Ou seja, aproximamos cada uma das coordenadas de X com um erro inferior


a 0.4 × 10−3 .

Métodos Computacionais em Engenharia 45 / 46


Métodos iterativos Método de Gauss-Seidel

Condição suficiente de convergência - Métodos de Jacobi e Gauss-Seidel

Se uma matriz A quadrada é de diagonal estritamente dominante (por linhas)


prova-se:
kGJ k∞ < 1, onde GJ é a matriz de iteração associada ao método de
Jacobi;
Tal resultado implica a seguinte condição suficiente de convergência para o
método de Jacobi:
Teorema:
Considere o sistema de equações AX = B. Se a matriz simples do sistema, A,
é de diagonal estritamente dominante então a sucessão gerada pelo método de
Jacobi converge para a solução do sistema AX = B.

O mesmo resultado é também válido para o método de Gauss-Seidel:


Teorema:
Considere o sistema de equações AX = B. Se a matriz simples do sistema, A,
é de diagonal estritamente dominante então a sucessão gerada pelo método de
Gauss-Seidel converge para a solução do sistema AX = B.
Métodos Computacionais em Engenharia 46 / 46