Introducción a la tarea Optimize basada en solvers de Live Editor
Este script de ejemplo ayuda a utilizar la tarea Optimize basada en solvers de Live Editor para la optimización o la resolución de 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
Por lo general, se coloca la tarea Optimize de Live Editor en el script seleccionando Task > Optimize en la pestaña Live Editor o seleccionando Task > Optimize en la pestaña Insert. Después, se presenta la siguiente opción (esto solo es una imagen, no la tarea real):
Para obtener la tarea basada en solvers, haga clic en Solver-based.
La siguiente tarea basada en solvers incluye funciones objetivo y de restricción no lineales. Para cambiar esas 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
.
Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
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.
solution
solution = 2×1
1.1413
1.3029
objectiveValue
objectiveValue = 0.0200
Visualice los valores de la función de restricción no lineal en la solución.
[ccons,ceqcons] = constraintFcn(solution)
ccons = 1×2
-2.0000 -0.0000
ceqcons = []
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