13 nov 2008. 17:45 cálculo numérico / métodos numéricos sistemas lineares método dos gradientes
Post on 18-Apr-2015
106 Views
Preview:
TRANSCRIPT
13 Nov 2008 . 17:45
Cálculo Numérico / Métodos Numéricos
Sistemas linearesMé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).
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
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
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
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
14 Nov 2008 . 14:40
Método dos Gradientes
14 Nov 2008 . 14:40
Método dos Gradientes
Sistema original
Solução:
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).
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 )(
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
14 Nov 2008 . 14:40
Passo Direção:
passo: o quanto vamos caminhar neste direção.
)()()()( )()( kkkk rAxbbAxxFgradp
)( )()()1( kk
kk xFgradsxx
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
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:
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)(
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.
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.
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
14 Nov 2008 . 14:40
Método dos Gradientes - Exemplo
Solução
(passo)
(direção)
14 Nov 2008 . 14:40
Método dos Gradientes - Exemplo
||x2-x1||1
||x2||1
=0.09
top related