Создание пустого массива ограничений оптимизации
Использовать optimconstr для инициализации набора выражений ограничений.
Совет
Полный рабочий процесс см. в разделе Рабочий процесс оптимизации на основе проблем.
Каждое выражение ограничения в проблеме должно использовать одно и то же сравнение. Например, следующий код приводит к ошибке, поскольку cons1 использует <= сравнение, cons2 использует >= сравнение, и cons1 и cons2 находятся в одном выражении.
prob = optimproblem; x = optimvar('x',2,'LowerBound',0); cons1 = x(1) + x(2) <= 10; cons2 = 3*x(1) + 4*x(2) >= 2; prob.Constraints = [cons1;cons2]; % This line throws an error
Избежать этой ошибки можно с помощью отдельных выражений для ограничений.
prob.Constraints.cons1 = cons1; prob.Constraints.cons2 = cons2;
Как правило, более эффективно создавать ограничения векторизованными выражениями, а не циклами. См. раздел Создание проблем эффективной оптимизации.
Вы можете использовать optimineq вместо optimconstr для создания выражений неравенства. Аналогично, можно использовать optimeq вместо optimconstr для создания выражений равенства.
optimeq | optimexpr | optimineq | OptimizationConstraint | OptimizationExpression | OptimizationProblem | OptimizationVariable