Mtodos Iterativos de Soluo de SEAL RCP

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 26

Solução Aproximada de

Sistemas de Equações
Algébricas Lineares via
Métodos Iterativos
Motivação
 Em certos casos, métodos diretos não são
eficientes, por exemplo, quando a matriz de
coeficientes é uma matriz esparsa (muitos
elementos iguais a zero)
 Métodos iterativos são mais adequados no que
tange a memória dos computadores
 Podem ser usados para reduzir os erros de
arredondamento na solução obtida por métodos
exatos (Métodos Diretos!...)
 Em alguns casos podem ser aplicados para
resolver conjuntos de equações não-lineares
 Um método é iterativo quando fornece
uma sequência de aproximações da
solução
 Cada uma das aproximações é obtida a
partir das anteriores pela repetição do
mesmo processo
 Precisa-se saber se a sequência obtida
está convergindo ou não para a solução
desejada.
Convergência
 Dados uma sequência de vetores x(k) ∈ E

 Uma norma sobre E, onde E é um espaço


vetorial

 Dizemos que a sequência {x(k)} converge para x


∈ E se ||x(k) – x||∞ → 0, quando k → ∞.
 Para determinar a solução de um sistema
linear através de métodos iterativos,
precisa-se transformar o sistema atual em
um outro sistema onde possa ser definido
um processo iterativo
 A solução obtida para o sistema
transformado deve ser também a solução
do sistema original (sistemas lineares
devem ser equivalentes)
 Assim um sistema do tipo A x = y é
transformado em x(k) =F x(k-1) + d
 Escolhemos uma aproximação inicial x0
 Assim, x(1) =F x(0) + d
 X(2) = F x(1) + d
 E assim sucessivamente
Método de Jacobi
 Iterativamente, reescreve-se o sistema

x1
( k +1)
=
1
a 11
(
b1 − a 12 x 2
(k )
− a 13 x 3
(k )
− ...... − a 1 n x n
(k )
)
x2
( k +1)
=
1
a 22
(
b 2 − a 21 x 1
(k )
− a 23 x 3
(k )
− ...... − a 2 n x n
(k )
)
.......... .......... .......... .......... .......... .......

xn
( k +1)
=
1
a nn
( (k )
b n − a n1 x 1 − a n 2 x 2
(k )
− ...... − a n , n −1 x n −1
(k )
)
Método de Jacobi
 Desta forma
 0 − a12 / a11 ...... − a1 n / a11 
 
 − a 21 / a 22 0 ....... − a 2 n / a 22 
F =
........ ......... ....... ......... 
 
− a /a − a n 2 / a nn ....... 0 
 n1 nn 

 b1 / a11 
 
 b2 / a22 
d =
....... 
 
 bn / ann 
Quando Parar?
Se a sequência x(k) estiver suficientemente
próximo de x(k-1) paramos o processo
 Dada uma precisão ε, quando
||x(k) – x|| < ε
Então x(k) é a solução do sistema linear

 Computacionalmente, um número máximo


de iterações também é critério de parada
10 x1 + 2 x 2 + x3 = 7
 Exemplo:
1 x1 + 5 x 2 + x3 = −8
 0.7  2 x1 + 3 x 2 + 10 x3 = 6
 
x (0) =  − 1.6 
 0.6 
 Seja   com ε = 0.05. Portanto,
 0 − 2 / 10 − 1 / 10   7 / 10   0.7 
     
F =  −1/ 5 0 −1/ 5  d =  − 8 / 5  =  − 1.6 
 − 1 / 5 − 3 / 10  6 / 10   0.6 
 0     
 Substituindo
(1) ( 0) (0)
x1 = −0.2 x 2 − 0.1 x3 + 0.7 = −0.2 (−1.6) − 0.1 (0.6) + 0.7 = 0.96
(1) ( 0) ( 0)
x2 = −0.2 x1 − 0.2 x3 − 1.6 = −0.2 (0.7) − 0.2 (0.6) − 1.6 = −1.86
(1) ( 0) ( 0)
x3 = −0.2 x1 − 0.3 x 2 + 0.6 = −0.2 (0.7) − 0.3 (−1.6) + 0.6 = 0.94

 Segue d1(1) = x1(1) − x1(0) = 0.26 > 0.05


 0.96 
 
x (1) =  − 1.86  d 2(1) = x 2(1) − x 2(0) = 0.26 > 0.05
 0.94 
  d 3(1) = x3(1) − x3(0) = 0.34 > 0.05
 0.978 
( 2)
 
 Continuando x =  − 1.98  com
 0.966 
 
d ( 2) = MAX xi(2 ) − xi(1) = 0.12 > ε
1≤i ≤ n

Segue  0.999  é a solução, pois



( 3)
 
x =  − 1.999 
 0.998 
 

 d ( 3) = MAX xi(3) − xi( 2) = 0.032 < ε critério de parada


1≤ i ≤ n
Sistemas de Equações Lineares

Método de Gauss-Seidel

 Conhecido x(0) (aproximação inicial) obtém-se x(1),


x(2), ...x(k).

 Ao se calcular x kj +1 usa-se todos os valores


k +1 k +1
x1 ,..., x j −1 que já foram calculados e os valores
k k
x j +1 ,..., xn restantes.
Métodos Iterativos – Gauss-Seidel
Descrição do Método
 Seja o seguinte sistema de equações:
a 11 .x 1 + a 12 .x 2 + a 13 .x 3 + ... + a 1n −1 .x n −1 + a 1n −1 .x n = b1

a 21 .x 1 + a 22 .x 2 + a 23 .x 3 + ... + a 2n −1 .x n −1 + a 2n −1 .x n = b 2

a 31 .x 1 + a 32 .x 2 + a 33 .x 3 + ... + a 3n −1 .x n −1 + a 3n −1 .x n = b 3

M
a n 1 .x 1 + a n 2 .x 2 + a n 3 .x 3 + ... + a n 1n −1 .x n −1 + a nn .x n = b n
Métodos Iterativos – Gauss-Seidel
 Isolando xi a partir da linha i, tem-
se:
1
x1 = (b 1 − a 12 . x 2 − a 13 . x 3 − a 1 n − 1 . x n − 1 − a 1 n . x n )
a 11

1
x 2 = (b 2 − a 21 .x 1 − a 23 .x 3 − a 2n − 1 .x n −1 − a 2n .x n )
a 22

1
x3 = (b 3 − a 31 .x 2 − a 32 .x 2 − a 3n − 1 .x n −1 − a 3n .x n )
a 33

M
1
x n = (b n − a n1 .x 1 − a n2 .x 2 − ... − a nn − 1 .x n −1 )
a nn
Métodos Iterativos – Gauss-Seidel
 O processo iterativo é obtido a partir das equações, fazendo:

1
xk +1
1 =
a11
(
b1 − a12 .x 2k − a13 .x3k − ... − a1,n −1 .x nk−1 − a1n .x nk )

1
x k +1
2 =
a 22
(
b2 − a 21 .x1k +1 − a 23 .x 3k − ... − a 2 ,n −1 .x nk−1 − a 2 n .x nk )

1
x 3k +1 =
a 33
(
b3 − a 31 .x1k +1 − a 32 .x 2k +1 − ... − a 3,n −1 .x nk−1 − a 3 n .x nk )

1
x nk +1 =
a nn
(
bn − a n1 .x1k +1 − a n 2 .x 2k +1 − ... − a n ,n −1 .x nk−+11 )
Métodos Iterativos – Gauss-Seidel
Critério de Parada
 Diferença relativa entre duas iterações consecutivas.
 Define-se por diferença relativa a expressão:
 xik +1 − xik
 se xik +1 ≠ 0
 Máx. xik +1
 1≤i≤n

M Rk +1 = 
0 se xik +1 = xik = 0

  xik +1 = 0
 1 se  k
  xi ≠ 0

Fim do processo iterativo


Métodos Iterativos – Gauss-Seidel

Exemplo: Resolva: 5x + y + z = 5
3x + 4 y + z = 6
3x + 3 y + 6 z = 0
Solução:
com M Rk ≤ 5 . 10 − 2.
1
x= (5 − y − z )
5
1
y = (6 − 3 x − z )
4
1 1
z = − (3 x + 3 y )  z = − (x + y )
6 2
Métodos Iterativos – Gauss-Seidel
k
xk M x yk M k
y zk M k
z M k
R

-1 - 0 - 1 - -
0,8 2,25 0,65 1 -0,725 2,379 2,379
1,015 0,212 0,92 0,293 -0,967 0,250 0,293
1,009 0,006 0,985 0,066 -0,997 0,030 0,066
1,002 0,007 0,998 0,0013 -1 0,003 0,0013

x = 1,002 y = 0,998 z = -1

Verificação (substituição no sistema):


5.(1,002) + (0,998) + (-1) = 5,008 ≅ 5 ok
3.(1,002) + 4.(0,998) + (-1) = 5,998 ≅ 6 ok
3.(1,002) + 3.(0,998) + 6.(-1) = 0 ok
Método de Gauss-Seidel -
Critérios de Convergência
 Processo iterativo  a convergência para a solução
exata não é garantida para qualquer sistema.

 Existem certas condições que devem ser satisfeitas


por um sistema de equações lineares para se
garantir a convergência do método.

 As condições podem ser determinadas por dois


critérios:
 Critério de Sassenfeld
 Critério das Linhas.
Método de Gauss-Seidel -
Critério de Sassenfeld
 Sejam as quantidades βi dadas por:

1 n  i −1 n 
⋅  a1 j
1
β1 = e βi =
aii

⋅  ( aij ⋅ β j ) +
 j =1
 aij 

a11 j = 2  j =i +1 

para i = 2, 3, ..., n.
n - ordem do sistema linear que se deseja resolver
aij - são os coeficientes das equações que compõem o sistema.

 Este critério garante que o método de Gauss-Seidel convergirá


para um dado sistema linear se a quantidade M, definida por:

M = max β i for menor que 1 (M<1).


1≤i ≤ n
Método de Gauss-Seidel -
Critério de Sassenfeld
 Exemplo: Seja A, a matriz dos coeficientes e b o
vetor dos termos constantes dados por:
1
β1 = ⋅ (| a12 + | a13 | + | a14 )
a11
a11 a12 a13 a14 b1
1
a21 a 22 a 23 a 24 b2 β2 = ⋅ ( a21 β1 + a23 + a24 )
a22
a31 a32 a33 a34 b3
1
a41 a 42 a 43 a 44 b4 β3 = ⋅ ( a31 β1 + a32 β 2 + a34 )
a33
1
β4 = ⋅ ( a41 β1 + a42 β 2 + a43 β 3 )
a44
Método de Gauss-Seidel -
Critério de Sassenfeld
Exemplo: Mostre que a solução do sistema
linear dado pelas equações:
2 ⋅ x1 + x2 − 0.2 ⋅ x3 + 0.2 ⋅ x4 = 0.4
0.6 ⋅ x1 + 3 ⋅ x2 − 0.6 ⋅ x3 − 0.3 ⋅ x4 = −7.8
− 0.1 ⋅ x1 − 0.2 ⋅ x2 + x3 + 0.2 ⋅ x4 = 1.0
0.4 ⋅ x1 + 1.2 ⋅ x2 + 0.8 ⋅ x3 + 4 ⋅ x4 = −10.0

convergirá pelo método de Gauss-Seidel.


Método de Gauss-Seidel -
Critério de Sassenfeld
 Solução: critério de Sassenfeld A B
 calcular os valores das quantidades βi.
1
β1 = ⋅ (1 + 0.2 + 0.2) = 0.7
2 2.0 1.0 - 0.2 0.2 0.4
1 0.6 3.0 - 0.6 - 0.3 - 7.8
β 2 = ⋅ (0.6 ⋅ 0.7 + 0.6 + 0.3) = 0.44 - 0.1 - 0.2 1.0 0.2 1.0
3
0.4 1.2 0.8 4.0 - 10.0
1
β 3 = ⋅ (0.1 ⋅ 0.7 + 0.2 ⋅ 0.44 + 0.2) = 0.358
1
1
β 4 = ⋅ (0.4 ⋅ 0.7 + 1.2 ⋅ 0.44 + 0.8 ⋅ 0.358) = 0.2736
4
M é menor que 1  a solução
M = max β i = 0.7 desse sistema irá convergir usando
1≤i ≤ 4 o método de Gauss-Seidel.
Método de Gauss-Seidel -
Critério das Linhas
 Segundo esse critério, um determinado sistema irá
convergir pelo método de Gauss-Seidel, se:
n

a
j =1
ij < a ii , para i=1, 2, 3, ..., n.
j ≠i
Método de Gauss-Seidel -
Critério das Linhas
Exemplo: O sistema do exemplo anterior satisfaz o
critério das linhas e essa verificação pode ser feita
de maneira quase imediata, observando-se que:
2 ⋅ x1 + x2 − 0.2 ⋅ x3 + 0.2 ⋅ x4 = 0.4
0.6 ⋅ x1 + 3 ⋅ x2 − 0.6 ⋅ x3 − 0.3 ⋅ x4 = −7.8
− 0.1⋅ x1 − 0.2 ⋅ x2 + x3 + 0.2 ⋅ x4 = 1.0
0.4 ⋅ x1 + 1.2 ⋅ x2 + 0.8 ⋅ x3 + 4 ⋅ x4 = −10.0

a11 = 2 > a12 + a13 + a14 = 1 + 0.2 + 0.2 = 1.4 n

a 22 = 3 > a 21 + a 23 + a 24 = 0.6 + 0.6 + 0.3 = 1.5


a
j =1
ij < a ii
j ≠i
a33 = 1 > a31 + a32 + a34 = 0.1 + 0.2 + 0.2 = 0.5
para i=1, 2, 3, 4.
a 44 = 4 > a 41 + a 42 + a 43 = 0.4 + 1.2 + 0.8 = 2.4

Você também pode gostar