Gauss-Seidel

Transcrição

Gauss-Seidel
1.7.2- Método de Gauss- Seidel
Suponhamos D = I, como foi feito para o método de Jacobi-Richardson.
Transformamos o sistema linear Ax = b como se segue:
(L* + I + R*)x = b*
(L* + I)x = - R*x + b*
x = - (L* + I)-1 R* x + (L* + I)-1 b*
O processo iterativo definido por:
X(k + 1) = - ( L* + I)-1 R* x(k) + (L* + I)-1b*
é chamado de Gauss-Seidel.
Explicitando as componentes, usando para isso a equaç ão do processo na forma:
(L* + I) x(k + 1) = - R*x(k) + b*
ou
X(k+1) = - L* x(k+1) – R* x(k) + b*
Resulta que o método de Gauss-Seidel consiste na determinação de uma sequência de
aproximantes de índice k
x1( k ) , x(2k ) , . . . , x(nk ) , k = 1, 2, 3, . . .
a partir de valores iniciais
x(10 ) , x(2o ) , . . . , x (no )
através do processo iterativo definido por:
∗
x1( k +1 ) = 0 - a 12
x (2k ) - . . . - a 1∗n x (nk ) + b1∗
x(2k +1) = - a ∗21 x 1( k +1 ) − 0 - a ∗23 x (3k ) - . . . - a ∗2(nk ) x (nk ) + b ∗2
x(3k +1 ) = - a ∗31 x (1k +1) - a ∗32 x (2k +1) − 0 - . . . - a ∗3 n x (nk ) + b ∗3
. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .
x(nk + 1 ) = - a ∗ni x 1(k +1) - a ∗n 2 x (2k +1) − a ∗n 3 x (3k +1) . .. − 0 + b ∗n .
34
Vemos por estas equações que as componentes de x(k+1) são calculadas
sucessivamente sem necessidade de se calcular ( L* + I)-1 .
Esse método difere do de Jacobi-Richardson por utilizarmos para o cálculo de uma
componente de x(k + 1) o valor mais recente das demais componentes.
1.7.2- Critério de convergência.
a) O Critério de Sassenfeld:
Aplicando o critério geral de convergência, calculemos:
B
∞
= ( L * + I) −1 R *
Recordemos que: B
∞
∞
= min k .
Portanto se k satisfazer a desigualdade Bx
Seja y = Bx
∞
≤ k x
∴ y = - (L* + I )-1 R*x
(L* + I)y = - R*x
ou
y = - L*y – R*x.
Assim o vetor y é obtido de x a partir das equações:



(I) 



Calculemos y
∞
y1 = 0 − a ∗12 x 2 − a ∗13 x 3 − L − a ∗1n x n
y 2 = − a ∗21 y 1 −0−a ∗23 x 3 − L − a ∗2 n x n
y 3 = − a ∗31 y 1 − a ∗31 y 2 − 0 − L − a ∗3n x n
M
y n = − a y 1 − a y 2 − a ∗n 3 y 3 − L − 0
∗
n1
∗
n2
Bx ∞ como y
=
yi
= max
∞
i
A partir das equações (I) conseguimos as seguintes majorações:
n
y1 =
∑ a *1j x j ≤
j=2
= β1 x
∞
n
∑
j= 2
n
∑a
a*1 j a j ≤
onde β 1 =
j= 2
n
∑a
j= 2
35
*
1j
*
1j
max x j
j
∞
teremos B ∞ ≤ k.
≤ β1 x
∴ y1
∞
n
∑a
*
= a 21y 1 +
y2
*
2j
j=3
x j ≤ a *21 β 1 x
n
∞
+ ∑ a *2 j x j
j= 3
n
≤ a *21 β 1 x
+ ∑ a *2 j max x j =
∞
j =3
n
*
= a 21 β 1 x
+ ∑ a *2 j x
∞
j= 3
n
= ( a *21 β 1 + ∑ a *2 j ) x
j= 3
∞
=
∞
= β2 x
∞
n
β 2 = ( a *21 β1 + ∑ a *2 j )
onde
j= 3
∴ y 2 ≤ β2 x ∞
Analogamente, obtemos:
yi ≤
≤
i− 1
∑a
j =1
βj x
*
ij
∞
i −1
∑ a *ij β j x
∑a
j= 1
i −1
j=1
onde B
∞
∞
xj ≤
*
ij
max x j
n
∑a
j= i + 1
j=i +1
*
ij
) x
∞
j
= βi x
∞
n
∑a
j= i +1
∴ y i ≤ βi x
Portanto: Bx
*
ij
n
= ( ∑ a *ij β j +
*
onde β i = ( ∑ a ij β j +
n
∑a
j= i + 1
+
∞
j= 1
i −1
+
= y
*
ij
∞
∞
)
.
= max y i ≤ max β i x
i
i
≤ max β i .
i
Podemos enunciar agora o Critério de Sassenfeld:
“O método de Gauss-Seidel converge se:
max β i < 1
i
onde os β i são calculados por recorrência através de:
βi =
i −1
∑
j= 1
a *ij β j +
n
∑a
j= i + 1
*
ij
.”
36
∞
b) Critério das linhas
“O método de Gauss-Seidel converge se o critério das linhas for satisfeito, isto é, se:
n
max
i
∑a
j =1
j≠i
*
ij
< 1.”
Para provar este critério basta verificar que a condição
n
max
i
implica β i < 1
∑a
j =1
j≠i
*
ij
<1
i = 1, 2, . . ., n.
De fato:
Para i = 1, temos:
n
β1 =
∑a
j=2
*
ij
≤ max ∑ aij* < 1 .
i
j=1
j≠1
Suponhamos β j < 1 para j = 1, 2, . . . , i - 1.
Então
i−1
βi =
∑a
j=1
n
*
ij
βj +
∑a
j =i +1
*
ij
n
≤ ∑ aij* ≤ max
j =1
j≠ 1
i
∑a
j= 1
j≠ 1
*
ij
< 1.
Portanto max β i < 1 e o critério de Sassenfeld é verificado.
Observações:
- Dado um sistema linear Ax=b pode acontecer que o método de jacobi-Richardson
aplicado a ele resulte convergente enquanto que o de Gauss-Seidel resulta divergente
e vice-versa.
- Se B não for apreciavelmente menor que 1 a convergência pode ser bastante lenta.
- A convergência para os métodos: Jacobi-Richardson e Gauss-Seidel não depende do
valor inicial x(0).
- Um permutação conveniente das linhas ou colunas de A antes de dividir cada
equação pelo coeficiente da diagonal principal pode reduzir o valor de B .
37
Exemplo 1.7.2:
Resolver o sistema:
5x1 + x2 + x3 = 5

3x1 + x2 + x3 = 6
3x + x + 6x = 0
 1
2
3
pelo método de Gauss-Seidel com x(0) = (0,0,0)t e ε < 10-2 .
Solução:
Dividindo cada equação pelo correspondente elemento da diagonal principal
obtemos:
x1 + 0.2x2 + 0. 2 x3 = 1
0.75x1 +
x2 + 0. 25x3 = 1.5
0.5 x1 + 0.5x2 +
x3 = 0
Temos:
n
max
i
∑a
j =1
j≠i
*
ij
=1
Portanto, por esse critério não podemos garantir convergência. Mas aplicando o
critério de Sassenfeld, temos:
β 1 = 0.2 + 0.2 = 0.4
β 2 = 0.75 ( 0.4) + 0.25 = 0.3 + 0.25 = 0.55
β 3 = 0.5 ( 0.4) + (0.5) (0.55) = 0.2 + 0.275 = 0.475
∴max βi = 0.55 < 1
i
Logo temos o critério de convergência satisfeito.
Efetuando-se as iterações definidas por:
x1( k +1) = − 0.2 x 2( k ) − 0.2 x3( k ) + 1
x 2( k +1) = − 0.75x1( k +1) − 0.25x 3( k ) + 15
.
x 3( k +1) = − 0.5x1( k +1) − 0.5x 2( k +1)
a partir de x(0) = (0,0,0)t , resultam os seguintes valores:
K
0
1
2
x1
0
1
1.025
x2
0
0.75
0.95
x3
0
-0.875
-0.9875
38
3
1.0075
0.99125
-0.999375
4
1.001625
0.998625
-1.000125
Observações:
- Para ε < 10 -2 temos que a solução do sistema é
x = (1.00 ; 0.99 ; -1.00) t
- A solução exata do sistema proposto é x = (1, 1, -1)t.
1.7.3-
Exercícios:
1.7.3.1) Resolver o sistema:
10x1 + x 2
− x3
= 10

+ 10 x2 + x 3
= 12
 x1
 2x
+ 10x 3 = 11
 1 − x2
pelo método de Jacobi-Richardson com x(0) = (0,0,0)t e ε < 10 -3 .
1.7.3.2) Dado o sistema:
10x1 + x 2
+ x3
= 10

+ 10 x2 + 8 x3 = 20
 x1
 7x
+ 10x 3 = 20
 1 + x2
a) Verificar a possibilidade de aplicação do método iterativo de jacobi-Richardson.
b) Se possível, resolvê-lo pelo método do item a).
1.7.3.3) Dado o sistema:
 4 x1 + 2 x2 + 6 x 3 = 1

 4 x1 − x2 + 3 x3 = 2
 − x + 5x + 3x = 3
 1
2
3
Mostrar que reordenando as equações e incógnitas poderemos fazer com que o
critério de Sassenfeld seja satisfeito, mas não o das linhas.
1.7.3.4) Dado o sistema
 5 x1 + 2 x2 + x 3
=
7

3
 − x1 + 4 x2 + 2 x 3 =
 2 x − 3x
+ 10x 3 = − 1
 1
2
a) Verificar a convergência usando o critério das linhas e o critério de Sassenfeld.
b) Reslover o sistema por:
b.1- Jacobi-Richardson.
b.2- Gauss-Seidel.
Efetuar, em ambos os casos, duas iterações partindo-se d0 vetor x(0) = (-2.4; 5; 0.3) t .
39
1.7.3.5) Calcular u2, u3 , u4 e u5 resolvendo a equação de diferenças
(*) un+2 + un+1 + un = n
com as condições de contorno u1 = 0 e u6 = 1
Observação: Escrever (*) para n = 1, 2, 3 e 4 e resolver o sistema resultante pelo
Método de Gauss-Seidel.
1.7.3.6) Dado o sistema:
 4 1 1  x1   6 

   
 1 6 1  x2  =  8 

   
 2 1 8  x3  11
a) Verificar a convergência usando o critério de Sassenfeld.
b) Resolver pelo Método de Gauss-Seidel ( 3 iterações a partir do vetor nulo).
40