cálculo numérico / métodos numéricos sistemas lineares...

20
14 Nov 2008 . 16:52 Cálculo Numérico / Métodos Numéricos Sistemas lineares Método dos Gradientes

Upload: vuongcong

Post on 26-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

14 Nov 2008 . 16:52

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

Sistemas linearesMétodo dos Gradientes

. 17:06

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).

. 17:06

Método dos Gradientes – exemplo

Considere n = 2

( ) ( )

( )

( ) 2211222221211212

2111

2211222121

21211121

2

121

2

1

2221

121121

bbaaaa21)(

bbaaaa

21)(

aaaa

21)(

xxxxxxxxxF

xxxxxx

xxxF

xx

bbxx

xxxF

−−+++=

−−

++

=

=

Como A é simétrica temos que:

221122221212

2111 bba

21aa

21)( xxxxxxxF −−++=

. 17:06

Método dos Gradientes – revisão cálculoDo 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)(

xFxF

xgrad

∂∂∂

∂∂∂

∂∂∂

∂∂∂

=

2212

2111)(

xxF

xxF

xxF

xxF

xA

. 17:06

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

baabaa

0baabaa

)(

bba21aa

21)(

=+=+

⇔=

−+−+

=

−−++=

xxxx

xxxx

xFgrad

xxxxxxxF

. 17:06

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.

001001111001

21

21

=+=+

xxxx

. 17:06

Método dos Gradientes

. 17:06

Método dos Gradientes

Sistema original

Solução:

. 17:06

Método dos Gradientes

=

∂∂∂

∂∂∂

∂∂∂

∂∂∂

10011100

2212

2111

xxF

xxF

xxF

xxF

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).

. 17:06

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 =−=− )(

. 17:06

DireçãoO 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 −=+

. 17:06

PassoDireção:

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

)()()()( )()( kkkk rAxbbAxxFgradp =−=−−=−=

)( )()()1( kk

kk xFgradsxx −=+

. 17:06

PassoDado 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 +=+

. 17:06

Método dos Gradientes

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

kk rsxFxF +=+

)()()(21)( srxbsrxAsrxsrxF TT +−++=+

Queremos minimizar:

Simplificando a notação, temos que:

rbArsrxsrxArsrxF TTT −+++=+′ )(21)(

21)(

Derivando em relação a s temos:

. 17:06

Método dos Gradientes

Arrrrs

rrArsrsrxF

T

T

TT

=

=−=+′ 0)(

Para encontrar s tomamos a derivada igual a zero:

rrArsrbAxrArsrsrxF TTTT −=−+=+′ )()(

rbArsrxsrxArsrxF TTT −+++=+′ )(21)(

21)(

. 17:06

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.

. 17:06

Método dos Gradientes - Algoritmo

Dados A, b, max e Erro1) x(0)=02) k = 03) r = b - Ax(k)

4) s = rT r/rTAr5) x(k+1) = x(k) + s r6) Se ||xk+1-xk||∞/||xk+1||∞ < Erro então faça solução = x(k+1) e PARE7) k = k+18) Se (k<max) então volte ao Passo 3.9) Senão escreva que a solução x(k+1) e o erro. PARE.

. 17:06

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.

=

11111

101011010110

3

2

1

xxx

. 17:06

Método dos Gradientes - Exemplo

Solução

(passo)

(direção)

. 17:06

Método dos Gradientes - Exemplo

||x2-x1||∞||x2||∞

=0.09