13 nov 2008. 17:45 cálculo numérico / métodos numéricos sistemas lineares método dos gradientes

20
13 Nov 2008 . 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

13 Nov 2008 . 17:45

Cálculo Numérico / Métodos Numéricos

Sistemas linearesMétodo dos Gradientes

Page 2: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Os métodos do tipo gradiente para resolver o sistema Ax = b têm como idéia básica minimizar a função de x seguinte:

F(x) = ½ xTAx - bTx

min F(x) = ½ xTAx – bTx = ½ (Ax,x) – (b,x).

A matriz A deve ser simétrica (AT= A) e definida positiva (xTAx>0, para x 0).

Page 3: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes – exemplo

Considere n = 2

2211222221211212

2111

2211222121

21211121

2

121

2

1

2221

121121

bbaaaa2

1)(

bbaa

aa

2

1)(

aa

aa

2

1)(

xxxxxxxxxF

xxxx

xxxxxF

x

xbb

x

xxxxF

Como A é simétrica temos que:

221122221212

2111 bba

2

1aa

2

1)( xxxxxxxF

Page 4: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes – revisão cálculo Do cálculo sabemos que um ponto P = (x1, x2) tal

que o grad F(P) = 0 é chamado de ponto estacionário de F(x).

Seja A a matriz dada por:

Assim, se: A) A(P) : definida positiva, então P é ponto de

mínimo; B) A(P) : definida negativa, então P é ponto de

máximo; C) A(P) : indefinida, então P é ponto de cela.

2

1)(

x

Fx

F

xgrad

2212

2111)(

xx

F

xx

Fxx

F

xx

F

xA

Page 5: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Por hipótese, para o método dos Gradientes, A deve ser simétrica e definida positiva, logo, um ponto estacionário P, ou seja, um ponto em que grad(P) = 0, é um ponto de mínimo.

Voltando ao exemplo temos:

Sistema linear.

2222112

1212111

2222112

1212111

221122221212

2111

baa

baa0

baa

baa)(

bba2

1aa

2

1)(

xx

xx

xx

xxxFgrad

xxxxxxxF

Page 6: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Sendo assim, grad F(x) = 0, significa Ax = b, isto é, a solução do sistema de equações lineares minimiza a função quadrática e vice-versa.

Exemplo: Seja o sistema linear Ax = b, dado por:

Calcule a função quadrática dada por F(x) = ½ xTAx – bTx e mostre que o ponto de mínimo desta função é a solução do sistema dado.

0010011

11001

21

21

xx

xx

Page 7: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Page 8: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Sistema original

Solução:

Page 9: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

1001

1100

2212

2111

xx

F

xx

Fxx

F

xx

F

A matriz Hessiana para o exemplo é dada por

Como essa matriz é simétrica e definida positiva, então o ponto x = (0 1) é um ponto de mínimo da função F(x).

Page 10: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Note que:

Para o valor que minimiza a função F(x) temos que:

No entanto, em outros pontos de F(x):

Ou ainda, tomando menos o valor do gradiente, temos a diferença entre b e Ax. (Sabemos o quão distante a solução x está de resolver o sistema Ax=b).

Em outras palavras, o resíduo da solução x é dado por:

bAxxFgrad )(

0)( bAxxFgrad

0)( bAxxFgrad

rAxbxFgrad )(

Page 11: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Direção O vetor gradiente aponta a direção (sentido) de

crescimento máximo de uma função. Portanto, é natural que, nos passos de busca do mínimo de uma função caminhemos na direção contrária ao gradiente, isto é, para um dado ponto x(k) temos:

Em que a direção é dada por

)()()()( )()( kkkk rAxbbAxxFgradp

)( )()()1( kk

kk xFgradsxx

Page 12: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Passo Direção:

passo: o quanto vamos caminhar neste direção.

)()()()( )()( kkkk rAxbbAxxFgradp

)( )()()1( kk

kk xFgradsxx

Page 13: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Passo

Dado um x(k), queremos o melhor x(k+1) possível. Ele será obtido andando-se a quantia certa na direção oposta ao gradiente:

Quantia certa: sk que minimiza : F(x(k) +skr(k))

)(min)(min )()()1( kk

kk rsxFxF

Page 14: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

)(min)(min )()()1( kk

kk rsxFxF

)()()(2

1)( srxbsrxAsrxsrxF TT

Queremos minimizar:

Simplificando a notação, temos que:

rbArsrxsrxArsrxF TTT )(2

1)(

2

1)(

Derivando em relação a s temos:

Page 15: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

Arr

rrs

rrArsrsrxF

T

T

TT

0)(

Para encontrar s tomamos a derivada igual a zero:

rrArsrbAxrArsrsrxF TTTT )()(

rbArsrxsrxArsrxF TTT )(2

1)(

2

1)(

Page 16: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes

ArrsrxF T )(

Tomando a segunda derivada de F(x+sr):

Uma vez que a matriz A é definida positiva sabemos que:

0)( ArrsrxF T

Logo, o ponto obtido anteriormente é um ponto de mínimo.

Page 17: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes - Algoritmo

Dados A, b, max e Erro 1) x(0)=0 2) k = 0 3) r = b - Ax(k)

4) s = rT r/rTAr 5) x(k+1) = x(k) + s r 6) Se (rT r) < Erro então faça solução = x(k+1) e PARE 7) k = k+1 8) Se (k<max) então volte ao Passo 3. 9) Senão escreva que a solução x(k+1) e o erro. PARE.

Page 18: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes - Exemplo

Usando o método dos gradientes resolva o sistema dado por:

Com precisão 10-1 e max = 3 iterações.

1

11

11

1010

1101

0110

3

2

1

x

x

x

Page 19: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes - Exemplo

Solução

(passo)

(direção)

Page 20: 13 Nov 2008. 17:45 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

14 Nov 2008 . 14:40

Método dos Gradientes - Exemplo

||x2-x1||1

||x2||1

=0.09