Boa pergunta. Primeiro, lembre-se de onde vem essa aproximação . Seja seus pontos de dados, seja seu modelo e sejam os parâmetros do seu modelo. Então a função objetivo do problema de mínimos quadrados não linear é onde é o vetor dos resíduos, . O hessiano exato da função objetivo é . Portanto, o erro nesta aproximação é( x i , y i ) f ( ⋅ ) β 1H≈JTJ(xi,yi)f(⋅)βrrI=yi-f(xi,β)H=JtJ+Σri∇2riH-JtJ=Σri∇2ri12rTrrri=yi−f(xi,β)H=JTJ+∑ri∇2riH−JTJ=∑ri∇2ri. É uma boa aproximação quando os resíduos são pequenos; ou quando a segunda derivada dos resíduos for pequena. Os mínimos quadrados lineares podem ser considerados um caso especial em que a segunda derivada dos resíduos é zero.
Quanto à aproximação por diferenças finitas, é relativamente barato. Para calcular uma diferença central, você precisará avaliar o jacobiano mais vezes (uma diferença a frente custará avaliações adicionais, para que eu não me incomode). O erro da aproximação diferença central é proporcional à e , em que é o tamanho do passo. O tamanho ideal da etapa é , onden ∇ 4 r h 2 h h ~ ε 12nn∇4rh2h ϵh∼ϵ13ϵé precisão da máquina. Portanto, a menos que as derivadas dos resíduos estejam explodindo, é bem claro que a aproximação da diferença finita deve ser MUITO melhor. Devo salientar que, embora o cálculo seja mínimo, a contabilidade não é trivial. Cada diferença finita no jacobiano fornecerá uma linha do hessiano para cada resíduo. Você precisará remontar o Hessian usando a fórmula acima.
Existe, no entanto, uma terceira opção. Se o seu solucionador usar um método Quasi-Newton (DFP, BFGS, Bryoden etc.), ele já estará aproximando o Hessian a cada iteração. A aproximação pode ser bastante boa, pois usa a função objetivo e os valores de gradiente de cada iteração. A maioria dos solucionadores lhe dará acesso à estimativa final do Hessian (ou seu inverso). Se isso é uma opção para você, eu usaria isso como estimativa de Hessian. Já está computado e provavelmente será uma estimativa muito boa.
h_actual = (x + h_desired) - x