Analise com marquardt

Disponível somente no TrabalhosFeitos
  • Páginas : 10 (2277 palavras )
  • Download(s) : 0
  • Publicado : 3 de dezembro de 2012
Ler documento completo
Amostra do texto
UDESC – Universidade do Estado de Santa Catarina
Professor: Pablo Andres Munõs
Matéria: Introdução a Otimização
Aluno: Nestor Terra Dias







Analise Marquardt









Joinville, 20 de outubro de 2012
Objetivo:
Alterar algoritmo de Método de Newton Modificado para o Método proposto por Marquardt, e validar através de um estudo de caso.
Comparar o numero de iteraçõesque cada método utiliza para encontrar o ponto de ótimo da função, e também analisar outros comportamentos, como estratégias para o valor inicial da variável lambda no inicio do problema.
Desenvolvimento:
Estudado o algoritmo (rotinas e sub-rotinas) apresentado no apêndice D (Arora) para alterar, segundo proposto por Marquardt, o vetor direção para procura (computar), pode ser:

Onde Lambda, einicialmente selecionado um grande numero e seguindo as iterações ele vai reduzindo.
Algoritmo foi tentado definir uma matriz auxiliar chamada na sub-rotina HAUX (hessiana auxiliar positiva), devido ao acréscimo de lamba (alfa, Rao), e lambda ser um numero grande, posso fazer uma aproximação, conforme as equações a seguir (Rao, 6.12).



Newton x Marquardt - montado algumas estratégiaspara a redução do lambda ao longo das iterações, mostrados na tabela para cada caso, aplicados no exemplo 9.7 (Arora), resumidamente abaixo. Para todos os casos foram utilizados os mesmos critérios como ponto de partida, step lenght e critério de parada. L e o numero da iteração
λ=10⁄L^L ; λ=10⁄L^(2 ) ; λ=10⁄L^4 ; λ=10⁄L
Example 9.7 (Arora) – este exemplo foi selecionado por ter sido resolvidocom o método de Newton Modificado, e também já estava implementado em Fortran. Para validar a alteração no algoritmo, foram analisados os resultados do ponto de ótimo, e tendo como variável resposta o numero de iterações que visa diminuir.

Newton x Marquardt
Newton Modified Marquardt LA=10/(L^L)
Numero avaliações 198 Numero avaliações 173
Marquardt LA=10/(L^2) Marquardt LA=10/(L)Numero avaliações 173 Numero avaliações 328
Marquardt LA=10/(L^4) Marquardt LA=1000/(L^L)
Numero avaliações 197 Numero avaliações 232
SUBROUTINE HASN(X,H,N,K)
C CALCULATES THE HESSIAN MATRIX H AT X
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION X(N),H(N,N)
DO 180 L=1,K
LA=1.0D3/(L**L)
180 CONTINUE
H(1,1) =120.0D0*((X(1))**2)-40.0D0*X(2)+2.0D0+LA
H(2,2) = 20.0D0+LA
H(1,2) = -40.0D0*X(1)
H(2,1) = H(1,2)
RETURN
END SUBROUTINE GRAD(X,G,NDV)
C CALCULATES THE GRADIENT OF F(X) IN VECTOR G
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
DIMENSION X(NDV),G(NDV)
G(1)=40.0D0*(X(1)**3)-40.0D0*X(2)*X(1)+2.0D0*X(1)-2.0D0
G(2)=-20.0D0*(X(1)**2)+20.0D0*X(2)RETURN
END
Example 9.7 (Arora) – Utilizando Método de Newton Modificado
Minimizar
Ponto inicial x1=-1 e x2=3
Step lenght 0.05
Line search 0.0001
Stopping criterion 0.005
Gradiente
Hessiana
Ponto Ótimo e Histórico de iterações

Conclusão:
Nota se que o método proposto por Marquardt pode ser utilizado, ele pode ser utilizado em casos que a Hessiana não è positivadefinida, tendo como vantagem que ele torna a matriz positiva, através do acréscimo de uma constante lambda com elevado valor numérico. Porem è necessário elaborar uma estratégia para diminuir o valor de lamba ao longo das iterações, que visa minimizar há influencia de lambda no calculo do vetor direção ao longo das iterações do algoritmo.
O valor inicial de lambda bem como a estratégia a serutilizada, depende da experiência de cada usuário da ferramenta proposta por Marquardt, podendo resultar em mais ou menos iterações, bem como também não convergir o problema.
A estratégia de gerar uma matriz auxiliar não funcionou, devido a problemas de armazenar esta matriz, assim foi somado um lambda na diagonal e elaborado um calculo para o valor de lambda dentro da rotina que monta a Hessiana....
tracking img