Configurar opciones de optimización
Cómo configurar opciones
Puede especificar los parámetros de optimización usando una estructura options
que cree con la función optimset
. A continuación, pase options
como entrada a la función de optimización; por ejemplo, llamando a fminbnd
con la sintaxis
x = fminbnd(fun,x1,x2,options)
o a fminsearch
, con la sintaxis
x = fminsearch(fun,x0,options)
Por ejemplo, para mostrar la salida del algoritmo en cada iteración, establezca la opción Display
en 'iter'
:
options = optimset('Display','iter');
Tabla de opciones
Opción | Descripción | Solvers |
---|---|---|
| Indicador sobre si los pasos intermedios aparecen en la pantalla.
| fminbnd , fminsearch , fzero , lsqnonneg |
| Compruebe si los valores de la función objetivo son válidos.
| fminbnd , fminsearch , fzero |
| Número máximo de evaluaciones de función permitidas. El valor predeterminado es | fminbnd , fminsearch |
| Número máximo de iteraciones permitidas. El valor predeterminado es | fminbnd , fminsearch |
| Muestra información sobre las iteraciones del solver. El valor predeterminado es | fminbnd , fminsearch , fzero |
| Representa la información sobre las iteraciones del solver. El valor predeterminado es | fminbnd , fminsearch , fzero |
| Tolerancia de finalización para el valor de la función. El valor predeterminado es | fminsearch |
| Tolerancia de finalización para x. El valor predeterminado es | fminbnd , fminsearch , fzero , lsqnonneg |
Tolerancias y criterios de parada
El número de iteraciones de una optimización depende de los criterios de parada del solver. Estos criterios incluyen varias tolerancias que puede establecer. Por lo general, una tolerancia es un umbral que, si se cruza, detiene las iteraciones de un solver.
Sugerencia
Por lo general, establezca las tolerancias TolFun
y TolX
muy por encima de eps
y, normalmente, por encima de 1e-14
. Establecer pequeñas tolerancias no garantiza resultados precisos. En su lugar, un solver puede no reconocer cuándo ha convergido y continuar con iteraciones inútiles. Un valor de tolerancia inferior a eps
desactivará, en la práctica, esa condición de parada. Este consejo no se aplica a fzero
, que utiliza un valor predeterminado de eps
para TolX
.
TolX
es un límite inferior del tamaño de un paso, es decir, la norma de (xi – xi+1). Si el solver intenta dar un paso menor queTolX
, las iteraciones terminan. Los solvers suelen utilizarTolX
como límite relativo, lo que significa que las iteraciones terminan cuando |(xi – xi+1)| <TolX
*(1 + |xi|), o una medida relativa similar.TolFun
es un límite inferior del cambio en el valor de la función objetivo durante un paso. Si |f(xi) – f(xi+1)| <TolFun
, la iteración termina. Los solvers suelen utilizarTolFun
como límite relativo, lo que significa que las iteraciones terminan cuando |f(xi) – f(xi+1)| <TolFun
(1 + |f(xi)|), o una medida relativa similar.MaxIter
es un límite del número de iteraciones del solver.MaxFunEvals
es un límite del número de evaluaciones de funciones.
Nota
A diferencia de otros solvers, fminsearch
se detiene cuando satisface tanto TolFun
como TolX
.
Estructura de la salida
La estructura output
incluye el número de evaluaciones de la función, el número de iteraciones y el algoritmo. La estructura aparece cuando se proporciona fminbnd
, fminsearch
o fzero
con un cuarto argumento de salida, como en
[x,fval,exitflag,output] = fminbnd(@humps,0.3,1);
Los detalles de la estructura output
de cada solver se encuentran en las páginas de referencia de las funciones.
La estructura output
no es una opción que se elija con optimset
. Sino que es una salida opcional de fminbnd
, fminsearch
y fzero
.