Vous êtes sur la page 1sur 26

SOLUÇÃO DE SISTEMAS DE EQUAÇÕES 

LINEARES

Objetivo:
• Formas de resolver os sistemas de equações lineares 
resultantes do processo de discretização
• Rever os seguintes métodos: Gauss‐Seidel, Jacobi e SOR
• Apresentar o método: TDMA
MATRIZES ESPECIAIS

Matriz Banda: é uma matriz


quadrada que tem todos os
elementos zero, exceto uma
banda centrada na diagonal
principal.

HBW: half band width


BW: band width

BW: 2HBW + 1
aij=0 se |i‐j|>HBW
MATRIZES ESPECIAIS
Matriz Simétrica: é uma matriz quadrada cuja transposta
é igual à própria matriz.

[A]=[A]T aij=aji

Matriz Tridiagonal: é uma matriz quadrada cujos elementos são nulos, exceto em
três diagonais, a diagonal principal e nas diagonais imediatamente à esquerda e
imediatamente à direita da principal.
AUTORES
SISTEMA DE EQUAÇÕES LINEARES

4 x1  x2  x3  7
4 x1  8 x2  x3  21
 2 x1  x2  5 x3  15

 4  1 1  x1   7 
 4  8 1. x    21
   2   A. x  b
 2 1 5  x3   15 
SISTEMA DE EQUAÇÕES LINEARES

x2  x3  7
4 x1  x2  x3  7 x1 
4
4 x1  8 x2  x3  21 4 x1  x3  21
x2 
 2 x1  x2  5 x3  15 8
2 x1  x2  15
x3 
5

 x1   0  1   x1   7 
1
 4  1 1  x1   7  4 4  4
 4  8 1. x    21 x    1 0 1 . x   21 
   2    2  2 8   2   8
 2 1 5  x3   15   x3   2 1 0   x3   3 
 5 5   

Ax  b x  Cx  d
MÉTODO JACOBI
Divulgado em 1845, é um método iterativo baseado na transformação do sistema linear
Ax=b em um sistema x=Cx+d , onde a matriz C tem zeros na diagonal principal. O
vetor x é atualizado usando os valores do vetor x estimados na iteração anterior. Assim:

4 x1  x2  x3  7  4  1 1  x1   7 
 4  8 1. x    21
4 x1  8 x2  x3  21 Ax  b    2  
 2 x1  x2  5 x3  15  2 1 5  x3   15 

x k   Cx k 1  d
x2  x3  7
x1 
4  x1k   0 1
4
 1   x1k 1   7 
4 4
4 x  x  21  k  
 k 1  21
 1 1
x2  1 3 x
 2  2
0
8 . x2    8 
8  x3k   2 1   k 1  
3

2 x1  x2  15    5  5 0  3  

x
 
x3 
5
MÉTODO JACOBI
Em notação matricial, a matriz A pode ser decomposta em A=L+D+U
 4  1 1  0 0 0   4 0 0   0  1 1 
 4  8 1   4 0 0    0  8 0    0 0 1 
        A  L  D U
 2 1 5  2 1 0 0 0 5 0 0 0
    
A L D U

E Ax=b pode ser reescrita na forma: Dx=b‐(L+U)x

 
4 0 0  x1   7    0 0 0 0  1 1   x1 

0  8 0. x    21    4 0 0  0 0 1   x 
   2        2  Dx  b  L  U x
0 0 5  x3   15    2 1 0 0 0 0   x3 
        
D x b  L U  x
Obtendo a inversa (D‐1) de D e reescrevendo: x(k) = D‐1[b‐(L+U) x(k‐1)]

   
 x1   1 4
k  0 0    7    0 0 0 0  1 1   x1    k  1 
 k        
 k 1 
1    
 x2    0  8 0    21    4 0 0  0 0 1   x2  
   k 1  

x k   D 1 b  L  U x k 1 
 x3k    0 0 1  
 15 
   2 1 0 
 
 0 0 0 
 x3  
  5         
   b  
x (k )
 L U x ( k 1)  
D 1
MÉTODO JACOBI Critério de convergência

xik  xik 1
 a,x  100%   s
Estimativa inicial: x1=1; x2=2; x3=2 i k
xi
Iteração 1
x2  x3  7 227 1,75  1
x1  x1   1,75  a, x  100%  42,86%
4 4
1
1,75
4 x  x  21 4.1  2  21 3,375  2
x2  1 3 x2   3,375  a, x  100%  40,74%
8 8 2
3,375
2 x  x  15 2.1  2  15 3 2
x3  1 2 x3  3  a, x  100%  33,33%
5 5 3
3

Iteração 2
3,375  3  7 1,84375  1,75
x1   1,84375  a, x  100%  5,08%
4
1
1,84375
4.1,75  3  21 3,875  3,375
x2   3,875  a, x  100%  12,90%
8 2
3,875
2.1,75  3,375  15 3,025  3
x3   3,025  a, x  100%  0,83%%
5 3
3,025

Iteração 3
3,875  3,025  7 1,9625  1,84375
x1   1,9625  a, x  100%  6,05%
4
1
1,9625
4.1,84375  3,025  21 3,925  3,875
x2   3,925  a, x  100%  1,27%
8 2
3,925
2.1,84375  3,875  15 2,9625  3,025
x3   2,9625  a, x  100%  2,11%
5 3
2,9625
MÉTODO GAUSS‐SEIDEL
Divulgado em 1874, é um método iterativo baseado na transformação do sistema linear
Ax=b em um sistema x=Cx+d , onde a matriz C tem zeros na diagonal principal. O
vetor x é atualizado à medida que os cálculos são feitos (atualização sequencial) e não
somente ao final de cada passo iterativo, como ocorre no método de Jacobi. Assim:

4 x1  x2  x3  7  x1k   0 1  1   x1k 1   7 
4 4  4
 k  1  
4 x1  8 x2  x3  21  x2    2 0 1 . x 
 21
8   2   8 
k 1

 x3k   2 0   x3   3 
k 1
 2 x1  x2  5 x3  15    5  15   

 x1k   0 1
4
 1   x1k   7 
4
 k  1    4
1 . x 
 21
 x2    2 8   2   8 
1
0 k

x2  x3  7  x3k   2
x1     5  15 0   x3   3 

k 1

 
4
4 x1  x3  21
x2   x1k   0 1
4
 1   x1k   7 
4
8  k  1    4
1 . x  21 
 x2    2 0 k
8   2   8
2 x1  x2  15  x3k   2 0   x3   3 
k 1
x3     5  15   
5
Critério de convergência
MÉTODO GAUSS‐SEIDEL
xik  xik 1
 a,x  100%   s
Estimativa inicial: x1=1; x2=2; x3=2 i k
xi
Iteração 1
x2  x3  7 227 1,75  1
x1  x1   1,75  a, x  100%  42,86%
4 4
1
1,75
4 x  x  21 4.1,75  2  21 3,75  2
x2  1 3 x2   3,75  a, x  100%  46,67%
8 8 2
3,75
2 x  x  15 2.1,75  3,75  15 2,95  2
x3  1 2 x3   2,95  a, x  100%  32,20%
5 5 3
2,95

Iteração 2
1,95  1,75
3,75  2,95  7  a, x  100%  10,26%
x1   1,95 1
1,95
4
4.1,95  2,95  21 3,96875  3,75
x2   3,96875  a, x  100%  5,51%
2
3,96875
8
2.1,95  3,96875  15 2,98625  2,95
x3   2,98625  a, x  100%  1,21%%
5
3
2,98625

Iteração 3
3,96875  2,98625  7 1,995625  1,95
x1   1,995625  a, x  100%  2,29%
1
1,995625
4
4.1,995625  2,98625  21 3,99609  3,96875
x2   3,99609  a, x  100%  0,68%
8
2
3,99609
2.1,995625  3,99609  15 2,99903  2,98625
x3   2,99903  a, x  100%  0,43%%
5
3
2,99903
COMPARAÇÃO GAUSS‐SEIDEL e JACOBI
COMPARAÇÃO GAUSS‐SEIDEL e JACOBI
JACOBI GAUSS‐SEIDEL
Iteração 1 Iteração 1
227 227
x1   1,75 x1   1,75
4 4
4.1  2  21 4.1,75  2  21
x2   3,375 x2   3,75
8 8
2.1  2  15 2.1,75  3,75  15
x3  3 x3   2,95
5 5

Iteração 2 Iteração 2
3,375  3  7 3,75  2,95  7
x1   1,84375 x1   1,95
4 4
4.1,75  3  21 4.1,95  2,95  21
x2   3,875 x2   3,96875
8 8
2.1,75  3,375  15 2.1,95  3,96875  15
x3   3,025 x3   2,98625
5 5

Iteração 3 Iteração 3
3,96875  2,98625  7
3,875  3,025  7 x1   1,995625
x1   1,9625 4
4
4.1,995625  2,98625  21
4.1,84375  3,025  21 x2   3,99609
x2   3,925 8
8
2.1,995625  3,99609  15
2.1,84375  3,875  15 x3   2,99903
x3   2,9625 5
5
COMPARAÇÃO GAUSS‐SEIDEL e JACOBI
JACOBI GAUSS‐SEIDEL
Iteração 1 Iteração 1
1,75  1 1,75  1
 a, x  100%  42,86%  a, x  100%  42,86%
1
1,75
1
1,75
3,375  2 3,75  2
 a, x  100%  40,74%  a, x  100%  46,67%
2
3,375
2
3,75
3 2 2,95  2
 a, x  100%  33,33%  a, x  100%  32,20%
3
3 3
2,95

Iteração 2 Iteração 2
1,84375  1,75 1,95  1,75
 a, x  100%  5,08%  a, x  100%  10,26%
1
1,84375
1
1,95
3,875  3,375 3,96875  3,75
 a, x  100%  12,90%  a, x  100%  5,51%
2
3,875
2
3,96875
3,025  3 2,98625  2,95
 a, x  100%  0,83%%  a, x  100%  1,21%%
3
3,025
3
2,98625

Iteração 3 Iteração 3
1,9625  1,84375 1,995625  1,95
 a, x  100%  6,05%  a, x  100%  2,29%
1
1,9625
1
1,995625
3,925  3,875 3,99609  3,96875
 a, x  100%  1,27%  a, x  100%  0,68%
2
3,925
2
3,99609
2,9625  3,025 2,99903  2,98625
 a, x  100%  2,11%  a, x  100%  0,43%%
3
2,9625
3
2,99903
CONVERGÊNCIA DO GAUSS‐SEIDEL
 y  g ( x)  y  g ( x)
 
y  x x  y
CONDIÇÃO DE CONVERGÊNCIA
Os métodos iterativos de Jacobi e Gauss‐Seidel convergem se a matriz A (do 
sistema Ax=b) é diagonalmente dominante, ou seja:
n
aii   aij
j 1
j i

Esta é uma condição suficiente, mas não necessária para convergência, ou 
seja, a matriz pode não ser diagonal dominante e o processo ainda assim 
convergir.

CRITÉRIO DE SCARBOUROGH
n

a ij
j 1
j i  1  para todas as equações

aii  1  para pelo menos uma das equações
É uma condição de convergência para qualquer método iterativo. 
É uma condição suficiente, mas não necessária. 
OBSERVAÇÕES
De um modo geral o método de Gauss‐Seidel tem convergência mais rápida 
que o método de Jacobi, porém não pode‐se generalizar esta afirmação;
Em alguns casos o método Gauss‐Seidel pode não convergir, enquanto o 
Jacobi converge;
O Jabobi tem sido bastante usado em arquitetura paralela para 
computadores;
EXERCÍCIO

1) Resolver com Gauss‐Seidel o sistema:

 x1  0,4 x2  0,2

 x2  x1  1

2) Resolver com Gauss‐Seidel o sistema:

 x1  x2  1

 x2  2,5 x1  0,5
MÉTODO SOR  x1k   0 1
4
 1   x1k 1   7 
4
 k  1    4
1 . x 
 21 
 x2    2
1
0 
k

8  2
 8
É uma modificação do Gauss‐Seidel  x3k   2  k 1 

para melhorar a convergência.    5  15 0   x3   3 


  

x1k   x1k   1   x1k 1


4 x1  x2  x3  7
4 x1  8 x2  x3  21  x1k   0 1
4
 1   x1k   7 
4 4
 k  1   
1 . x k 1  21 
 2 x1  x2  5 x3  15  x2    2 0
8   2   8
 x3k   2 0   x3   3 
k 1
   5  15   

x2k   x2k   1   x2k 1


x2  x3  7
x1 
4  x1k   0 1
4
 1   x1k   7 
4
 k  1    4
4 x1  x3  21  x2    2 0 1 . x  21 
k
8   2   8
x2   x3k   2 0   x3   3 
k 1
8    5  15   
2 x1  x2  15
x3  x3k   x3k   1   x3k 1
5
MÉTODO SOR (Sucessive Over Relaxation)

xik   xik   1   xik 1


0<ω<2
0<ω<1 → Subrelaxação (underrelaxation)

1<ω<2 → Sobrerelaxação (overrelaxation)

ω=1 → Gauss-Seidel

Sobrerelaxação (SOR): usado para acelerar a convergência de um sistema que


converge.

Subrelaxação: é uma média ponderada entre o valor atual e o anterior da variável.


Usado para obter a covergência de um sistema que não converge, ou para
acelerar a convergência de um sistema reduzindo as oscilações.
Se a matriz A do sistema Ax=b é simétrica e positiva definida o método converge
para qualquer 0<ω<2.
MÉTODO TDMA (Tridiagonal matrix algorithm) ou 
algoritmo de Thomas
É um método baseado na eliminação de Gauss. Considerando um sistema de
equações lineares escrito na forma:

ai xi  bi xi 1  ci xi 1  d i (1)

A eq.(1) representa o sistema linear Ax=b, onde a matriz dos coeficientes (A) é
uma matriz tridiagonal. Decompondo a matriz A em A=D+L+U, o sistema pode ser
representado como escrito na eq.(1), que na forma matricial é dado por
Dx=(L+U)x+b:
 a1 b1 0 0 0   x1   d1   a1 0 0 0 0   x1   0  b1 0 0 0   x1   d1 
 c2 a2 b2 0 0   x2   d 2   0 a2 0 0 0   x2    c2 0  b2 0 0   x2   d 2 
 
 0 ... ... ... 0   ...    ...   0 0 ... 0 0   ...    0 ... 0 ... 0   ...    ... 
            
 0 0 cn 1 an 1 bn 1   xn 1  d n 1   0 0 0 an 1 0   xn 1   0 0  cn 1 0  bn 1   xn 1  d n 1 
 0 0 0 cn an   xn   d n   0 0 0 0 an   xn   0 0 0  cn 0   xn   d n 

Supondo que se queira determinar um processo de substituição progressiva


escrito na forma:

xi  Pi xi 1  Qi (2)

xi 1  Pi 1 xi  Qi 1 (3)
MÉTODO TDMA (Tridiagonal matrix algorithm) ou 
algoritmo de Thomas
Substituindo (3) em (1):

ai xi  bi xi 1  ci Pi 1 xi  Qi 1   d i

ai  ci Pi 1 xi  bi xi 1  d i  ci Qi 1 
bi  d i  ci Qi 1 
xi  xi 1    (4)
ai  ci Pi 1  ai  ci Pi 1 
Lembrando que a equação (2) é dada por:

xi  Pi xi 1  Qi (2)

Comparando (2) e (4) tem-se:

Pi 
bi d i  ci Qi 1
(5) Qi  (6)
ai  ci Pi 1 ai  ci Pi 1
MÉTODO TDMA (Tridiagonal matrix algorithm) ou 
algoritmo de Thomas

Para o elemento “1” não existe o elemento “i-1” então “c1=0”, e resulta da eq.(1):

a1 x1  b1 x2  c1 x0  d1  a1 x1  b1 x2  d1

Logo, as equações (5) e (6) para i=1 resultam:

b1 d1
P1  (7) Q1  (8)
a1 a1

Para o elemento “n” não existe “n+1” então “Pn=0”, logo, a eq. (2) fica:

xi  Pi xi 1  Qi  xn  0 xn 1  Qn
 Pn

xn  Qn (9)
MÉTODO TDMA (Tridiagonal matrix algorithm) ou 
algoritmo de Thomas

E o algoritmo do TDMA é dado por:

1) Calcular P1 e Q1 com as equações (7) e (8);


2) Calcular Pi e Qi com as equações (5) e (6) para i=2 até n;
3) Calcular “xn” com a equação (9), ou seja, fazer xn=Qn; e
4) Usando a equação (2) achar o valor xi de forma regressiva para i=n-1 até 1.

RESTRIÇÕES

Aplicável somente quando a matriz de coeficientes “A” do sistema Ax=b seja


diagonal dominante.

n
aii   aij
j 1
j i
EXEMPLO DO MÉTODO TDMA

Dado o sistema linear Ax=b:

20 x1  5 x2  1100  20  5 0 0   x1  1100
 5 x1  15 x2  5 x3  100  5 15  5 0   x   100 
 . 2    
 5 x2  15 x3  5 x4  100  0  5 15  5  x3   100 
    
 5 x3  10 x4  100 0 0  5 10   x4   100 
Deixando na forma do algoritmo:

20 0 0 0   x1  0 5 0 0  x1  1100
 0 15 0 0   x  5 0 5 0  x2   100 
 . 2    . 
 0 0 15 0   x3  0 5 0 5  x3   100 
       
 0 0 0 10  x4  0 0 5 0  x4   100 
EXEMPLO DO MÉTODO TDMA

20 0 0 0   x1  0 5 0 0  x1  1100
 0 15 0 0   x  5 0 5 0  x2   100 
 . 2    . 
 0 0 15 0   x3  0  
5 0 5 x3  100 

       
 0 0 0 10   x4   0 0 5 0  x4   100 

Montando uma tabela auxiliar e seguindo os passos do algoritmo:


1) Calcular P1 e Q1 com as equações (7) e (8);
2) Calcular Pi e Qi com as equações (5) e (6) para i=2 até n;
3) Calcular “xn” com a equação (9), ou seja, fazer xn=Qn; e
4) Usando a equação (2) achar o valor xi de forma regressiva para i=n-1 até 1.

b1 d1
P1 
a1 (7) Q1 
a1 (8) n cn an bn dn Pn Qn xn

bi d i  ci Qi 1
1 0 20 5 1100 0,25 55 64,26
Pi  (5) Qi  (6)
ai  ci Pi 1 ai  ci Pi 1 2 5 15 5 100 0,364 27,27 37,03
xn  Qn (9) 3 5 15 5 100 0,379 17,93 26,80
4 5 10 0 100 0 23,40 23,40
xi  Pi xi 1  Qi (2)

Vous aimerez peut-être aussi