Você está na página 1de 62

Computação Científica II

(EEL7031)

Resolução de Sistemas de Equações Lineares

(Métodos Iterativos)

1
Objetivos e Tópicos Principais
 Objetivos
 Estudar técnicas iterativas de resolução numérica de sistemas
de equações lineares algébricas, que surgem nas mais
diversas áreas do conhecimento científico.
 Tópicos principais
 Introdução
 Normas de vetores e matrizes
 Autovalores e autovetores
 Métodos de Jacobi e Gauss-Seidel
 O método SOR
 O método gradiente conjugado
 Comentários Finais 2
Introdução
 Características dos métodos iterativos
 Necessitam da especificação de uma aproximação inicial.
 Não fornecem solução exata, mesmo usando-se aritmética exata,
mas uma solução aproximada dentro de uma tolerância
especificada pelo usuário.
 Em muitos casos, os métodos iterativos são mais efetivos que
os métodos diretos, visto que podem requerer menor esforço
computacional e, nestes casos, o erro de arredondamento é
reduzido.
 A sentença anterior é particularmente verdadeira quando a
matriz de coeficientes é esparsa, ou seja, quando possui
elevado percentual de elementos nulos.
3
Normas de vetores e matrizes
 Aspectos gerais
 A distância entre números reais x e y é x− y
 Esta medida foi empregada para estimar a precisão da aproximação
da solução no cálculo de raízes e para determinar quando uma
aproximação é suficientemente precisa.
 Nos métodos iterativos de resolução de sistemas de equações
algébricas lineares emprega-se esta mesma lógica, porém aplicada a
vetores.
 Convenção: A equação x = ( x1 , x2 ,… , xn ) t descreve todos os vetores
coluna com dimensão n e coeficientes reais representados por:
 x1 
x 
x =  2
⋮
 
 xn  4
Normas de vetores e matrizes
 Norma de vetor no ℜ n
 A norma de um vetor no ℜ n é uma função, ⋅ , de ℜ n → ℜ com as
seguintes propriedades:

 x ≥ 0 para todo x ∈ ℜ n,

 x = 0 se e somente se x = (0,0,… ,0)t ≡ 0 ,

 αx = α . x para todo α ∈ ℜ e x ∈ ℜ n,

 x+ y ≤ x + y para todo x, y ∈ ℜ n .

 As normas Euclidiana l2= x 2 e infinita l∞ = x ∞, para x = ( x1 , x2 ,… , xn )


t

são definidas como:


1/ 2
 n
 = max xi
x 2 = ∑ xi2  x ∞ 1≤i ≤ n
 i =1 
5
Normas de vetores e matrizes
 Interpretação geométrica da norma euclidiana

x 2 <1

A norma x , p/ x = ( x1 , x2 , x3 ) t , fornece a distância em linha reta entre os


2
pontos (0,0,0) e ( x1 , x2 , x3 ).
6
Normas de vetores e matrizes
 Interpretação geométrica da norma infinita

x ∞
<1

 Exemplo
 Para x = ( −1, 1,−2) , tem-se:
t

x 2 = ( −1) 2 + (1) 2 + ( −2) 2 = 6 x ∞


= max{− 1 , 1 , − 2 }= 2
7
Normas de vetores e matrizes
 Distância entre vetores
 Se x = ( x1 , x2 ,… , xn ) t e y = ( y1 , y2 ,… , yn ) são vetores no ℜ n , as
t

distâncias l2 e l∞ entre x e y são definidas por:


1/ 2
n 2 e x− y = max xi − yi
x − y 2 = ∑ ( xi − yi )  ∞
1≤i ≤ n
 i =1 

 Exemplo
 Para x = (1,1,1) t e y = ( 2,2,2) t , tem-se:

x − y 2 = (2 − 1) 2 + (2 − 1) 2 + (2 − 1) 2 = 3

x− y ∞
= max{2 − 1 , 2 − 1 , 2 − 1} = 1

8
Normas de vetores e matrizes
 Distância entre vetores (cont.)
 O conceito de distância no ℜ n é usado para definir o limite de uma
seqüência de vetores.

{ } ∞
 A seqüência de vetores x k k =1 no ℜ n é dita convergir para x com
respeito a norma ⋅ se, dado qualquer ε > 0 , existe um inteiro N (ε )
tal que:

x k − x < ε , para todo k ≥ N (ε )

9
Normas de vetores e matrizes
 Distância entre vetores (Exemplo)
 Considere a seqüência de vetores x ∈ ℜ ser definida por:
(k ) 4

x (k )
(
= x ,x ,x ,x
k
1
k
2
k
3 4)
k t  1 3 −k 
= 1, 2 + , 2 , e sin k 
 k k 
 Então:

lim 1 = 1 lim 2 + 1 / k = 2 lim 3 / k 2 = 0 lim e − k sin k = 0


k →∞ k →∞ k →∞ k →∞

 Portanto, para qualquer dado ε , pode ser encontrado um N (ε ) tal que o


maior valor de x1( k ) − 1 , x2( k ) − 2 , x3( k ) − 0 e x4( k ) − 0 , é menor queε .
 Este resultado implica que a seqüência x (k ) converge para (1,2,0,0)t com
respeito a ⋅ ∞ .
 Um resultado importante neste tema é que todas as normas no ℜ n são
equivalentes com respeito a convergência. 10
Normas de vetores e matrizes
 Norma de matriz
 Uma norma de matriz no conjunto de todas as matrizes n × n é uma
função, ⋅ , definida neste conjunto, satisfazendo para todas as matrizes
A e B, n × n , e todos os números reais α :

 A ≥ 0,
 A = 0 , se e somente se A é 0, matriz como todos os elem. nulos,
 αA = α . A ,

 A+ B ≤ A + B ,
 AB ≤ A . B .
 Distância entre matrizes
 Uma distância entre matrizes A e B, n × n , com respeito a esta norma de
matriz é A − B . 11
Normas de vetores e matrizes
 Norma natural de matriz
 Se ⋅ é uma norma de vetor no ℜ n, a norma natural de matriz no
conjunto de matrizes (n × n) , dada por ⋅ , é definida como segue:

A = max Ax
x =1

 Aplicações para norma euclidiana l2 e norma infinita l∞

A 2 = max Ax A ∞ = max Ax
2 e x =1

x 2 =1 ∞

12
Normas de vetores e matrizes
 Interpretação geométrica da norma natural euclidiana de matriz

A 2 = max Ax 2
x 2 =1

A( 2×2 )

13
Normas de vetores e matrizes
 Interpretação geométrica da norma natural infinita de matriz

A ∞ = max Ax ∞
x ∞
=1

A( 2×2)

14
Normas de vetores e matrizes
 Cálculo da norma natural infinita de matriz
n
A ∞ = max ∑ aij
1≤i ≤ n
j =1

3
Exemplo:

∑a 1j = 1 + 2 + −1 = 4
 Se 1 2 − 1 j =1

A = 0 3 − 1 3

5 − 1 1 
∑a
j =1
2j = 0 + 3 + −1 = 4

∑a
j =1
3j = 5 + −1 + −1 = 7

 Portanto: A ∞ = max{4,4,7} = 7
15
Autovalores e Autovetores
 Aspectos gerais
 Uma matriz n × m pode ser considerada como uma função que usa a
multiplicação de matrizes para tirar vetores m-dimensionais de dentro de
vetores n-dimensionais.
 Assim, de uma matriz A( n×n ) tira-se um conjunto de vetores n-
dimensionais.
 Neste caso, certos vetores não-nulos tem x e Ax paralelos, o que
significa que existe uma constante λ tal que:
Ax = λx ou A − λI = 0
 Há forte correlação entre esses números λ e a possibilidade de um
método iterativo convergir.

16
Autovalores e Autovetores
 Definições
 Para uma matriz quadrada A( n×n ), o polinômio característico de A é
definido por:
p(λ ) = det( A − λI )

 O polinômio p(λ ) tem grau n e, conseqüentemente, têm, no máximo, n


zeros distintos, alguns dos quais podem ser complexos.
 Os zeros de p(λ ) são denominados de autovalores da matriz A.
 Se λ é um autovalor de A, então:
det( A − λI ) = 0 A − λI é singular
 Conseqüentemente, se ( A − λI ) x = 0 e x ≠ 0 , então x é denominado
um autovetor de A associado ao autovalor λ .

17
Autovalores e Autovetores
 Interpretação geométrica
 Se x é um autovetor associado com o autovalor λ , então Ax = λx , assim
a matriz A tira o vetor x como um múltiplo escalar de si mesmo,
conforme ilustrado abaixo.

18
Autovalores e Autovetores
 Exemplo
0 − 1
 Determine os autovalores e autovetores de A =  
2 3 
 Polinômio característico:
0 − λ − 1 
p (λ ) = det( A − λI ) p (λ ) = det   = −λ (3 − λ ) + 2
 2 3 − λ
 Portanto:

p (λ ) = λ2 − 3λ + 2 Autovalores : λ1 = 1 e λ2 = 2
 Autovetores: x2 = − x1
− 1 − 1  x1  0
λ1 = 1 ( A − 1⋅ I ) x = 0  2 2  ⋅  x  = 0  AV1 = (1,−1) t
   2  

− 2 − 1  x1  0 x2 = −2x1
λ2 = 2 ( A − 2 ⋅ I )x = 0
2  ⋅  =  
 1   x2  0  AV2 = (1,−2)t
19
Qualquer múltiplo não-nulo de um autovetor é também um autovetor.
Autovalores e Autovetores
 Exemplo 2 – Aplicação do Matlab 1 0 2
 Determine os autovalores e autovetores de A =  0 1 − 1
 
Autovalores
Autovalores Autovetores
Autovetores − 1 1 1 

20
Autovalores e Autovetores
 Raio espectral de uma matriz
 O raio espectral ρ ( A) de uma matriz A é definido por

ρ ( A) = max λ , onde λ é um autovalor de A .

 Para o exemplo do slide anterior, tem-se:

{
ρ ( A) = max 1, 1 + 3i , 1 − 3i } ρ ( A) = max{1,2,2} = 2

 Caracterização da norma Euclidiana de matriz


 Se A é uma matriz (n × n) , então:
 [ ]
A 2 = ρ ( At A ) ;
1/ 2

 ρ ( A) ≤ A para qualquer norma.

21
Autovalores e Autovetores
 Exemplo – Norma Euclidiana de matriz
[ ( )]
 Determine A 2 = ρ A A
t 1/ 2
para:

 1 1 0 1 1 − 1  1 1 0  3 2 − 1
A =  1 2 1  At A = 1 2 1   1 2 1  =  2 6 4 
− 1 1 2 0 1 2  − 1 1 2 − 1 4 5 

3 − λ 2 −1  0 = −λ (λ2 − 14λ + 42)


0 = det( At A − λI ) = det  2 6−λ 4 
 − 1 4 5 − λ  λ = 0, λ = 7 + 7 , λ = 7 − 7
 Então:

A 2 = ρ ( At A ) { }
A 2 = max 0, 7 − 7 , 7 + 7 = 7 + 7 ≈ 3.106
22
Métodos de Jacobi e Gauss-Seidel
 Aspectos gerais
 São métodos iterativos desenvolvidos no século 18 e aplicáveis para
sistemas com matrizes esparsas e de grande dimensão.
 Sistemas com essas característica são encontrados, por exemplo, em
estudos de circuitos integrados em grande escala e na solução numérica
de problemas de valores de contorno e equações diferenciais parciais.
 Elementos básicos do método de Jacobi
 A resolução de Ax = b , A( n×n ) , por métodos iterativos, parte de uma
aproximação inicial x ( 0 ), para x , e gera uma seqüência de vetores x { }
k ∞
k =1

que converge para x.


 Este processo envolve a conversão de Ax = b ⇔ x = Tx + c
(0)
 A seqüência de aproximações é gerada, a partir de x , calculando-se:

x ( k ) = Tx k −1 + c; para k = 1,2,3,… 23
O Método de Jacobi
 Convergência e raio espectral
k −1
 A seqüência x = Tx + c converge para a solução única de x = Tx + c ,
(k )

para qualquer x ( 0 ) ∈ ℜ n , se e somente se ρ (T ) < 1.


 Exemplo 10 x1 + 2 x2 + 1x3 = 7  1
 Considere o sistema linear   , onde x = − 2
 x1 + 5 x2 + x3 = −8  
 2 x + 3 x + 10 x = 6   1 
 1 2 3 

 A conversão para a forma x = Tx + c é feita isolando-se xi na i-ésima


linha, para i = 1,2,3, ou seja:

 x1 = − (2 / 10) x2 − (1 / 10) x3 + (7 / 10)


 
 2
x = − (1 / 5) x1 − (1 / 5) x3 − (8 / 5) 
 x = −(2 / 10) x − (3 / 10) x + (6 / 10)
 3 1 2
24
O Método de Jacobi
 Exemplo (cont.)
 Assim, Ax = b tem a forma x = Tx + c apresentada abaixo

 x1 = − (2 / 10) x2 − (1 / 10) x3 + (7 / 10)


 
 2
x = − (1 / 5) x1 − (1 / 5) x3 − ( 8 / 5) 
 x = −(2 / 10) x − (3 / 10) x + ( 6 / 10) 
 3 1 2 
 onde:  −2 − 1  7 
 0 10 10   10 
 −1 − 1 e − 8
T = 0  c= 
 5 5  5 
− 2 −3
0   6 
 10 10   10 
 Autovalores de T:

λ1 = −0.3943, λ2 = 0.1391, λ3 = 0.2552 ρ (T ) = 0.3943 < 1. 25


O Método de Jacobi
 Exemplo (cont.)
( k −1)
 O processo iterativo x = Tx + c é executado como segue:
(k )

 x1( k ) = − (2 / 10) x2( k −1) − (1 / 10) x3( k −1) + (7 / 10)


 (k ) ( k −1) ( k −1)
 k = 1,2,…
 x2 = − (1 / 5) x1 − (1 / 5) x3 − (8 / 5) ,
 (k ) ( k −1) ( k −1) 
x
 3 = − ( 2 / 10) x1 − ( 3 / 10) x 2 + ( 6 / 10 ) 
 Os resultados de cada iteração, para x ( 0 ) = (1,1,1) t são:
k 0 1 2 3 4 5 ⋯ 9 10
x1( k ) 1.0 0.40 1.09 0.928 1.0192 0.9901 ⋯ 0.9998 1.0001
x2( k ) 1.0 − 2.00 − 1.70 − 2.042 − 1.9640 − 2.0092 ⋯ − 2.0003 − 1.9999
x3( k ) 1.0 0.10 1.12 0.892 1.0270 0.9854 ⋯ 0.9997 1.0001
 Critério de parada:
 1.0001   0.9998  0.3059
x (10) − x (9 ) < 10 −3
x (10) − x ( 9) = − 1.9999 − − 2.0003 = 1.0 × 10 −3 0.3710
 


 1.0001   0.9997  0.4456 26
∞ ∞
O Método de Jacobi
 Equação geral e formulação matricial
 O método iterativo de Jacobi para Ax = b; com aii ≠ 0; i = 1,2,⋯ , n
consiste em obter:
 a11 a12 ⋯ a1n 
n  aij x (jk −1)  bi a a22 ⋯ a2 n 
xi( k ) = ∑−  + , p/ i = 1,2,… , n ∴ A =  21

j =1  aii  aii  ⋮ ⋮ ⋮ 
j ≠i  
an1 an 2 ann 
 A matriz A pode ser dividida em A = D − L − U , como segue:
a11 0 ⋯ 0  0 0 ⋯ 0 0 − a12 ⋯ − a1n 
0 a22 ⋯ 0  − a21 0 ⋯ 0 0 0 ⋯ − a 
A= − − 2n 

⋮ ⋮ ⋮   ⋮ ⋮ ⋮  ⋮ ⋮ ⋮ 
     
0 0 ⋯ ann  − an1 − an 2 ⋯ 0  0 0 ⋯ 0 
[D ] [L] [U ] 27
O Método de Jacobi
 Equação geral e formulação matricial (cont.)
 A equação Ax = b ou ( D − L − U ) x = b é então transformada em:

Dx = ( L + U ) x + b
 Se aii ≠ 0; i = 1,2,⋯ , n , existe D −1 e, então, pode-se escrever: :

−1 −1 ( k −1)
onde :
x = D (L + U ) x + D b x (k )
= Tx +c
T = D −1 ( L + U ) e
c = D −1b

28
O Método de Gauss-Seidel
 Elementos básicos
 Representa a busca de melhor eficiência e desempenho, em relação ao
método de Jacobi, na resolução de sistemas lineares do tipo Ax = b .
 Utiliza, no momento do cálculo de cada componente xi( k ) , todas as
(k ) (k )
componentes x1 ,… , xi −1 , já determinadas , as quais, na maioria das
vezes, representam melhores aproximações do que x1( k −1) ,… , xi(−k1−1).
 A técnica assim definida é denominada de método iterativo de Gauss-
Seidel e descrita genericamente pela equação abaixo.

i −1
( )− ∑ (a x ) + b
n
− ∑ aij x (k )
j ij
( k −1)
j i
j =1 j =i +1
xi( k ) = , p/ i = 1,2,… , n
aii

29
O Método de Gauss-Seidel
 Exemplo
 Considere o sistema linear:

10 x1 + 2 x2 + 1x3 = 7  1


   
cuja solucão é : x = − 2
 x1 + 5 x2 + x3 = −8,
 2 x + 3 x + 10 x = 6   1 
 1 2 3 

 Aplicando-se a equação geral do método de Gauss-Seidel, obtém-se:

 x1( k ) = − (2 / 10) x2( k −1) − (1 / 10) x3( k −1) + (7 / 10)


 (k ) ( k −1)

 x2 = − (1 / 5) x1 − (1 / 5) x3 − (8 / 5) 
(k )

 (k ) 
x
 3 = − ( 2 / 10) x1
(k )
− (3 / 10 ) x (k )
2 + ( 6 / 10) 

30
O Método de Gauss-Seidel
 Exemplo (cont.)
 x1( k ) = − (2 / 10) x2( k −1) − (1 / 10) x3( k −1) + (7 / 10)
 (k ) ( k −1)

 x2 = − (1 / 5) x1 − (1 / 5) x3 − (8 / 5) 
(k )

 (k ) 
 x3 = − ( 2 / 10 ) x1
(k )
− (3 / 10) x (k )
2 + ( 6 / 10 ) 
 Realizando o processo iterativo para x ( 0 ) = (1,1,1) t , obtém-se:
k 0 1 2 3 4 5
x1( k ) 1.0 0.400 0.9676 1.0011 1.0004 1.0000
x2( k ) 1.0 − 1.88 − 2.0021 − 2.0021 − 2.0002 − 2.0000
x3( k ) 1.0 1.084 1.0096 1.004 1.0000 1.0000
 O critério de parada utilizado é dado por:
 1.0000   1.0004  0.3503
x ( 5) − x ( 4 ) < 10 −3
x ( 5)
−x ( 4)
= − 2.0000 − − 2.0002 = 1.0 × 10 −3 0.1597 
 


 1.0000   1.0000   0.0221
∞ ∞ 31
O Método de Gauss-Seidel
 Formulação matricial
 Na forma matricial, a equação geral do método de G-S é descrita por:
a11 0 ⋯ 0  0 0 ⋯ 0   x1( k )  0 − a12 ⋯ − a1n   x1( k −1)   b1 
      ( k −1)  b 
 0 a22 ⋯ 0  − a21 0 ⋯ 0   x2( k )  0 0 ⋯ − a 2 n   x2  +  2
 − ⋅
   =  ⋅
 ⋮ ⋮ ⋮   ⋮ ⋮ ⋮  ⋮ ⋮ ⋮ ⋮   ⋮  ⋮
 0           
 0 ⋯ ann  − an1 − an 2 ⋯ 0   xn( k )  0 0 ⋯ 0   xn( k −1)  bn 

[D] [L] [x] (k )


[U ] [x] ( k −1)
[b]
 Portanto, na forma compacta, tem-se:
(D − L )x ( k ) = Ux ( k −1) + b
 Se existe (D − L )−1, então:

x ( k ) = (D − L ) Ux ( k −1) + (D − L ) b
−1 −1
Note que :
onde : T = ( D − L) −1U e det( D − L) = a11 ⋅ a22 ⋅⋯ ⋅ ann
x ( k ) = Tx ( k −1) + c c = ( D − L) −1 b 32
O Método de Gauss-Seidel
 Formulação matricial (Exemplo)
 Considere o sistema linear:

10 x1 + 2 x2 + 1x3 = 7  1



+ + = −
 cuja solucão é : x = − 2
 1 x 5 x 2 x3 8,  
 2 x + 3 x + 10 x = 6   1 
 1 2 3 
 Aplicando-se a equação geral x = Tx + c , obtém-se:
−1
 10 0 0   0 0 0  0 − 2 − 1 0 − 0.2 − 0.10
    
T = ( D − L) U =   0 5 0  −  - 1 0 0  ⋅ 0 0 − 1= 0 0.04 − 0.18
−1   
  0 0 10 - 2 - 3 0  0 0 0  0 0.028 0.074 
    
 Autovalores de T:
λ1 = 0.0, λ2 = 0.057 + 0.0689i, λ3 = 0.057 − 0.0689i ρ (T ) = 0.0894 < 1.
33
Note a redução do raio espectral em relação ao método de Jacobi
Método de Jacobi e Gauss-Seidel
 Comentários
 Se a matriz de coeficientes do sistema Ax = b for de diagonal
estritamente dominante, então, para qualquer vetor de coeficientes b
e para qualquer aproximação inicial x ( 0 ), ambos os métodos, Jacobi
e Gauss-Seidel, convergem para a solução única de Ax = b.
 Em geral, o método de Gauss-Seidel apresenta desempenho
superior ao método de Jacobi, porém, há sistemas lineares em que
o método de Jacobi converge e o método de Gauss-Seidel não
converge.
 A formulação matricial x ( k ) = Tx ( k −1) + c é comum aos dois
métodos, porém a matriz T e o vetor c são distintos para cada
método.

34
O método SOR
 Aspectos gerais
 O método SOR é uma técnica mais recente que os métodos Jacobi e
Gauss-Seidel.
 Utiliza o conceito de relaxação no método de Gauss-Seidel, através
do uso de um fator de escala ω em cada iteração, para alterar a
velocidade de convergência do processo de resolução.

35
O método SOR
 Formulação matemática
 O método SOR é uma técnica iterativa para o cálculo de aproximações
( k −1)
.x ( k ) ; k = 1,2,… , em um processo descrito por x = g ( x
(k )
) , obtido a
partir de um sistema do tipo Ax = b :
 A equação geral do método SOR é dado por:

ω = 1 → método de Gaus − Seidel


[
x ( k ) = x ( k −1) + ω ⋅ g ( x ( k −1) ) − x ( k −1) ] 0 < ω < 1 : método de sub - relaxação
1 < ω : método de sobre - relaxação

 Usando-se os coeficientes do sistema Ax = b , resulta:

ω  i −1 
( ) − ∑ (a x )
n
x (k )
i = (1 − ω )x ( k −1)
+ bi − ∑ aij x
(k )
j ij
( k −1)
j ,
aii  j =1 j =i +1 
p/ i = 1,2,… , n 36
O método SOR
 Formulação matricial
 A equação geral anterior pode ser re-escrita na seguinte forma:

i −1
( ) = (1 − ω )a x ( )
n
a x (k )
ii i + ω ∑ aij x (k )
j ii
( k −1)
− ω ∑ aij x (jk −1) + ωbi
j =1 j = i +1

p/ i = 1,2,… , n
 Assim, na forma matricial compacta, tem-se:

(D − ωL )x ( k ) = [(1 − ω )D + ωU ]x ( k −1) + ωb
 Se existe (D − ωL ) , então:
−1

x ( k ) = ( D − ωL )
−1
[(1 − ω )D + ωU ]x ( k −1) + ω (D − ωL )−1 b

x ( k ) = Tx ( k −1) + c 37
O método SOR
 Condições de convergência
 Se a matriz A for positiva-definida e 0 < ω < 2, então o método SOR
(0)
converge para qualquer escolha de condição inicial x .
 Exemplo
 Considere o sistema:

4 3 0   x1   24  cuja solucão é : 3


3 4 − 1 ⋅  x  =  30  x =  4 
   2  
0 − 1 4   x3  − 24 − 5

 Resolva para x ( 0 ) = (1,1,1) t usando GS e SOR com ω = 1.25.

x ( k ) = (D − L ) Ux ( k −1) + (D − L ) b
GS : −1 −1

SOR : x ( k ) = (D − ωL )
−1
[(1 − ω )D + ωU ]x ( k −1) + ω (D − ωL )−1 b 38
O método SOR
 Matrizes do sistema:
4 3 0   x1   24  4 0 0 0 0 0 0 − 3 0 
3 4 − 1 ⋅  x  =  30  D = 0 4 0; L = − 3 0 0; U = 0 0 1
   2  
0 − 1 4   x3  − 24 0 0 4  0 + 1 0 0 0 0

 Portanto: 0 − 0.75 0 
T = 0 0.5625 0.25 
ρ (Tg ) = 0.625
GS :
0 0.1406 0.0625
Tg = (D − L ) U
−1

 − 0.25 − 0.9375 0 
T = 0.2344 0.6289 0.3125 
SOR :
0.0732 0.1965 − 0.1523
Tω = (D − ωL )
−1
[(1 − ω )D + ωU ]
ρ (Tω ) = 0.25 39
O método SOR
 Resultados:
x ( k ) = (D − L ) Ux ( k −1) + (D − L ) b
−1 −1
 Usando Gauss-Seidel:

k 0 1 2 3 ⋯ 7
Ordem de precisão :
x1( k ) 1.0 5.2500 3.1406 3.0879 ⋯ 3.0134
(k ) 10 −6 p/ 34 iterações
x2 1.0 3.8125 3.8828 3.9267 ⋯ 3.9888
x(k )
3 1.0 − 5.0487 − 5.0293 − 5.0183 ⋯ − 5.0028

 Usando SOR: x ( k ) = (D − ωL )−1 [(1 − ω )D + ωU ]x ( k −1) + ω (D − ωL )−1 b

k 0 1 2 3 ⋯ 7
Ordem de precisão :
x1( k ) 1.0 6.3125 2.6223 3.1333 ⋯ 3.00005
(k ) 10 −6 p/ 14 iterações
x2 1.0 3.5195 3.9585 4.0103 ⋯ 4.00026
x(k )
3 1.0 − 6.6501 − 4.6004 − 5.0967 ⋯ − 5.0003
40
O método SOR
 Aplicação para matrizes tri-diagonais
[ ]
 Se A for uma matriz tri-diagonal, então ρ (Tg ) = ρ (T j ) < 1 , e a
2

escolha ótima de ω para o método SOR é:

2
ω= ρ (Tω ) = ω − 1
[
1 + 1 − ρ (T j ) ]
2

 Comentários
 Métodos de sub-relaxação 0 < ω < 1:
 Usados para se obter convergência em alguns sistemas que não são
convergentes pelo método de Gauss-Seidel.
 Métodos de sobre-relaxação 1 < ω :
 Usados para acelerar a convergência em sistemas que são convergentes
pelo método de Gauss-Seidel.
41
Limites de Erro e Refinamentos Iterativos
 Erro limitado pelo vetor de resíduos
 Se ~
x é uma aproximação para a solução de Ax = b e A é uma matriz
não-singular, então, para qualquer norma natural, tem-se:

x−~
x ≤ b − A~
x ⋅ A −1

e, x−~
x −1 b − A~
x , supondo x ≠ 0 e b ≠ 0.
≤ A⋅ A
x b
−1 −1
 Estes resultados implicam que A e A A fornecem uma
indicação da correlação entre o vetor resíduo e a precisão da
aproximação, para qualquer norma.
 Em geral, o erro relativo é de maior interesse, sendo este erro limitado
−1
pelo produto de A A com o erro relativo residual para esta
aproximação, b − A~ x /b .
42
Limites de Erro e Refinamentos Iterativos
 Número de condição de uma matriz
 O número de condição, κ ( A) , de uma matriz A não-singular relativo
a uma norma ⋅ é:

κ ( A) = A ⋅ A−1

 Com esta notação, pode-se escrever as condições anteriores de


limitação do erro como segue:

~ b − A~
x e x−~
x b − A~
x
x − x ≤ κ ( A) ⋅ ≤ κ ( A)
A x b

 Para qualquer matriz A não-singular e norma natural ⋅ , tem-se:

1 = I = A ⋅ A−1 ≤ A ⋅ A−1 = κ ( A)
43
Limites de Erro e Refinamentos Iterativos
 Número de condição de uma matriz (cont.)
 Matriz bem-condicionada:
 Uma matriz A é bem-condicionada se κ ( A) estiver próximo a 1.
 Matriz mal-condicionada:
 Uma matriz A é mal-condicionada se κ ( A) >> 1
 Exemplo
 Considere a matriz:

 1 2
A=  A ∞ = 3.0001
1 . 0001 2  −1
∴ κ ( A) = A ⋅ A = 60002
− 10000 10000 
A =−1
 A −1 = 20000
 5000.5 − 5000 

44
Limites de Erro e Refinamentos Iterativos
 Exemplo (cont.)
 O sistema linear abaixo tem solução única x = (1,1) t :
 1 2  x1   3 
1.0001 2 ⋅  x  = 3.0001
   2  
 O vetor resíduo para a aproximação ~
x = (3,0) t é:

 3   1 2   3  0  b − A~
x = 0.0002
~
b − Ax =  − ⋅  = 

3 .0001 1 .0001 2  0 − 0 .0002  e


       
x−~
x =2
 Análise: ∞

 Embora a norma do vetor resíduo seja muito pequena, a


aproximação ~
x = (3,0) t é considerada muito pobre (insuficiente);
 Esse tipo de dificuldade surge em sistemas lineares com matriz de
coeficientes mal-condicionadas e exige uma análise cuidadosa do
45
processo de convergência para solução.
Limites de Erro e Refinamentos Iterativos
 Exemplo (cont.)
 Visualização gráfica da aproximação ~ x = (3,0) t e da solução
única x = (1,1) t para o sistema linear :

 1 2  x1   3 
1.0001 2 ⋅  x  = 3.0001
   2  

l1 : x1 + 2 x2 = 3

l2 : 1.0001x1 + 2 x2 = 3.0001

1
Solução : x =  
*

1 46
Limites de Erro e Refinamentos Iterativos
 Refinamentos Iterativos
 O resíduo de uma aproximação também pode ser utilizado para
melhorar a aproximação.
 Suponha que ~ x é uma aproximação para a solução do sistema Ax = b
e que r = b − A~x é o resíduo.
~
 Considere y ser a solução aproximada para o sistema Ay = r .
 Então:
~ ~
y = x−~
x x≈~
x+~
y
y = A r = A (b − A~
−1 −1
x ) = A b − A A~
−1
x −1

Esta aproximação x ≈ ~ x+~ y , situa-se, em geral, mais próxima da


solução única do sistema linear que a aproximação ~ x .
Recomenda-se analisar o exemplo 3, página 375, do livro Faires e Burden.
47
O método Gradiente Conjugado
 Aspectos gerais
 O método gradiente conjugado (GC) foi originalmente desenvolvido,
em 1952, por Hestenes e Stiefel, como um método direto, mas
apresentou desempenho inferior ao método da eliminação gaussiana
com pivoteamento.
 Posteriormente, verificou-se que o método GC é muito útil para a
resolução de sistemas lineares de grande porte e esparsos, que
surgem na resolução de problemas de valores de contorno descritos
por equações diferenciais ordinárias e que surgem na resolução de
equações diferenciais parciais.
 O método é aplicável para sistemas com matriz de coeficientes
simétrica e positiva definida.

48
O método Gradiente Conjugado
 Representação de produto interno
 Utilizar-se-á a seguinte representação para produto interno de
vetores:
x, y = x t y

 Propriedades do produto interno


 Para quaisquer vetores x, y e z e qualquer número real α , tem-se:
(i) x, y = y , x
(ii) α x , y = x , α y = α x, y
(iii) x + z , y = x, y + z , y
(iv) x, x ≥ 0
(v) x, x = 0 se e somente se x = 0

49
O método Gradiente Conjugado
 Outras propriedades envolvendo o produto interno
 Para A positiva definida, tem-se:

x, Ax = x t Ax > 0, se x ≠ 0

 Para A positiva definida e simétrica, tem-se:

x t Ay = x t At y = ( Ax ) y x, Ay = Ax, y
t

50
O método Gradiente Conjugado
 Formulação básica
 Para A( n×n ) simétrica e positiva definida, tem-se:

Ax = b ⇔ min g ( x) = x, Ax − 2 x, b ⇔ min g ( x) = x t Ax − 2 x t b

 Ilustração para A( 2×2)


 Função g ( x) = g ( x1 , x2 ) : g ( x)

 a11 a12   x1   b1 
g ( x) = [x1 x 2 ]⋅   ⋅   − 2[x1 x2 ] ⋅  
a21 a22   x2  b2 

g ( x) = a11 x12 + a12 x1 x2 + a21 x1 x2 + a22 x22 − 2 x1b1 − 2 x2b2


51
O método Gradiente Conjugado
 Ilustração para A( 2×2) (cont.)
 Cálculo do gradiente de g ( x), ∇g ( x) :
g ( x) = a11 x12 + a12 x1 x2 + a21 x1 x2 + a22 x22 − 2 x1b1 − 2 x2b2

 ∂g ( x) 
 ∂x   2a11 x1 + (a12 + a21 ) x2 − 2b1 
∇g ( x ) =  1  =  
 ∂g ( x )   12
( a + a )
21 1x + 2 a x
22 2 − 2b2
 ∂x2 
min g ( x) ⇔ ∇g ( x) = 0
 Portanto, para A simétrica, a12 = a21 , tem-se:
 a11 a12   x1   b1  ∇g ( x) = 2( Ax − b ) = −2r
∇g ( x ) = 2   ⋅   − 2 
a21 a22   x2  b2  onde : r = b − Ax
é o vetor resíduo
Note que ( x1 , x2 ) ∋ ∇g ( x ) = 0 é a solução do sistema
* * t
Ax = b, sendo
o resultado válido também para A(n × n) .
52
O método Gradiente Conjugado
 Princípio geral de funcionamento
 Escolher uma aproximação inicial x ( 0 ) .
 Escolher uma direção em que g (x)diminui.
 Escolher um passo t tal que g ′( x ) < g ( x (0)
) .
 Equação geral: x ( k ) = x ( k −1) + tk v ( k ) ; k = 1,2,…
 Note que t k é um escalar que define a distância do deslocamento na
direção v ( k. )
 A direção − ∇g (x) é a direção de maior decréscimo de g (x), neste
caso equivalente a direção do vetor de resíduos r.
 No método GC toma-se como primeira direção de busca a direção do
(0)
vetor de resíduos, calculado a partir de uma aproximação inicial x .
v (1) = r ( 0 ) = b − Ax ( 0 )
 Todas as direções subseqüentes do processo iterativo devem ser
ortogonais em relação a matriz A. (i ) ( j)
⇒ v , Av = 0, se i ≠ j 53
O método Gradiente Conjugado
 Condição de minimização g (x)
 O vetor x* é uma solução para o sistema linear
*
.Ax = b , A positiva definida, se e somente se x
minimiza:
g ( x) = x, Ax − 2 x, b

 Para x ( k −1) e v ( k ) ≠ 0; k = 1,2,… a função


.g ( x ( k −1) + t k v ( k ) ) tem seu mínimo quando:
g ( x ( k −1) + tv ( k ) )
t k = v ( k ) , b − Ax ( k −1) / v ( k ) , Av ( k )
(k )
 Note que t k define um mínimo na direção v ,
sendo o mínimo de g (x) obtido com a repetição do
processo em novas direções,ortogonais em relação
a matriz A.
54
O método Gradiente Conjugado
 Sumário de Fórmulas
 Resíduo e direção inicial: r ( 0 ) = b − Ax ( 0 ) e v (1) = r ( 0)
 Fórmulas do processo iterativo ( para k = 1,2,… , n)

r ( k −1) , r ( k −1) mínimo na direção v ( k )


tk =
v ( k ) , Av ( k )

x (k )
=x ( k −1)
+ tk v (k ) nova aproximação para x *

r ( k ) = r ( k −1) − t k Av ( k ) resíduo atualizado. Se r ( k ) < ε , pare.


Faça x (*) = x ( k )
r (k ) , r (k )
sk =
r ( k −1) , r ( k −1)

v ( k +1)
=r (k )
+ sk v (k ) direção conjuga : v ( k +1) , Av ( k ) = 0 55
O método GC pré-condicionado
 Aspectos gerais
 Se a matriz A for mal-condicionada, o método gradiente conjugado
(GC) torna-se altamente suscetível aos erros de arredondamento.
 O método GC é geralmente aplicado como um método iterativo para
sistemas bem condicionados e, nestes casos, obtém-se uma
aproximação aceitável para a solução em cerca de n passos.
 A aplicação do método GC a um sistema melhor condicionado é feita
usando uma matriz C não-singular, de pré-condicionamento, tal que:
~
A = C −1 A(C −1 )t
 Assim, aplica-se o método GC ao sistema:
~ ~ , ~
A~x =b onde : ~
x = C t x e b = C −1b
 A solução é obtida por:
x = C −t ~
x 56
O método GC pré-condicionado
 Sumário de Fórmulas nas variáveis originais
 Resíduo e direção inicial: r ( 0 ) = b − Ax ( 0 ) , w( 0 ) = C −1r ( 0) , v (1) = C −t w(0)
 Fórmulas do processo iterativo ( para k = 1,2,… , n)

~ w( k −1) , w( k −1)
tk = mínimo na direção v ( k )
v ( k ) , Av ( k )
~ nova aproximação para x *
x ( k ) = x ( k −1) + tk v ( k )
~
r ( k ) = r ( k −1) − tk Av ( k ) resíduo atualizado. Se r ( k ) < ε , pare.
w( k ) = C −1r ( k ) Faça x (*) = x ( k )

~ w( k ) , w( k )
sk =
w( k −1) , w( k −1)
v ( k +1)
=C w −t (k )
+~
sk v ( k ) direção conjuga : v ( k +1) , Av ( k ) = 0 57
O método GC pré-condicionado
 Exemplo
 Considere o sistema:
3
4 3 0   x1   24  cuja solucão é :
3 4 − 1 ⋅  x  =  30  x =  4 
   2   − 5
0 − 1 4   x3  − 24
 Considere ainda C = C −1 = I e x ( 0 ) = (0,0,0) t .
 Então, obteve-se o seguinte resultado:
k 0 1 2 3 k 0 1 2 3
x1( k ) 0 3.5258 2.8580 2.9999 r1( k ) 24 − 3.3247 0.1210 0.36 × 10 −8
x2( k ) 0 4.4072 4.1490 4.0000 r2( k ) 30 − 1.7320 − 0.1241 0.39 × 10 −8
x3( k ) 0 − 3.5258 − 4.9542 − 4.9999 r3( k ) − 24 − 5.4897 − 0.0341 − 0.14 × 10 −8

Lembre-se que foram necessárias 34 e 14 iterações para resolver o


58
mesmo sistema por G-S e SOR, respectivamente. .
O método GC pré-condicionado
 Comentários
 O método GC pré-condicionado é freqüentemente usado na resolução
de sistemas lineares de grande porte e matrizes esparsas.
 Esses sistemas são comuns em problemas de valores de contorno
descritos por equações diferenciais ordinárias.
 Quanto maior a dimensão do sistema maiores são os benefícios, em
geral, da opção pelo método GC, visto ser significativamente reduzido o
número de interações necessárias, comparando-se a outros métodos.
 É comum o uso da matriz de pré-condicionamento C aproximadamente
igual a matriz L da fatoração de Choleski LL = A .
t

 Geralmente, os elementos numericamente pequenos de A são


ignorados no cálculo da matriz de pré-condicionamento C = L e, assim,
denominada de fatoração incompleta de Choleski.

LL ≈ A
t C − t C −1 ≈ A−1 59
O método GC pré-condicionado
 Exemplo de aplicação
 Considere o sistema linear:

0.2 0.1 1 1 0   x1   b1   7.859713071 


 0.4229264082 
 0.1 4 − 1
 1 − 1   x2  b2  cuja solucão é :
 
 1 − 1 60 0 − 2  ⋅  x3  = b3  x = − 0.07359223906
*

       
1 1 0 8 4   x4  b4   − 0.5406430164 
 0 − 1 − 2 4 700  x5  b5   0.01062616286 

 Características da matriz A:
 simétrica;
 positiva definida;
 mal-condicionada (κ ∞ ( A) = 1396.71)
60
O método GC pré-condicionado
 Exemplo de aplicação (cont.)
 Comparação do desempenho de métodos

Maior precisão e menor


C = D1 / 2 número de iterações
61
Resolução de SL por métodos iterativos
 Comentários Finais
 Os métodos de Jacobi e Gauss-Seidel exigem a especificação de uma
(0) (k )
aproximação inicial x e geram uma seqüência de vetores x
usando a equação da forma x ( k ) = Tx ( k −1) + c .
 A condição suficiente para a convergência desses métodos é que o
raio espectral da matriz de iteração ρ (T ) < 1 , e quanto menor for o raio
espectral mais rápida será a convergência.
 O método SOR é uma alternativa para acelerar a convergência do
método de Gauss-Seidel usando-se um fator de escala 1 < ω < 2 .
 O método gradiente conjugado é aplicável a sistemas com matrizes
simétricas, positivas definidas, esparsas e de grande porte, que
surgem normalmente em problemas de valores de contorno e
equações diferenciais parciais.
 Na maioria das aplicações do método GC deve ser utilizada uma
matriz de pré-condicionamento. 62

Você também pode gostar