Ir para conteúdo
Fórum Script Brasil

klaus.silva@live.com

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre klaus.silva@live.com

klaus.silva@live.com's Achievements

0

Reputação

  1. Boa tarde, pessoal! Estou com grandes dificuldades para determinar, através do Matlab, o gradiente (derivadas parciais de uma função multivariável) e a matriz hessiana (derivadas parciais de primeira e segunda ordem de uma função multivariável) de uma função quadrática. Apesar de conhecer a função e poder alocar esses dados no código apenas fazendo o cálculo analítico, preciso considerar que o usuário não saiba como fazer essa etapa (ou que não tenha acesso ao programa para incluir tais dados). Portanto, tanto o cálculo do gradiente e da hessiana devem ser feitos através da análise da própria função (estou implementando um código de otimização de segunda ordem Quasi-Newton, de métrica variável BFGS). A questão é: como implemento esse cálculo no código? Segue um exemplo matemático para melhor compreensão: f(x) = x(1)^2 + 10*x(2)^2 gradiente f(x) = [ df/dx(1) ; df/dx(2) ] = [ 2*x(1) ; 20*x*2 ] hessiana f(x) = [ dfx(1)/dx(1) dfx(1)/dx(2) ; dfx(2)/dx(1) dfx(2)/dx(2)] = [ 2 0 ; 0 20 ] A hessiana acima tem valia apenas na primeira iteração do método, contudo o gradiente será atualizado a cada iteração. Espero que tenha sido claro o bastante, muito obrigado!
×
×
  • Criar Novo...