Main Content

evaluate

Evaluar una expresión de optimización

Descripción

Utilice evaluate para encontrar el valor numérico de una expresión de optimización en un punto.

ejemplo

val = evaluate(expr,pt) devuelve el valor de la expresión de optimización expr en el valor pt.

Ejemplos

contraer todo

Cree una expresión de optimización en dos variables.

x = optimvar('x',3,2);
y = optimvar('y',1,2);
expr = sum(x,1) - 2*y;

Evalúe la expresión en un punto.

xmat = [3,-1;
    0,1;
    2,6];
sol.x = xmat;
sol.y = [4,-3];
val = evaluate(expr,sol)
val = 1×2

    -3    12

Resuelva un problema de programación lineal.

x = optimvar('x');
y = optimvar('y');
prob = optimproblem;
prob.Objective = -x -y/3;
prob.Constraints.cons1 = x + y <= 2;
prob.Constraints.cons2 = x + y/4 <= 1;
prob.Constraints.cons3 = x - y <= 2;
prob.Constraints.cons4 = x/4 + y >= -1;
prob.Constraints.cons5 = x + y >= 1;
prob.Constraints.cons6 = -x + y <= 2;

sol = solve(prob)
Solving problem using linprog.

Optimal solution found.
sol = struct with fields:
    x: 0.6667
    y: 1.3333

Encuentre el valor de la función objetivo en la solución.

val = evaluate(prob.Objective,sol)
val = -1.1111

Argumentos de entrada

contraer todo

Expresión de optimización, especificada como un objeto OptimizationExpression.

Ejemplo: expr = 5*x+3, donde x es una OptimizationVariable

Valores de las variables en la expresión, especificados como una estructura. La estructura pt tiene los siguientes requisitos:

  • Todas las variables de expr coinciden con los nombres de campo de pt.

  • Los valores de los nombres de campo coincidentes son numéricos.

Por ejemplo, pt puede ser la solución a un problema de optimización, como la que devuelve solve.

Ejemplo: pt.x = 3, pt.y = -5

Tipos de datos: struct

Argumentos de salida

contraer todo

Valor numérico de la expresión, devuelto como un valor doble.

Advertencia

El enfoque basado en problemas no es compatible con valores complejos en una función objetivo, igualdades no lineales o desigualdades no lineales. Si el cálculo de una función tiene un valor complejo, incluso como valor intermedio, el resultado final puede ser incorrecto.

Historial de versiones

Introducido en R2017b