Main Content

Optimize

Optimizar o resolver ecuaciones en Live Editor

Desde R2020b

Descripción

La tarea Optimize permite escoger entre dos formas de optimizar problemas interactivamente o de resolver sistemas de ecuaciones no lineales:

  • Basada en problemas (recomendado): cree variables y expresiones de optimización simbólicas para representar la función objetivo y las restricciones o ecuaciones.

  • Basada en solvers: represente la función objetivo y las restricciones o ecuaciones con código estándar de MATLAB®.

La tarea genera automáticamente código de MATLAB para su script en vivo.

Con la versión basada en problemas de esta tarea, puede:

  • Especificar arreglos de variables de optimización, incluyendo sus límites y valores iniciales.

  • Especificar el tipo de problema: minimización, maximización, factibilidad o resolución de ecuaciones.

  • Especificar la función objetivo y la función de restricción, bien escribiendo expresiones, bien buscando funciones.

  • Opcionalmente, elegir un solver y especificar opciones no predeterminadas.

  • Ejecutar la optimización.

Con la versión basada en solvers de esta tarea, puede:

  • Escoger un solver en función de las características del problema. Si tiene Global Optimization Toolbox, puede utilizar también sus solvers.

  • Especificar la función objetivo y la función de restricción, bien escribiéndolas, bien buscándolas.

  • Especificar las opciones de solver.

  • Ejecutar la optimización.

Para comenzar a utilizar Optimize, consulte Introducción a la tarea Optimize basada en solvers de Live Editor y Introducción a la tarea Optimize basada en problemas de Live Editor. Para obtener sugerencias sobre cómo utilizar Optimize, consulte Use Solver-Based Optimize Live Editor Task Effectively o Usar la tarea basada en problemas Optimize de Live Editor de forma efectiva. En este momento no puede utilizar los solvers fseminf, GlobalSearch o MultiStart con Optimize.

Para obtener más información sobre las tareas de Live Editor, consulte Add Interactive Tasks to a Live Script.

Optimize task in Live Editor: Choose between problem-based (recommended) and solver-based

Abrir la tarea

Para añadir la tarea Optimize a un script en vivo del editor de MATLAB, en la pestaña Insert (Insertar) de Live Editor, seleccione Task > Optimize(Tarea > Optimizar).

Insert an Optimize Live Editor task

De forma alternativa, en un bloque de código del script, escriba una palabra clave relevante, como optim o fmincon. Seleccione Optimize a partir del completado de comandos sugerido.

Choosing Optimize from command completion suggestions

Después de insertar la tarea, seleccione Problem-based (recommended) o Solver-based.

Parámetros

expandir todo

Los nombres de variables basadas en problemas son dinámicos; puede escoger cualquier nombre que desee, sujeto siempre a las restricciones de nombres habituales (consulte Nombres de variables).

Basada en problemas

Tipo de problema, especificado haciendo clic en el botón con la etiqueta adecuada.

Función objetivo, especificada como expresión de optimización, función local o archivo de función. Se aplica cuando la Goal es Minimize o Maximize.

Restricciones en la solución, especificadas como expresión de optimización, función local o archivo de función. Añada restricciones al problema haciendo clic en el botón +.

Ecuaciones de problema, especificadas como expresión de optimización, función local o archivo de función. Se aplica cuando el Goal es Solve equations. Añada ecuaciones al problema haciendo clic en el botón +.

Estado de la tarea, especificado como Define problem o Solve problem. Para obtener más información, consulte Usar la tarea basada en problemas Optimize de Live Editor de forma efectiva.

Basada en solvers

Tipo de función objetivo, especificado haciendo clic en el botón con la etiqueta adecuada. La función objetivo seleccionada determina qué solvers están disponibles y cuál se recomienda para el problema (consulte Solver).

Tipos de restricciones, especificados haciendo clic en los botones con la etiqueta adecuada. Puede especificar más de un tipo de restricción. Las restricciones seleccionadas determinan qué solvers están disponibles y cuál se recomienda para el problema (consulte Solver).

Solver de optimización que MATLAB utiliza para resolver el problema, especificado seleccionando un solver a partir de la lista de solvers disponibles. Los solvers disponibles y el solver recomendado dependen de su licencia y del Objective y Constraints seleccionados.

Limitaciones

  • En este momento, Optimize tiene las siguientes restricciones para optimización multiobjetivo.

    • Debe especificar las funciones objetivo mediante una función única con varias salidas. Dicho de otro modo, la función objetivo debe obtener como salida un vector de valores, una entrada para cada objetivo.

    • Todas las funciones objetivo deben utilizar el mismo sentido, minimización para la tarea basada en solvers y, bien una minimización, bien una maximización para la tarea basada en problemas.

Sugerencias

  • Para funciones con entradas adicionales, las tareas Optimize basadas en solvers y basadas en problemas tienen requisitos algo diferentes.

    • Basada en solvers: elija la variable de optimización y especifique qué variables del área de trabajo contienen las entradas de datos fijas. Para obtener ejemplos, consulte Place Optimization Variables in One Vector and Data in Other Variables, que contiene tres entradas de función:

      Optimization input = vars, Fixed input y = y, Fixed input w = w.

      Optimize genera código solo después de haber especificado todas las entradas de función.

    • Basada en problemas: especifique un nombre de variable de optimización o variable del área de trabajo para cada entrada de función. Si un nombre de argumento de entrada en la signatura de la función coincide con un nombre de variable de optimización o variable del área de trabajo existente, Optimize selecciona automáticamente ese nombre.

      Function inputs = x, y, a.

      Optimize genera código solo después de haber especificado todas las entradas de función.

  • Optimize no puede analizar una función que contenga la entrada varargin o una función que contenga un error.

  • Si selecciona una función de un archivo, Optimize añade la ubicación del archivo a su ruta de MATLAB.

  • Si Optimize tiene un error de análisis o si varias funciones locales tienen el mismo nombre, la lista de funciones locales disponibles está vacía.

Historial de versiones

Introducido en R2020b

expandir todo

Consulte también

Funciones