La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.
Introducción a la tarea Optimize de Live Editor
Este script de ejemplo le ayuda a utilizar la tarea Optimize de Live Editor para realizar optimizaciones o resolver ecuaciones. Modifique el script para su propio problema.
El script resuelve un problema de optimización no lineal con restricciones no lineales.
Incluir parámetros o datos
Habitualmente, tiene datos o valores para pasar al solver. Coloque esos valores en la sección de entrada (donde vea x0
) y ejecute la sección seleccionando Section > Run Section (Sección > Ejecutar sección) o pulsando Control+Enter
.
Establezca el punto inicial en x0
y escale a
para la optimización.
x0 = [2;1]; a = 100;
Coloque el valor x0
y cualquier otro dato del problema en el espacio de trabajo ejecutando esta sección antes de proceder.
Tarea Optimize de Live Editor
Esta tarea tiene incluidas funciones objetivo y funciones de restricción no lineales. Para cambiar estas funciones, edite las listas de funciones debajo de la tarea.
Para cambiar las restricciones, seleccione los tipos de restricciones adecuados e introduzca los valores en los cuadros de entrada. Es posible que necesite introducir valores en la sección que contiene x0
en la parte de arriba y ejecutar la sección para colocar valores en el espacio de trabajo.
Ejecute la tarea haciendo clic en la barra rayada de la izquierda, seleccionando Run (Ejecutar) o Section > Run Section (Sección > Ejecutar sección), o pulsando Control+Enter
.
Resultados
Optimize
guarda la solución en la variable del espacio de trabajo solution
y guarda el valor de la función objetivo en la solución en la variable del espacio de trabajo objectiveValue
. Puede consultar y modificar estos nombres de variables en la parte superior de la tarea Optimize
.
Visualice estas variables.
Visualice los valores de la función de restricción no lineal en la solución.
Funciones auxiliares — Funciones locales
El siguiente código crea la función objetivo. Modifique este código para su problema.
function f = objectiveFcn(x,a) f = a*(x(2) - x(1)^2)^2 + (1 - x(1))^2; end
El siguiente código crea la función de restricción. Modifique este código para su problema.
function [c,ceq] = constraintFcn(x) c(1) = x(1)^2 + x(2)^2 - 5; c(2) = 3 - x(1)^2 - x(2)^2; ceq = []; % No equality constraints end