Upload
vuongkhanh
View
214
Download
0
Embed Size (px)
Citation preview
1
CCáálculo Numlculo Numééricorico
Resolução Numérica deSistemas Lineares – Parte
II
Prof. Jorge Cavalcanti – [email protected]
MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ufcg.edu.br/~cnum/
2
� É bastante comum encontrar sistemas lineares que envolvem uma grande porcentagem de coeficientes nulos.
� Esses sistemas são chamados de sistemas esparsos.
� Para esses tipos de sistemas, o método de Eliminação de Gauss não é o mais apropriado, pois ele não preserva essa esparsidade, que pode ser útil por facilitar a resolução do sistema.
� Maneira mais apropriado para esse tipo de sistema ⇒métodos iterativos
Sistemas Lineares – Métodos Iterativos
3
� Consistem em encontrar uma seqüência de estimativas xik(dada uma estimativa inicial xi0) que após um número suficientemente grande de iterações convirja para a solução do sistema de equações.
Métodos Iterativos
nnnn x x x x
x x x x
x x x x
x x x x
x x x x
210
424
14
04
323
13
03
222
12
02
121
11
01
MMMM
→→→
4
� Outra vantagem destes métodos ⇒ não são tão suscetíveis ao acúmulo de erros de arredondamento como o método de Eliminação de Gauss.
� É importante lembrar que:
� Como todo processo iterativo, estes métodos sempre apresentarão um resultado aproximado, que será tão próximo do resultado real conforme o número de iterações realizadas.
� Além disso, também é preciso ter cuidado com a convergência desses métodos.
Métodos Iterativos
5
� Transforma o sistema linear Ax=b em x=Cx+g� A: matriz dos coeficientes, n x m� x: vetor das variáveis, n x 1;� b: vetor dos termos constantes, n x 1.
� Métodos utilizados:�Gauss-Jacobi�Gauss-Seidel
� C: matriz n x n
� g: vetor n x 1
Métodos Iterativos
6
Método de Gauss-Jacobi� Conhecido x(0) (aproximação inicial) obtém-se consecutivamente os vetores:
etc. o),aproximaçã (segunda gCxx
o)aproximaçã (primeira gCxx
,
,)1()2(
)0()1(
+=+=
� De um modo geral, a aproximação x(k+1) é calculada pela fórmula:
x(k+1) = C x(k)+g, k=0, 1, ...
� São geradas novas aproximações até que um dos critérios de parada seja satisfeito:
• Máx xi(k+1) - xi(k) ≤ εεεε (Tolerância), com 1 ≤i ≤n, ou:• k > M, com M=Número máximo de iterações
7
Método de Gauss-Jacobi
� Da primeira equação do sistema
a11 x1 + a12 x2 + ... +a1n x2 = b1
obtém-se x1 = b1 - ( a12 x2 + a13 x3 ... +a1n xn)
a11
analogamente x2 = b2 – (a21 x1 + a23 x3 + ... + a2n xn)
a22
Ou: xn = (1/ann) (bn - an1 x1 - ... - an,n-1 xn-1 )
8
Método de Gauss-Jacobi
� Desta forma para x = C x + g
0 - a12 /a11 ... - a1n /a11- a21 /a22 0 ... - a2n /a22
. . .
- an1 /ann - an2 /ann 0
C =
g = (b1 /a11 b2 /a22 . . . bn /ann ) T
xn = (1/ann) (bn - an1 x1 - ... - an,n-1 xn-1 )
9
Método de Gauss-Jacobi
� Então como x = C x + g
g = (b1 /a11 b2 /a22 . . . bn /ann ) T
- a21 /a22 0 ... - a2n /a22. . .
- an1 /ann - an2 /ann 0
C = 0 - a12 /a11 ... - a1n /a11
x1(k+1) = (1/a11)(b1 - a12 x2(k) - ... -a1nxn(k))
x2(k+1) = (1/a22)(b2 - a21 x1(k) - ... -a2n xn(k))
...xn(k+1) = (1/ann)(bn - an1 x1(k) - .. - an,n-1 xn-1(k))
x =
10
Método de Gauss-Jacobi – EXEMPLO 1
� Seja o sistema 10 x1 + 2x2 + 3x3 = 7
x1 + 5x2 + x3 = -8
2x1 + 3x2 + 10x3 = 6
C =
0 - 2/10 - 1/10
-1/5 0 - 1/5
-1/5 – 3/10 0g =
7/10
-8/5
6/10
- a21 /a22 0 ... - a2n /a22. . .
- an1 /ann - an2 /ann 0
C = 0 - a12 /a11 ... - a1n /a11
e εεεε = 0,05
11
Método de Gauss-Jacobi – EXEMPLO 1
x1(k+1) = (1/a11)(b1 - a12 x2(k) - ... -a1nxn(k))
x2(k+1) = (1/a22)(b2 - a21 x1(k) - ... -a2n xn(k))
...xn(k+1) = (1/ann)(bn - an1 x1(k) - .. - an,n-1 xn-1(k))
x1(k+1) = (1/10)(7 - 2x2(k) –x3(k)) =(0x1(k) – 0.2x2(k) –0.1x3(k) +0,7)
x2(k+1) = (1/5)(-8 - x1(k) –x3(k)) =(-0.2x1(k) – 0x2(k) –0.2x3(k) – 1.6)
x3(k+1) = (1/10)(6 - 2x1(k) -3x2(k) =(-0.2x1(k) – 0.3x2(k) –0x3(k)+ 0.6)
� O Processo iterativo é:
Equações de Iteração
12
Método de Gauss-Jacobi – EXEMPLO 1
Com x0 = 0,7
-1,6
0,6
x1(k+1) = 0x1(k) – 0.2x2(k) –0.1x3(k) +0,7 = -0.2(-1.6)-0.1(0.6)+0,7=0.96
x2(k+1) = -0.2x1(k) – 0x2(k) –0.2x3(k) – 1.6 = -0.2(0.7)-0.2(0.6)-1.6=-1.86
x3(k+1) =-0.2x1(k) – 0.3x2(k) –0x3(k) – 0.6=-0.2(0.7)-0.3(-1.6)+0.6=0.94
Para k=0:
Obs: X0 estimado por (bn/ann), muito embora possa ser adotado qualquer valor inicial, como por exemplo x0 = [0 0 0]T
Obtemos então: x(1) = Cx(0) + g =
0,96
-1,86
0,94
13
Método de Gauss-Jacobi – EXEMPLO 1
Avaliando o critério de parada para εεεε = 0,05 :
|x1(1) – x1(0)| = 0,26|x2(1) – x2(0)| = 0,26
|x3(1) – x3(0)| = 0,34
Máx xi(k+1) - xi(k) = 0,34 > εεεε
• Máx xi(k+1) - xi(k) ≤ εεεε (Tolerância), com 1 ≤i ≤n, ou:
x1(2) = 0x1(1) – 0.2x2(1) –0.1x3(1) +0,7 = -0.2(-1.86)-0.1(0.94)+0,7=0.978
x2(2) = -0.2x1(1) – 0x2(1) –0.2x3(1) – 1.6 = -0.2(0.96)-0.2(0.94)-1.6=-1.98
x3(2) =-0.2x1(1) – 0.3x2(1) –0x3(1) – 0.6=-0.2(0.96)-0.3(-1.86)+0.6=0.966
Prosseguindo com as iterações, para k=1:
x(1) = Cx(0) + g = 0,96
-1,86
0,94
14
Método de Gauss-Jacobi – EXEMPLO 1
x(2) =
0,978
-1,98
0,966
x(3) =
0,9997
-1,9888
0,984
|x1(2) – x1(1)| = 0,018|x2(2) – x2(1)| = 0,12
|x3(2) – x3(1)| = 0,026
Máx xi(k+1) - xi(k) = 0,12 > εεεε
|x1(3) – x1(2)| = 0,0021|x2(3) – x2(3)| = 0,008
|x3(3) – x3(2)| = 0,018
Máx xi(k+1) - xi(k) = 0,018 < εεεε
Para k=2:
x* =
0,9997
-1,9888
0,984
15
Método de Gauss-Jacobi – Resumindo:1. Escolhe-se a aproximação inicial x(0):
• x(0) = [x1(0), x2(0), ..., xn(0)]T
2. Calculam-se as aproximações sucessivas x(k), a partir da iteração:
• x(k+1) = Cx(k) + g
3. Continua-se a gerar aproximações até que um dos critérios de parada seja satisfeito:
• Máx xi(k+1) - xi(k) ≤ εεεε (Tolerância), com 1 ≤i ≤n, ou:
• K > M, com M=Número máximo de iterações
• Observar que os elementos do sistema original aii ≠≠≠≠ 0, ∀∀∀∀i. Caso isso não ocorra, deve-se reorganizar as equações para que se consiga essa condição.
• É importante também que na diagonal principal estejam os maiores valores absolutos, para acelerar o processo de convergência e dar mais precisão ao resultado final.
16
Método de Gauss-Jacobi – EXEMPLO 2
� Resolver o sistema abaixo, com εεεε ≤ 10-2 ou k >10:
2x1 - x2 = 1
x1 + 2x2 = 3
� Encontrando as equações de iteração:
� 2x1 = 1+x2 ⇒ x1 = ½(1+x2)
� 2x2 = 3-x1 ⇒ x2 = ½(3 - x1)
� Então:
� x1(k+1) = ½(1+x2(k))
� x2(k+1) = ½(3-x1(k)), k= 0, 1, 2, ….n
17
Método de Gauss-Jacobi – EXEMPLO 2
� Fazendo x(0) = [ 0 0 ]T como solução inicial:
� Então, para k=0:
� x1(k+1) = ½(1+x2(k))
x1(1) = ½(1+x2(0)) = ½(1 + 0) = 0,5
� x2(k+1) = ½(3-x1(k))
x2(1) = ½(3-x1(0)) = ½(3 - 0) = 1,5
� Para k=1:
� x1(2) = ½(1+x2(1)) = ½(1 + 1,5) = 1,25
� x2(2) = ½(3-x1(1)) = ½(3 – 0,5) = 1,25
ε = Máx xi(k+1) - xi(k) ≤ εεεε = |1,25 – 0,5| = 0,75 > 10-2
18
Método de Gauss-Jacobi – EXEMPLO 2
� Para k=2:
� x1(3) = ½(1+x2(2))
x1(3) = ½(1 + 1,25) = 1,125
� x2(3) = ½(3-x1(2))
x2(3) = ½(3-x1(2)) = ½(3 – 1,25) = 0,875
ε = | 0,875 - 1,25 | = 0,375 > 10-2
19
Método de Gauss-Jacobi - EXEMPLO
0,0061,0020,9989
0,0120,9960,9968
0,0230,9921,0087
0,0471,0161,0166
0,0941,0310,9695
0,1880,9380,9384
0,3750,8751,1253
0,7501,2501,2502
1,5001,5000,5001
-000
εX2(k)x1(k)k
� Prosseguindo com as iterações para k=3, 4…:
0,06 ≤ 10-2
Ou k > 10?
Então pare!
x1 = 0,998
x2 = 1,002
x = 0,998
1,002
20
Método de Gauss-Seidel
� Conhecido x(0) (aproximação inicial) obtém-se x1, x2, ...xk.
� Ao se calcular usa-se todos os valores
que já foram calculados e os
valores restantes.
1+kjx
11
11
+−
+ kj
k xx ,...,kn
kj xx ,...,1+
Sistemas de Equações Lineares
21
Descrição do Método
� Seja o seguinte sistema de equações:
nnnnnnnnnn
nnnn
nnnn
nnnn
bxaxaxaxaxa
bxaxaxaxaxa
bxaxaxaxaxa
bxaxaxaxaxa
. . ... . . .
. . ... . . .
. . ... . . .
. . ... . . .
=+++++
=+++++
=+++++
=+++++
−−
−−−
−−−
−−−
11321
313113333232131
212112323222121
111111313212111
1321
M
Métodos Iterativos – Gauss Seidel
22
� Isolando xi a partir da linha i, tem-se:
( )
( )
( )
( )1121
3113232231333
3
2112323121222
2
1111313212111
1
21
1
1
1
1
−−
−−
−−
−−
−−−−=
−−−−=
−−−−=
−−−−=
nnnnnnnn
n
nnnn
nnnn
nnnn
xaxaxaba
x
xaxaxaxaba
x
xaxaxaxaba
x
xaxaxaxaba
x
......
....
....
....
,
,
,
,
M
Métodos Iterativos – Gauss Seidel
23
� O processo iterativo é obtido a partir das equações, fazendo:
( )
( )
( )
( )111,
122
111
1
311,31
2321
131333
13
211,23231
121222
12
111,1313212111
11
......1
.......1
.......1
.......1
+−−
+++
−−+++
−−++
−−+
−−−−=
−−−−−=
−−−−−=
−−−−−=
knnn
kn
knn
nn
kn
knn
knn
kkk
knn
knn
kkk
knn
knn
kkk
xaxaxaba
x
xaxaxaxaba
x
xaxaxaxaba
x
xaxaxaxaba
x
Métodos Iterativos – Gauss Seidel
24
Critério de Parada
�Diferença relativa entre duas iterações consecutivas.
�Define-se por diferença relativa a expressão:
�Fim do processo iterativo - valor de dRk+1pequeno o bastante para a precisão desejada.
)(
|)(|
|,|
RelativaDiferençaki
Xmáx
kd1k
Máxk
r
ki
1ki
d
ni1xxd
====++++
==== ≤≤≤≤≤≤≤≤−−−−++++
Métodos Iterativos – Gauss Seidel
25
Ex.: Resolva:
.. 2kR 105 D com
0z6y3x3
6zy4x3
5zyx5
−−−−≤≤≤≤
====++++++++====++++++++
====++++++++
(((( ))))
(((( ))))
(((( )))) (((( ))))yx2
1zy3x3
6
1z
zx364
1y
zy55
1x
++++−−−−====⇒⇒⇒⇒++++−−−−====
−−−−−−−−====
−−−−−−−−====
Solução:
Métodos Iterativos – Gauss Seidel
26
kx kxD
ky kyD
kz kzD
kRD
-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 ok3.(1,002) + 4.(0,998) + (-1) = 5,998 ≅ 6 ok3.(1,002) + 3.(0,998) + 6.(-1) = 0 ok
Métodos Iterativos – Gauss Seidel
27
Método de Gauss-SeidelCrité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.
28
Critério de Sassenfeld
� Sejam as quantidades βi dadas por:
para i = 2, 3, ..., n.
∑=
⋅=n
jja
a 21
111
1β
+⋅⋅= ∑∑
+=
−
=
n
ijij
i
jjij
iii aa
a 1
1
1
1 ββe
n - ordem do sistema linear que se deseja resolveraij - 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:
ini
M βmax1 ≤≤
= for menor que 1 (M<1).
29
� Exemplo: Seja A, a matriz dos coeficientes e bo vetor dos termos constantes dados por:
444434241
334333231
224232221
114131211
baaaa
baaaa
baaaa
baaaa
( )
( )
( )
( )34324214144
4
3423213133
3
242312122
2
14131211
1
1
1
1
1
ββββ
βββ
ββ
β
aaaa
aaaa
aaaa
aaaa
++⋅=
++⋅=
++⋅=
++⋅=
Critério de Sassenfeld
30
Exemplo: Mostre se a solução do sistema linear dado pelas equações:
0104802140
01202010
873060360
4020202
4321
4321
4321
4321
....
....
....
...
−=⋅+⋅+⋅+⋅=⋅++⋅−⋅−
−=⋅−⋅−⋅+⋅=⋅+⋅−+⋅
xxxx
xxxx
xxxx
xxxx
convergirá pelo método de Gauss-Seidel.
Critério de Sassenfeld
31
� Solução: critério de Sassenfeld� Calcular os valores das quantidades βi.
( )
( )
( )
( ) 2736.0358.08.044.02.17.04.04
1
358.02.044.02.07.01.01
1
44.03.06.07.06.03
1
7.02.02.012
1
4
3
2
1
=⋅+⋅+⋅⋅=
=+⋅+⋅⋅=
=++⋅⋅=
=++⋅=
β
β
β
β
7.0max41
==≤≤
ii
M βM é menor que 1 ⇒ a solução desse sistema irá convergir usando o método de Gauss-Seidel.
10.0- 4.0 0.8 1.2 0.4
1.0 0.2 1.0 0.2- 0.1-
7.8- 0.3- 0.6- 3.0 0.6
0.4 0.2 0.2- 1.0 2.0
A B
Critério de Sassenfeld
32
Critério das Linhas
� Segundo esse critério, um determinado sistema irá convergir pelo método de Gauss-Seidel, se:
ii
n
ijj
ij aa <∑≠=1
, para i=1, 2, 3, ..., n.
33
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:
4.28.02.14.04
5.02.02.01.01
5.13.06.06.03
4.12.02.012
43424144
34323133
24232122
14131211
=++=++>=
=++=++>=
=++=++>=
=++=++>=
aaaa
aaaa
aaaa
aaaa
0104802140
01202010
873060360
4020202
4321
4321
4321
4321
....
....
....
...
−=⋅+⋅+⋅+⋅=⋅++⋅−⋅−
−=⋅−⋅−⋅+⋅=⋅+⋅−+⋅
xxxx
xxxx
xxxx
xxxx
ii
n
ijj
ij aa <∑≠=1
para i=1, 2, 3, 4.
Critério das Linhas
34
É importante saber que:
� A convergência de um sistema INDEPENDE dos valores iniciais estimados.
� Os Critérios são condições suficientes, porém não necessárias, para a convergência do método de Gauss-Seidel para um dado sistema linear ⇒ Isso significa que um sistema pode não satisfazer esses critérios e ainda convergir.
� Um sistema pode não satisfazer o critério das linhas e satisfazer o critério de Sassenfeld, o que garantirásua convergência.
Considerações Finais
35
Exemplo: Seja o sistema:
18x2x6
23xx10
21
21
====++++====++++
Note que esse sistema não satisfaz o critério das linhas, pois:
62 2122 =<= aa
porém, ele satisfaz o critério de Sassenfeld:
( ) 3.01.062
1
1.0110
1
2
1
=⋅⋅=
=⋅=
β
β 13.0max41
<==≤≤
ii
M β
⇒ Convergência garantida.
Considerações Finais
36
Outra observação importante
�A ordem com que as equações aparecem no sistema pode ser alterada para se avaliar a convergência.
�Apesar da ordem das equações não alterar a solução do sistema, ela pode alterar a convergência do mesmo pelo método da Gauss-Seidel.
Considerações Finais
37
Exemplo: Seja o sistema:
15x3x5
19x10x4
21
21
====++++====++++−−−−
� Na forma como o sistema está representado, ele não satisfaz o critério das linhas (verifique isso), portanto sua convergência não é garantida.
� Porém, trocando-se a ordem das duas equações, o sistema satisfaz esse critério, e sua convergência pelo método de Gauss-Seidel é garantida (verifique isso também).
Considerações Finais