Establecer opciones de optimización
Cómo establecer opciones
Especifique los parámetros de optimización usando una estructura options que cree con la función optimset. Después, 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 |
| Comprobar si los valores de la función objetivo son válidos.
| fminbnd, fminsearch, fzero |
| El 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 desactiva, de manera efectiva, esa condición de parada. Este consejo no se aplica a fzero, que utiliza un valor predeterminado de eps para TolX.
TolXes 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 utilizarTolXcomo límite relativo, lo que significa que las iteraciones terminan cuando |(xi – xi+1)| <TolX*(1 + |xi|), o una medida relativa similar.
TolFunes 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 utilizarTolFuncomo 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.MaxIteres un límite del número de iteraciones del solver.MaxFunEvalses un límite del número de evaluaciones de funciones.
Nota
A diferencia de otros solvers, fminsearch se detiene cuando satisface TolFun y 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.