Main Content

optimset

Crear o modificar una estructura de opciones de optimización

Descripción

Cree o modifique una estructura para solvers de MATLAB®.

Nota

Se recomienda optimoptions en lugar de optimset para todos los solvers excepto fzero, fminbnd, fminsearch y lsqnonneg.

ejemplo

options = optimset(Name,Value) devuelve options con parámetros especificados establecidos utilizando uno o más argumentos de par nombre-valor.

optimset (sin argumentos de entrada o salida) muestra una lista completa de parámetros con sus valores válidos.

options = optimset (sin argumentos de entrada) crea una estructura de opciones options donde todos los parámetros están establecidos en [].

ejemplo

options = optimset(optimfun) crea options con todos los nombres de parámetros y valores predeterminados relevantes para la función de optimización optimfun.

ejemplo

options = optimset(oldopts,Name,Value) crea una copia de oldopts y modifica los parámetros especificados utilizando uno o más argumentos de par nombre-valor.

ejemplo

options = optimset(oldopts,newopts) combina una estructura de opciones existente oldopts con una estructura de opciones nueva newopts. Cualquier parámetro de newopts con valores no vacíos sobrescribe el parámetro correspondiente de oldopts.

Ejemplos

contraer todo

Establezca opciones para fminsearch para usar una función de gráfica y una condición de detención más estricta que la predeterminada.

options = optimset('PlotFcns','optimplotfval','TolX',1e-7);

Minimice la función de Rosenbrock empezando desde el punto (–1,2) y monitorice el proceso de minimización utilizando las opciones. La función de Rosenbrock tiene un valor mínimo de 0 en el punto (1,1).

fun = @(x)100*((x(2) - x(1)^2)^2) + (1 - x(1))^2; % Rosenbrock's function
x0 = [-1,2];
[x,fval] = fminsearch(fun,x0,options)

Figure Optimization Plot Function contains an axes object. The axes object with title Current Function Value: 4.73054e-16, xlabel Iteration, ylabel Function value contains an object of type scatter.

x = 1×2

    1.0000    1.0000

fval = 4.7305e-16

Cree una estructura que contenga las opciones predeterminadas para el solver fzero.

options = optimset('fzero');

Visualice el valor predeterminado de la opción TolX para fzero.

tol = options.TolX
tol = 2.2204e-16

Establezca opciones para utilizar una función de tolerancia de 1e-6.

oldopts = optimset('TolFun',1e-6);

Modifique las opciones de oldopts para utilizar la función de gráfica 'optimplotfval' y un valor TolX de 1e-6.

options = optimset(oldopts,'PlotFcns','optimplotfval','TolX',1e-6);

Visualice las tres opciones que ha establecido.

disp(options.TolFun);
   1.0000e-06
disp(options.PlotFcns);
optimplotfval
disp(options.TolX);
   1.0000e-06

Sobrescriba las partes correspondientes de una estructura de opciones con una estructura de opciones diferente utilizando optimset.

oldopts = optimset('Display','iter','TolX',1e-6);
newopts = optimset('PlotFcns','optimplotfval','Display','off');
options = optimset(oldopts,newopts);

Tanto oldopts como newopts establecen el valor de la opción Display. Compruebe que newopts sobrescribe oldopts para esta opción.

options.Display
ans = 
'off'

Compruebe los valores de las otras dos opciones.

options.TolX
ans = 1.0000e-06
options.PlotFcns
ans = 
'optimplotfval'

Argumentos de entrada

contraer todo

Solver de optimización, especificado como nombre o identificador de función. La estructura de opciones devuelta tiene entradas no vacías solo para el solver especificado.

Ejemplo: options = optimset('fzero')

Ejemplo: options = optimset(@fminsearch)

Tipos de datos: char | string | function_handle

Opciones de optimización anteriores, especificadas como una estructura. La salida options es la misma que oldopts, excepto para los parámetros especificados.

Ejemplo: options = optimset(oldopts,'TolX',1e-6)

Tipos de datos: struct

Opciones de optimización nuevas, especificadas como una estructura. La salida options es la misma que newopts y también incluye parámetros no vacíos de oldopts que están vacíos en newopts.

Ejemplo: options = optimset(oldopts,newopts)

Tipos de datos: struct

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value el valor correspondiente. Los argumentos nombre-valor deben aparecer tras otros argumentos, aunque no importa el orden de los pares.

En versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: options = optimset('TolX',1e-6,'PlotFcns',@optimplotfval)

Solo necesita introducir suficientes caracteres principales para definir el nombre de la opción unívocamente. optimset ignora las mayúsculas o minúsculas en los nombres de las opciones.

Nivel de visualización, especificado como el par separado por comas compuesto por "Display" y uno de estos valores:

  • 'notify': solo muestra salidas si la función no converge.

  • 'final': solo muestra la salida final.

  • 'off' o 'none': no muestran salida alguna.

  • 'iter': muestra la salida en cada iteración (no disponible para lsqnonneg).

Display está disponible para todos los solvers de optimización.

Ejemplo: options = optimset('Display','iter')

Tipos de datos: char | string

Indicador para comprobar si los valores de la función son válidos, especificado como el par separado por comas compuesto por 'FunValCheck' y el valor 'off' u 'on'. Cuando el valor es 'on', los solvers muestran un error cuando la función objetivo devuelve un valor que es complejo o NaN.

FunValCheck está disponible para fminbnd, fminsearch y fzero.

Ejemplo: options = optimset('FunValCheck','on')

Tipos de datos: char | string

Número máximo de evaluaciones de función, especificado como el par separado por comas compuesto por 'MaxFunEvals' y un entero positivo.

MaxFunEvals está disponible para fminbnd y fminsearch.

Ejemplo: options = optimset('MaxFunEvals',2e3)

Tipos de datos: single | double

Número máximo de iteraciones, especificado como el par separado por comas compuesto por 'MaxIter' y un entero positivo.

MaxIter está disponible para fminbnd y fminsearch.

Ejemplo: options = optimset('MaxIter',2e3)

Tipos de datos: single | double

Función de salida, especificada como el par separado por comas compuesto por 'OutputFcn' y un nombre de función o identificador de función. Especifique múltiples funciones de salida como un arreglo de celdas de identificadores de función. Una función de salida se ejecuta después de cada iteración, lo que permite monitorizar el proceso de resolución o detener las iteraciones. Para obtener más información, consulte Optimization Solver Output Functions.

OutputFcn está disponible para fminbnd, fminsearch y fzero.

Ejemplo: options = optimset('OutputFcn',{@outfun1,@outfun2})

Tipos de datos: char | string | cell | function_handle

Funciones de gráfica, especificadas como el par separado por comas compuesto por 'PlotFcns' y un nombre de función o identificador de función. Especifique múltiples funciones de gráfica como un arreglo de celdas de identificadores de función. Una función de gráfica se ejecuta después de cada iteración, lo que permite monitorizar el proceso de resolución o detener las iteraciones. Para obtener más información, consulte Funciones de gráfica y Sintaxis de función de salida y función de gráfica.

Las funciones de gráfica integradas son las siguientes:

  • @optimplotx representa el punto actual.

  • @optimplotfval representa el valor de la función.

  • @optimplotfunccount representa el recuento de la función (no disponible para fzero).

PlotFcns está disponible para fminbnd, fminsearch y fzero.

Ejemplo: options = optimset('PlotFcns','optimplotfval')

Tipos de datos: char | string | cell | function_handle

Tolerancia de terminación en el valor de la función, especificada como el par separado por comas compuesto por 'TolFun' y un escalar no negativo. Las iteraciones finalizan cuando el valor actual de la función difiere del valor anterior por una diferencia inferior a TolFun, en relación al valor inicial de la función. Consulte Tolerancias y criterios de detención.

TolFun está disponible solo para fminsearch.

Ejemplo: options = optimset('TolFun',2e-6)

Tipos de datos: single | double

Tolerancia de terminación en x, el punto actual, especificada como el par separado por comas compuesto por 'TolX' y un escalar no negativo. Las iteraciones finalizan cuando el punto actual de la función difiere del punto anterior por una diferencia inferior a TolX, en relación al tamaño de x. Consulte Tolerancias y criterios de detención.

TolX está disponible para todos los solvers.

Ejemplo: options = optimset('TolX',2e-6)

Tipos de datos: single | double

Argumentos de salida

contraer todo

Opciones de optimización, devueltas como una estructura. Los valores devueltos para los parámetros que no establece son [], lo que hace que los solvers utilicen los valores predeterminados de estos parámetros.

Limitaciones

  • optimset establece opciones para los cuatro solvers de optimización de MATLAB: fminbnd, fminsearch, fzero y lsqnonneg. Para establecer opciones para los solvers de Optimization Toolbox™ o Global Optimization Toolbox, la función recomendada es optimoptions.

  • optimset no puede establecer opciones para algunos solvers de Optimization Toolbox, como intlinprog. En su lugar, use optimoptions.

  • optimset no puede establecer la mayoría de opciones para los solvers de Global Optimization Toolbox. En su lugar, use optimoptions.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a