Main Content

Salida de matriz hessiana

Los solvers fminunc y fmincon devuelven una matriz hessiana aproximada como una salida opcional.

[x,fval,exitflag,output,grad,hessian] = fminunc(fun,x0)
% or
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

Esta sección describe el significado de la matriz hessiana devuelta y la precisión que cabe esperar.

También puede especificar el tipo de matriz hessiana que utilizan los solvers como argumentos hessianos de entrada. Para obtener más información sobre fminunc, consulte Incluir gradientes y matrices hessianas. Para obtener más información sobre fmincon, consulte Matriz hessiana como entrada.

Matriz hessiana de fminunc

La matriz hessiana de un problema no restringido es la matriz de segundas derivadas de la función objetivo f:

Hessian Hij=2fxixj.

  • Algoritmo quasi-Newton: fminunc devuelve una matriz hessiana estimada en la solución. fminunc calcula la estimación por diferencias finitas, de modo que la estimación suele ser precisa.

  • Algoritmo trust-region: fminunc devuelve una matriz hessiana en la penúltima iteración.

    • Si proporciona una matriz hessiana en la función objetivo y establece la opción HessianFcn en 'objective', fminunc devuelve esta matriz hessiana.

    • Si proporciona una función HessianMultiplyFcn, fminunc devuelve la matriz Hinfo desde la función HessianMultiplyFcn. Para obtener más información, consulte HessianMultiplyFcn en la sección trust-region de la tabla fminunc options.

    • De lo contrario, fminunc devuelve una aproximación desde un algoritmo de diferencias finitas dispersas en los gradientes.

    Esta matriz hessiana es precisa para la penúltima iteración. Sin embargo, es posible que la penúltima iteración no esté cerca del punto final.

    El algoritmo trust-region devuelve la matriz hessiana en la penúltima iteración por eficiencia. fminunc utiliza la matriz hessiana internamente para calcular su siguiente paso. Cuando fminunc alcanza una condición de detención, no necesita calcular el paso siguiente y, por lo tanto, no calcula la matriz hessiana.

Matriz hessiana de fmincon

La matriz hessiana para un problema restringido es la matriz hessiana del lagrangiano. Para una función objetivo f, un vector de restricción de desigualdad no lineal c y un vector de restricción de igualdad no lineal ceq, el lagrangiano es

L=f+iλici+jλjceqj.

Los λi son multiplicadores de Lagrange; consulte Medida de optimalidad de primer orden y Estructuras de multiplicadores de Lagrange. La matriz hessiana del lagrangiano es

H=2L=2f+iλi2ci+jλj2ceqj.

fmincon tiene varios algoritmos, con varias opciones para matrices hessianas, como se describe en Algoritmo fmincon trust-region-reflective, Algoritmo fmincon Active-Set y Algoritmo interior-point de fmincon.

  • Algoritmo active-set, sqp o sqp-legacy: fmincon devuelve la aproximación hessiana que calcula en la penúltima iteración. fmincon calcula una aproximación quasi-Newton de la matriz hessiana en la solución en el curso de sus iteraciones. En general, esta aproximación no coincide con la matriz hessiana real en cada componente, sino solo en determinados subespacios. Por lo tanto, la matriz hessiana que devuelve fmincon puede ser imprecisa. Para obtener más detalles sobre el cálculo de active-set, consulte Implementación de SQP.

  • Algoritmo trust-region-reflective: fmincon devuelve la matriz hessiana que calcula en la penúltima iteración.

    • Si proporciona una matriz hessiana en la función objetivo y establece la opción HessianFcn en 'objective', fmincon devuelve esta matriz hessiana.

    • Si proporciona una función HessianMultiplyFcn, fmincon devuelve la matriz Hinfo desde la función HessianMultiplyFcn. Para obtener más información, consulte Algoritmo trust-region-reflective en fmincon options.

    • De lo contrario, fmincon devuelve una aproximación desde un algoritmo de diferencias finitas dispersas en los gradientes.

    Esta matriz hessiana es precisa para la penúltima iteración. Sin embargo, es posible que la penúltima iteración no esté cerca del punto final.

    El algoritmo trust-region-reflective devuelve la matriz hessiana en la penúltima iteración por eficiencia. fmincon utiliza la matriz hessiana internamente para calcular su siguiente paso. Cuando fmincon alcanza una condición de detención, no necesita calcular el paso siguiente y, por lo tanto, no calcula la matriz hessiana.

  • Algoritmo interior-point

    • Si la opción HessianApproximation es 'lbfgs' o 'finite-difference', o si proporciona una función HessianMultiplyFcn, fmincon devuelve [] para la matriz hessiana.

    • Si la opción HessianApproximation es 'bfgs' (la predeterminada), fmincon devuelve una aproximación quasi-Newton a la matriz hessiana en el punto final. Esta matriz hessiana puede ser imprecisa, similar a la matriz hessiana del algoritmo active-set o sqp.

    • Si la opción HessianFcn es un identificador de función, fmincon devuelve esta función como la matriz hessiana en el punto final.

Temas relacionados