infeasibility

Нарушение ограничений в точке

Описание

Использовать infeasibility чтобы найти числовое значение нарушения ограничений в точке.

пример

infeas = infeasibility(constr,pt) возвращает количество нарушений ограничения constr в точке pt.

Примеры

свернуть все

Проверьте, удовлетворяет ли точка ограничению.

Настройте переменные оптимизации и два ограничения.

x = optimvar('x');
y = optimvar('y');
cons = x + y <= 2;
cons2 = x + y/4 <= 1;

Проверяйте, является ли точка x = 0, y = 4 удовлетворяет ограничению с именем cons. Точка допустима, когда ее недопустимость равна нулю.

pt.x = 0;
pt.y = 4;
infeas = infeasibility(cons,pt)
infeas = 2

Точка зрения не является допустимой относительно этого ограничения.

Проверьте допустимость относительно другого ограничения.

infeas = infeasibility(cons2,pt)
infeas = 0

Точка допустима относительно этого ограничения.

Проверьте, удовлетворяет ли точка ограничению, имеющему несколько условий.

Настройте переменную оптимизации и вектор ограничений.

x = optimvar('x',3,2);
cons = sum(x,2) <= [1;3;2];

Проверяйте, является ли точка pt.x = [1,-1;2,3;3,-1] удовлетворяет этим ограничениям.

pt.x = [1,-1;2,3;3,-1];
infeas = infeasibility(cons,pt)
infeas = 3×1

     0
     2
     0

Точка не является допустимой относительно второго ограничения.

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

свернуть все

Ограничение оптимизации, заданное как OptimizationEquality объект, OptimizationInequality объект, или OptimizationConstraint объект. constr может представлять одно ограничение или массив ограничений.

Пример: constr = x + y <= 1 является одним ограничением, когда x и y являются скалярными переменными.

Пример: constr = sum(x) == 1 является массивом ограничений, когда x - массив двух или более размерностей.

Укажите для вычисления, заданную как структуру с именами полей, которые совпадают с именами переменных оптимизации, для переменных оптимизации в ограничении. Размер каждого поля в pt должен совпадать с размером соответствующей переменной оптимизации.

Пример: pt.x = 5*eye(3)

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

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

свернуть все

Недопустимость ограничения, возвращенная как действительный массив. Каждая нулевая запись представляет допустимое ограничение, а каждая положительная запись представляет недопустимое ограничение. Размер infeas совпадает с размером ограничения constr. Для примера нескаляра infeas, см. «Вычисление нескольких нарушений ограничений».

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

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

Введенный в R2017b