Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Optimización de aplicaciones alternativas

Optimizar sin usar la aplicación

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.

Establecer opciones con Live scripts

A partir de R2018a, los scripts en vivo muestran sugerencias de nombres y valores.optimoptions

  1. En la pestaña, en la sección, haga clic para crear un script en vivo.HomeFileNew Live Script

  2. En el editor en vivo, establezca las opciones escribiendo. muestra una lista de solucionadores.options = optimoptions(MATLAB®

  3. 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

  4. 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.

  5. Continúe agregando pares nombre-valor hasta que las opciones estén completas.

  6. Asegúrese de pasar las opciones al solucionador.

    [x,fval,exitflag,output] = ...
        fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nlcon,options)

Sugerencia

Establecer opciones: línea de comandos o scripts estándar

A partir de R2018a, la línea de comandos y el editor estándar muestran sugerencias para nombres y valores.MATLABoptimoptions

  1. Configure las opciones introduciendo y presionando. muestra una lista de solucionadores.options = optimoptions('pestañaMATLAB

  2. 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

  3. 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.

  4. 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.

  5. Continúe agregando pares nombre-valor hasta que las opciones estén completas.

  6. Asegúrese de pasar las opciones al solucionador.

    [x,fval,exitflag,output] = ...
        fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nlcon,options)

Sugerencia

Elija trazar funciones

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('solvername','PlotFcn',{' y pulse:pestaña

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.linproglsqlinquadproglsqnonneg Para supervisar su progreso, puede usar la visualización iterativa para el algoritmo y el algoritmo.linproglsqlin'interior-point'quadprog'interior-point-convex' Establezca la opción en.'Display''iter'

Los, y solucionadores no utilizan opciones creadas por, sólo.fminbndfminsearchfzerooptimoptionsoptimset Para ver qué funciones de trazado utilizan estos solucionadores, consulte sus páginas de referencia:

Pasar argumentos Solver

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 esfunx0lboptions

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.fminconlbAoptionsb El tercer argumento siempre representa la matriz, y el cuarto argumento siempre representa el vector.Ab

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.fminconproblemObjetivox0solveroptions Por lo tanto, para dar sólo el,,, y argumentos, crear una estructura de la siguiente manera:funx0lboptionsproblem

    % 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.problemstruct

    % 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.fminconfminunclsqcurvefitlsqnonlincreateOptimProblem (Global Optimization Toolbox)

Temas relacionados