Sunteți pe pagina 1din 46

Mtodos Numricos I

Tema 3. Sistemas de
Equaes Lineares e
Algbricas. Mtodos
Iterativos.
Prof. Dany S. Dominguez
dsdominguez@gmail.br
Sala 1 NBCGIB
(73) 3680 5212 ramal 30

ROTEIRO
Mtodos iterativos
Mtodo de Jacobi
Mtodo de Gauss-Seidel
Mtodos de Relaxamento
Comentrios finais

Mtodos iterativos
Os mtodos iterativos clssicos foram
propostos no final do sculo XVIII
Mtodo de Jacobi
Mtodo de Gauss-Seidel

Caractersticas:
A soluo construda em um processo
iterativo
O numero de operaes no conhecido a
priori
Apresentam erros
arredondamento

de

truncamento

Mtodos iterativos
Quando
devemos
iterativos?

usar

mtodos

Tcnicas iterativas no so apropriadas


para sistemas pequenos,
Nesses casos mtodos diretos so mais
eficientes,
Para
sistemas
grandes
e/ou
caracterizados por matrizes esparzas os
mtodos iterativos so eficientes

Mtodos iterativos
Uma tcnica iterativa para resolver o sistema

Ax b

comea com uma aproximao inicial x(0) para


(k )
a soluo x e gera uma sequncia
x
k 0
que converge para x

Tcnicas iterativas transformam o problema


em( k )
( k 1)
Ax b

Tx

Aps a escolha da aproximao inicial


usamos a frmula iterativa para gerar os x(k)
para k=1,2,3,...

Mtodos iterativos
Elementos de um mtodo iterativo
Aproximao inicialx (0)
Frmula iterativax ( k )
o mtodo)

Tx

( k 1)

(define

Critrio de parada

Aproximao inicial
Imprescindvel para comear o processo iterativo
Em principio, para um mtodo iterativo estvel
qualquer aproximao inicial pode ser utilizada
recomendvel escolher uma aproximao inicial
que reduza o numero de iteraes

Mtodos iterativos
Aproximao inicial . . .
A maioria dos autores recomendam

xi(0)

= bi

ou

xi(0)

bi
aii

Critrio de parada
Necessrio para encerrar as iteraes
Envolve uma tolerncia
Deve garantir que a diferencia entre a soluo
aproximada e a soluo exata seja menor que a
tolerncia
Semelhante ao clculo de razes envolve iteraes
consecutivas do vetor soluo
xi(k +1) xe(k)
i

Mtodos iterativos
Critrio de parada . . .
Como avaliar o diferena entre dois vetores?
O critrio de parada envolve a norma do vetor
erro relativo entre duas iteraes consecutivas
r(k +1) r(k)
x
- x
<e
r(k +1)
x
O que a norma do vetor?
Podem ser utilizadas
Norma mxima

r(k +1)
r(k)
x
- x
r(k +1)
x

= max
max

1 i n

xi(k +1) - xi(k)


xi(k +1)

<e

Mtodos iterativos
Critrio de parada . . .
Podem ser utilizadas
Norma euclidiana

r(k +1) r(k)


x
- x
r
x(k +1)

2
x(k +1) - x(k)

i
i

<e

(k+1)

xi

i =1
n

=
E

Das normas apresentadas qual mais


utilizada? Porque?
Norma mxima, menor esfora computacional,
garante que erro relativo em cada elemento
do vetor menor que a tolerncia

Mtodos de Jacobi
Obtemos a frmula iterativa do mtodo de Jacobi
a partir da notao algbrica de sistemas de
equaes
Dado o problema
a11x1 + a12x2 + L
a21x1 + a22x2 + L
M
M
O
an1x1 + an2x2 + L

+ a1nxn
+ a2nxn
M
+ annxn

= b1
= b2
M
= bn

Fazer no quadro para n = 3


Utilizamos a equao i para calcular o elemento xi
do vetor incgnita,
Para isso isolamos xi em cada equao

Mtodos de Jacobi
Os elementos do lado direito representam
a iterao (k-1), os do lado esquerdo a
iterao (k)
1
(k)
(k)
(k)
b
a
x
a
x
L
a
x
12 2
13 3
1n n
1

a11
1
(k)
(k)
(k)
=
b
a
x
a
x
L
a
x
21 1
23 3
2n n
2

a22

x1(k +1) =

O resultado

x2(k +1)
M

xn(k +1) =

1
ann

(k)
b - a x(k) - a x(k) - L - a
x
nn
n
1
1
n
2
2
n
,
n
1
n
- 1

Generalizando para qualquer


elemento de
n
1

(k +1)
(k)
x
=
b
a
x

ij j
i
i
a i
ii

j =1
j i

Mtodos de Jacobi
Exemplo 1: Realize trs iteraes pelo
mtodo de Jacobi para resolver o sistema
6 - 1 3x

1
1 3 1x =

2
3 - 1 5x

13

10

16

Em cada iterao compute o erro relativo


da soluo considerando a norma mxima
ea(k +1) = max

1 i n

xi(k +1) - xi(k)


xi(k +1)

Mtodos de Jacobi
Exemplo 1...
Equaes iterativas(k)
1
x1 = ( 13 + x2(k- 1) - 3x3(k- 1) )
6
1
(k)
x2 = ( 10 - x1(k- 1) - x3(k- 1) )
3
1
(k)
x3 = ( 16 - 3x1(k- 1) + x2(k- 1) )
5
b1
Aproximao inicial
(0)
x1 =
= 2,16667
a1
b2
(0)
x2 =
= 3,33333
a2
b3
(0)
x3 =
= 3,20000
a3

Mtodos de Jacobi
Exemplo 1...
Iterao 1
x1(1) = 1,12222

ea(1)
,1 = 93,069

x2(1) = 1,54444

ea(1)
,2 = 115,83

x3(1) = 2,56667

ea(1)
,3 = 24,675

ea(1) = 115,83

Iterao 2
x1(2) = 1,14074

ea(2)
,1 = 1,6223

x2(2) = 2,10370

ea(2)
,2 = 26,585

x3(2) = 2,83556

ea(2)
,3 = 9,4828

ea(2) = 26,585

Mtodos de Jacobi
Exemplo 1...
Iterao 3

x1(3) = 1,09951

ea(3)
,1 = 3,7503

x2(3) = 2,00790

ea(3)
,2 = 4,7713

x3(3) = 2,93630

ea(3)
,3 = 3,4309

Soluo exata

ea(3) = 4,7713

x1 1

x = 2
2
x

3aproximada
O erro da soluo

diminui com o
3

aumento de k

Solues mais precisas podem ser obtidas exigindo


uma
menor
tolerncia
com
maior
custo
computacional

Mtodos de Jacobi
Podemos obter a frmula iterativa de
Jacobi partindo da notao matricial

Ax b
Decompomos a matriz A na forma

D
a11 0 L
0 a
O
22

A
M O O

0
0 L

M
0

ann

0
0
a
0
21

M O

an1 L

A D L U
D L U x b

L
O
O
an ,n 1

M

0

0 a12 L
0

M O
0 L

O
0

a1n
M

an 1, n

Mtodos de Jacobi
Frmula iterativa em notao matricial . . .
Dx L U x b
x D 1 L U x D 1b
x ( k ) D 1 L U x ( k 1) D 1b
0
L
1 a11
0 1a
O
22
1

D
M
O
O

L
0 1
0

0
M
0

ann

xi(k)

1
=
bi aii

n
(k- 1)
a
x
ij j
j =1

j i

Mtodos de Jacobi
Algoritmo
ENTRADA:nmero de incgnitas e equaes n
matriz ampliada A*=(aij) i=1:n j=1:n+1
tolerncia tol
nmero mximo de iteraes N
SADA:soluo do sistema x1, x2, ... ,xn ou
mensagem
de que o mtodo falhou

Mtodos de Jacobi
Algoritmo
PASSO 1:Para i=1:n faa passo 2
PASSO 2:x0i=Ain/Aii
PASSO 3:Faa k=1
PASSO 4:Enquanto (k<N) faa passos 5-8
PASSO 5:Para i=1:n faa xi = Eq. Jacobi
PASSO 6:Se ||x-x0||<tol Sada (x1, ..., xn), FIM
PASSO 7:k=k+1
PASSO 8:Para i=1:n faa x0i = xi
PASSO 9:Sada (Mtodo Falhou), FIM

Mtodos de Jacobi
Qual o custo computacional do mtodo de
Jacobi?
Avaliamos o numero de operaes
Aproximao inicial
n, divises

Para cada iterao k


Para cada incgnita xi
1, diviso
(n-2)+1, somas e subtraes
n-1, multiplicaes
Total: 2n-1

Mtodos de Jacobi
Avaliamos o numero de operaes . . .
Para cada iterao k . . .
Calculo do erro
n, subtraes
n, divises
n, comparaes
Total: 3n

Multiplicando pelo numero de iteraes


e somando todas as etapas

NOPJ AC = n + kn
(2n - 1) + (3n)
NOPJ AC = n + k(5n2 - n)

Mtodos de Jacobi
Qual o custo computacional do mtodo de
Jacobi?
Algoritmo: O(k)O(n2)
Quadrtico no tamanho da matriz
Linear no nmero de iteraes

Quando devemos usar o Jacobi ou Eliminao


de Gauss?
Quando o numero de iteraes (k) for menor que o
tamanho da matriz
Isto geralmente ocorre em sistemas grandes (n>50)

Mtodo de Gauss-Seidel
O mtodo iterativo de Gauss-Seidel um
aprimoramento do mtodo de Jacobi,
Ao calcularmos o elemento xi(k) usando a
frmula de Jacobi
xi(k)

1
=
bi aii

n
(k- 1)
a
x
ij j
j =1

j i

usamos apenas informao da iterao


anterior x(k-1) entretanto os valores xj(k) para
i<j j esto disponveis

Mtodo de Gauss-Seidel
Parece razovel calcular xi(k) utilizando a
informao mais recente
Modificamos a formula iterativa de Jacobi
para utilizar as melhores estimativas
disponveis no clculo de xi(k)
A formula iterativa de Gauss-Seidel
xi(k)

1
=
aii

b i

i- 1

aij x(jk)
j =1

aij x(jk- 1)

j =i +1

Mtodo de Gauss-Seidel
Exemplo 2: Realize trs iteraes pelo
mtodo de Gauss-Seidel para resolver o
sistema 6 - 1 3x 13


1 3 1x1 =


x2

3
1
5



10

16

a) Em cada iterao calcule o erro relativo da


soluo considerando a norma mxima
b) Compare os resultados com os obtidos para o
mtodo de Jacobi

Mtodo de Gauss-Seidel
Exemplo 2 . . .
Equaes iterativas(k)
1
x1 = 13 + x2(k- 1) - 3x3(k- 1)
6
1
(k)
x2 = 10 - x1(k) - x3(k- 1)
3
1
x3(k) = 16 - 3x1(k) + x2(k)
5
Aproximao inicial
b1
(0)
x1 =
= 2,16667
a1
b2
(0)
x2 =
= 3,33333
a2
b3
(0)
x3 =
= 3,20000
a3

(
(
(

Mtodo de Gauss-Seidel
Exemplo 2...
Iterao 1
x1(1) = 1,12222

ea(1)
,1 = 93,069

x2(1) = 1,89259

ea(1)
,2 = 76,125

x3(1) = 2,90519

ea(1)
,3 = 10,148

ea(1) = 93,069

Iterao 2
x1(2) = 1,02951

ea(2)
,1 = 9,0059

x2(2) = 2,02177

ea(2)
,2 = 6,3893

x3(2) = 2,98665

ea(2)
,3 = 2,7276

ea(2) = 9,0059

Mtodo de Gauss-Seidel
Exemplo 2...
Iterao 3
x1(3) = 1,01030

ea(3)
,1 = 1,9007

x2(3) = 2,00102

ea(3)
,2 = 1,0372

x3(3) = 2,99402

ea(3)
,3 = 0,2462

ea(3) = 1,9007

Comparao do erro
120

12
Jacobi
Gauss-Seidel
1.2

0.12
1

Mtodo de Gauss-Seidel
Exemplo 2...
O mtodo de Gauss-Seidel converge
rapidamente que o mtodo de Jacobi

mais

O nmero de iteraes para a mesma tolerncia


sempre menor no mtodo de Gauss-Seidel

Podemos obter a formula iterativa de GS a


partir da notao matricial,
Para isso usamos um procedimento
semelhante ao mostrado no mtodo de
Jacobi
O resultado
(k )
1aparece
(k )
1na ( kforma
x D Lx D Ux 1) D 1b

Mtodo de Gauss-Seidel
Que modificaes devemos fazer no
algoritmo de Jacobi para obtermos o
algoritmo
Gauss-Seidel?
PASSO
1:Parade
i=1:n
faa passo 2
PASSO 2:x0i=Ain/Aii
PASSO 3:Faa k=1
PASSO 4:Enquanto (k<N) faa passos 5-8
PASSO 5:Para i=1:n faa xi = Eq. GaussSeidel
PASSO 6:Se ||x-x0||<tol Sada (x1, ..., xn), FIM
PASSO 7:k=k+1
PASSO 8:Para i=1:n faa x0i = xi

Mtodo de Gauss-Seidel
Qual o custo computacional do mtodo
de Gauss-Seidel?
NOPGS = NOPJ AC = n + k(5n2 - n)

Algoritmo: O(k)O(n2)
Quadrtico no tamanho da matriz
Linear no nmero de iteraes
O numero de iteraes sempre menor em
GS que em Jacobi
Por motivos de eficincia sempre deve-se
utilizar GS em lugar de Jacobi

Mtodo de Gauss-Seidel
Condio de convergncia
Teorema: Se A diagonalmente dominante de
maneira estrita, ento com qualquer escolha de x(0),
tanto o mtodo de Jacobi como Gauss-Seidel geram
seqncias x(k) que convergem para a soluo nica do
sistema Ax=b
Diagonal dominante n

ai ,i > ai ,j
j =1
j i

O valor absoluto do elemento da diagonal maior que


a soma dos valores absolutos dos elementos da mesma
linha.
Existe alguma relao entre o
conceito
convergncia e os erros de truncamento?

de

Mtodo de Gauss-Seidel
Condio de convergncia . . .
A condio de convergncia apenas condio
suficiente
Isto significa, se a condio for satisfeita o mtodo
converge
Se a condio no for satisfeita, no podemos
afirmar que o mtodo converge ou diverge
Como verificar o comportamento do mtodo quando
a condio de convergncia no for satisfeita?
Deve-se monitorar o comportamento do erro
Se o erro decresce, o mtodo converge
Se o erro aumenta, ou oscila, o mtodo diverge

Mtodo de Gauss-Seidel
Exemplo 3: Verifique se a matriz do sistema
6 - 1 3x 13


1
3
1

x2 = 10


x3 16

3 - 1 5

estritamente diagonal dominante.

6 > - 1+ 3
3 > 1+ 1
5 > 3 + - 1

OK

Mtodos de Relaxamento
Os mtodos de relaxamento so uma
alternativa ao mtodo de Gauss-Seidel, que
visa:
Acelerar a convergncia
Encontrar a convergncia em sistemas que
divergem ou convergem muito lentamente

Nos mtodos de relaxamento os valores de


xi(k) obtidos pelo mtodo de GS so corrigidos
por uma mdia ponderada entre os
resultados(k)da iterao
k e k-1,
(k)
(k- na
1) forma
xi

REL

= wxi

GS

+ ( 1 - w) xi

REL

onde w es um fator de peso entre 0 e 2.

Mtodos de Relaxamento
Se w=1, teremos o mtodo de Gauss-Seidel

xi(k) = xi(k)
REL

GS

Se 0<w<1, teremos sub-relaxamento, neste caso


diminumos o peso dos resultados da nova
iterao,
O sub-relaxamento oferece bons resultados para
Obter a convergncia em sistemas que no convergem
Acelerar
a
convergncia
comportamento oscilatrio

em

sistemas

com

Se 1<w<2, teremos sobre-relaxamento, neste caso


aumentamos o peso da nova iterao,
Se supe que a nova iterao esta mais prxima
do soluo exata

Mtodos de Relaxamento
O sobre-relaxamento acelera a convergncia
de um sistema j convergente
A escolha do valor apropriado de w depende
criticamente do sistema que esta sendo
resolvido
O valor de w timo determinado
frequentemente de forma emprica
Muitos autores sugerem que o valor timo de
encontra-se entre 1 e 1,2 para a maioria dos
sistemas
Existem expresses para estimar o wotm em
funo do raio espectral da matriz do sistema

Mtodos de Relaxamento
Exemplo 4: Realize trs iteraes pelos
mtodos de Sub-relaxamento (w=0,92) e
Sobre-relaxamento (w=1,08) para resolver o
sistema

6 - 1 3x0


1
3
1

x1 =


x2

3 - 1 5

13

10

16

a) Em cada iterao calcule o erro relativo da


soluo considerando a norma mxima
b) Compare os resultados com os obtidos para
os mtodos de Jacobi e Gauss-Seidel

Mtodos de Relaxamento
Exemplo 3 . . .
Arquivo Excel
Grfico dos erros
120

12

Jacobi
Gauss-Seidel

1.2

Sub-relaxamento
Sobre-relaxamento

0.12

0.01
1

Mtodos de Relaxamento
Quais modificaes devemos fazer no
algoritmo de Gauss-Seidel para termos um
mtodo de relaxamento?
ENTRADA:nmero de incgnitas e equaes n
matriz ampliada A*=(aij) i=1:n j=1:n+1
tolerncia tol
nmero mximo de iteraes N
parmetro omega w
SADA:soluo do sistema x1, x2, ... ,xn ou
mensagem
de que o mtodo falhou

Relaxamento - Algoritmo
PASSO 1:Para i=1:n faa passo 2
PASSO 2:x0i=Ain/Aii
PASSO 3:Faa k=1
PASSO 4:Enquanto (k<N) faa passos 5-8
PASSO 5:Para i=1:n faa
PASSO 5.1: x-GSi = Eq. Gauss-Seidel
PASSO 5.2: xi = Eq. Relaxamento
PASSO 6:Se ||x-x0||<tol Sada (x1, ..., xn), FIM
PASSO 7:k=k+1
PASSO 8:Para i=1:n faa x0i = xi
PASSO 9:Sada (Mtodo Falhou), FIM

Mtodos de Relaxamento
Qual o custo adicional por adicionar
tcnicas de relaxamento ao mtodo de
Gauss-Seidel?
Operaes da frmula de relaxamento
Para cada iterao k
Para cada incgnita xi
2, produtos
2, somas e subtraes
Total: 4

Somando4knpelas n incgnitas e multiplicando


pelas k de iteraes:

Mtodos de Relaxamento
Custo computacional . . .
NOPREL = NOPGS + 4kn = n + k(5n2 - n) + 4kn
NOPREL = n + k(5n2 + 3n)

Algoritmo: O(k)O(n2)
Quadrtico no tamanho da matriz
Linear no nmero de iteraes
Temos um ligeiro aumento no nmero de
operaes ao introduzir o relaxamento
Geralmente, o aumento do custo
compensado pela diminuio no nmero de
iteraes

Comentrios finais
Os elementos de um mtodo iterativo so
Aproximao inicial
Formula iterativa
Critrio de parada

Os mtodos iterativos so apropriados


para matrizes grandes
Os principais mtodos iterativos so
Mtodo de Jacobi
Mtodo de Gauss-Seidel
Mtodo de relaxamento

Comentrios finais
O mtodo de Jacobi converge lentamente e
no tem valor pratico (apenas acadmico)
O mtodo de Gauss-Seidel apropriado
para a maioria das aplicaes
Os mtodos de GS e Jacobi podem
apresentar problemas de convergncia
O
mtodo
de
GS
pode
ser
acelerado/aprimorado usando tcnicas de
relaxamento
A principal dificuldade nas tcnicas de
relaxamento encontrar o valor de w timo

Comentrios finais
Iteraes
para
determinada

Iteraes

uma

35
30
25
20
15
10
5
0

tolerncia

Jacobi
Gauss-Seidel
Sobre-Relaxamento

Tolerncia

S-ar putea să vă placă și