Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.
Aunque la aplicación de optimización ofrece formas convenientes para establecer opciones y ejecutar problemas, se eliminará en una versión futura. En este tema se describen otras formas de realizar tareas de optimización sin usar la aplicación.
Establezca opciones fácilmente, oEstablecer opciones con Live scriptsEstablecer opciones: línea de comandos o scripts estándar
Monitorear la optimización —Elija trazar funciones
Pase los argumentos del solucionador correctamente —Pasar argumentos Solver
A partir de R2018a, los scripts en vivo muestran sugerencias de nombres y valores.optimoptions
En la pestaña, en la sección, haga clic para crear un script en vivo.HomeFileNew Live Script
En el editor en vivo, establezca las opciones escribiendo. muestra una lista de solucionadores.options = optimoptions(
MATLAB®
Seleccione un solucionador y, a continuación, escriba una coma. muestra una lista de pares nombre-valor para el solucionador.MATLAB
Seleccione un par nombre-valor de una de estas maneras:
Haga clic en el par nombre-valor.
Utilice las teclas de flecha para resaltar el par nombre-valor y, a continuación, pulse.pestaña
Escriba las primeras letras del par nombre-valor y, a continuación, presione.pestaña
Introduzca el valor adecuado para el nombre seleccionado. Si el valor proviene de una lista de opciones, puede seleccionarlo del mismo modo que seleccionó el nombre.
Continúe agregando pares nombre-valor hasta que las opciones estén completas.
Asegúrese de pasar las opciones al solucionador.
[x,fval,exitflag,output] = ... fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nlcon,options)
Sugerencia
Para obtener ayuda para elegir un solucionador, consulte.Tabla de decisión de optimización
Para obtener ayuda para elegir el algoritmo de solucionador, consulte.Elegir el algoritmo
Para entender el significado de otras opciones, vea.Establezca opciones
A partir de R2018a, la línea de comandos y el editor estándar muestran sugerencias para nombres y valores.MATLABoptimoptions
Configure las opciones introduciendo y presionando. muestra una lista de solucionadores.options = optimoptions('
pestañaMATLAB
Seleccione un solucionador de una de estas maneras:
Haga doble clic en el solucionador.
Utilice las teclas de flecha para resaltar el solucionador y, a continuación, pulse.pestaña
Escriba las primeras letras del solucionador y, a continuación, presione.pestaña
Introduzca y, a continuación, pulse. muestra una lista de pares nombre-valor para el solucionador.','
pestañaMATLAB
Seleccione un par nombre-valor utilizando una de las formas descritas en el paso 2.
Introduzca el valor adecuado para el nombre seleccionado. Si el valor proviene de una lista de opciones, puede seleccionarlo del mismo modo que seleccionó el nombre.
Continúe agregando pares nombre-valor hasta que las opciones estén completas.
Asegúrese de pasar las opciones al solucionador.
[x,fval,exitflag,output] = ... fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nlcon,options)
Sugerencia
Para obtener ayuda para elegir un solucionador, consulte.Tabla de decisión de optimización
Para obtener ayuda para elegir el algoritmo de solucionador, consulte.Elegir el algoritmo
Para entender el significado de otras opciones, vea.Establezca opciones
Para monitorizar la optimización mientras se ejecuta, utilice una función de trazado. Los solvers tienen un conjunto de funciones de trazado incorporadas. Se usa para establecer el par nombre-valor en una función de trazado integrada, una matriz de funciones de trazado integradas o un identificador de función o matriz de celdas de identificadores de función para trazar funciones.optimoptions
'PlotFcn'
Elija las funciones de trazado utilizando scripts en vivo:
Para elegir las funciones de trazado mediante el editor o la línea de mandatos, introduzca options =
optimoptions('
y pulse:pestañasolvername
','PlotFcn',{'
Para elegir una función de trazado personalizada, pase un identificador de función como.@myplotfun
Para obtener más información sobre cómo escribir una función de trazado personalizada, consulte.Sintaxis de función de trazado
,, y no admiten las funciones de trazado, porque estos solucionadores normalmente se ejecutan rápidamente.linprog
lsqlin
quadprog
lsqnonneg
Para supervisar su progreso, puede usar la visualización iterativa para el algoritmo y el algoritmo.linprog
lsqlin
'interior-point'
quadprog
'interior-point-convex'
Establezca la opción en.'Display'
'iter'
Los, y solucionadores no utilizan opciones creadas por, sólo.fminbnd
fminsearch
fzero
optimoptions
optimset
Para ver qué funciones de trazado utilizan estos solucionadores, consulte sus páginas de referencia:
Solvers utilizan argumentos de función posicional. Por ejemplo, la sintaxis de los argumentos esfmincon
fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
Si desea incluir solo, y argumentos, la sintaxis adecuada esfun
x0
lb
options
fmincon(fun,x0,[],[],[],[],lb,[],[],options)
A veces el inexperto, en cambio, escribe
fmincon(fun,x0,lb,options) % This is incorrect!
Esta llamada produce un error. En este comando incorrecto, interpreta el argumento como la representación de la matriz y el argumento representa el vector.fmincon
lb
A
options
b
El tercer argumento siempre representa la matriz, y el cuarto argumento siempre representa el vector.A
b
Puede ser difícil realizar un seguimiento de los argumentos posicionales al introducir un comando. A continuación se presentan sugerencias para obtener la sintaxis correcta.
Usar scripts en vivo. Al introducir un comando, verá sugerencias de función que le guiarán para introducir el argumento correcto en cada posición. Escriba para los argumentos no utilizados.[]
Utilice el editor o la línea de comandos.MATLAB Al introducir comandos, verá listas de sintaxis adecuada que le guiarán para introducir el argumento correcto en cada posición. Escriba para los argumentos no utilizados.[]
Cree una estructura.problem
De este modo, puede pasar menos argumentos y pasar argumentos con nombre en lugar de argumentos posicionales. Para, la estructura requiere al menos los campos,, y.fmincon
problem
Objetivo
x0
solver
options
Por lo tanto, para dar sólo el,,, y argumentos, crear una estructura de la siguiente manera:fun
x0
lb
options
problem
% These commands assume that fun, x0, lb, and opts exist prob.objective = fun; prob.x0 = x0; prob.lb = lb; prob.options = opts; prob.solver = 'fmincon';
También puede crear una estructura utilizando un comando.problem
struct
% This command assumes that fun, x0, lb, and opts exist prob = struct('objective',fun,'x0',x0,'lb',lb,... 'options',opts,'solver','fmincon')
Si tiene Global Optimization Toolbox, puede crear una estructura de problemas para, y mediante.fmincon
fminunc
lsqcurvefit
lsqnonlin
createOptimProblem
(Global Optimization Toolbox)