evaluate

Выполните выражение оптимизации

Синтаксис

Описание

пример

val = evaluate(expr,pt) возвращает значение выражения оптимизации expr в значении pt.

Примеры

свернуть все

Создайте выражение оптимизации в двух переменных.

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

Выполните выражение в точке.

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

    -3    12

Решите задачу линейного программирования.

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

Найдите значение целевой функции при решении.

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

Входные параметры

свернуть все

Выражение оптимизации, заданное как OptimizationExpression объект.

Пример: expr = 5*x+3, где x OptimizationVariable

Значения переменных в выражении, заданном как структура. Структура pt имеет следующие требования:

  • Все переменные в expr совпадайте с именами полей в pt.

  • Значения соответствующих имен полей являются числовыми.

Например, pt может быть решение задачи оптимизации, как возвращено solve.

Пример: pt.x = 3, pt.y = -5

Типы данных: struct

Выходные аргументы

свернуть все

Числовое значение выражения, возвращенного как двойное.

Предупреждение

Подход, основанный на проблеме не поддерживает комплексные числа в целевой функции, нелинейных равенствах или нелинейных неравенствах. Если функциональное вычисление имеет комплексное число, как раз когда промежуточное значение, конечный результат может быть неправильным.

Введенный в R2017b