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:
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 matrizHinfo
desde la funciónHessianMultiplyFcn
. Para obtener más información, consulteHessianMultiplyFcn
en la seccióntrust-region
de la tablafminunc
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. Cuandofminunc
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
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
fmincon
tiene varios algoritmos, con varias opciones para matrices hessianas, como se describe en fmincon Trust Region Reflective Algorithm, fmincon Active Set Algorithm y fmincon Interior Point Algorithm.
Algoritmo
active-set
,sqp
osqp-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 devuelvefmincon
puede ser imprecisa. Para obtener más detalles sobre el cálculo deactive-set
, consulte SQP Implementation.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 matrizHinfo
desde la funciónHessianMultiplyFcn
. Para obtener más información, consulte Algoritmo trust-region-reflective enfmincon
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. Cuandofmincon
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ónHessianMultiplyFcn
,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 algoritmoactive-set
osqp
.Si la opción
HessianFcn
es un identificador de función,fmincon
devuelve esta función como la matriz hessiana en el punto final.