Создайте задачу оптимизации
prob = optimproblemprob = optimproblem(Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары prob = optimproblem(Name,Value)Name,Value. Например, чтобы задать проблему максимизации вместо проблемы минимизации, используйте prob = optimproblem('ObjectiveSense','maximize').
Создайте задачу оптимизации со свойствами по умолчанию.
prob = optimproblem
prob =
OptimizationProblem with properties:
Description: ''
ObjectiveSense: 'minimize'
Variables: [0x0 struct] containing 0 OptimizationVariables
Objective: [0x0 OptimizationExpression]
Constraints: [0x0 struct] containing 0 OptimizationConstraints
No problem defined.
Создайте линейную проблему программирования для максимизации. Проблема имеет две положительных переменные и три линейных ограничения неравенства.
prob = optimproblem('ObjectiveSense','max');
Создайте положительные переменные. Включайте целевую функцию в проблему.
x = optimvar('x',2,1,'LowerBound',0); prob.Objective = x(1) + 2*x(2);
Создайте линейные ограничения неравенства в проблеме.
cons1 = x(1) + 5*x(2) <= 100; cons2 = x(1) + x(2) <= 40; cons3 = 2*x(1) + x(2)/2 <= 60; prob.Constraints.cons1 = cons1; prob.Constraints.cons2 = cons2; prob.Constraints.cons3 = cons3;
Рассмотрите проблему.
showproblem(prob)
OptimizationProblem :
max :
x(1) + 2*x(2)
subject to cons1:
x(1) + 5*x(2) <= 100
subject to cons2:
x(1) + x(2) <= 40
subject to cons3:
2*x(1) + 0.5*x(2) <= 60
variable bounds:
0 <= x(1)
0 <= x(2)
Решите проблему.
sol = solve(prob);
Optimal solution found.
sol.x
ans = 2×1
25.0000
15.0000
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
prob = optimproblem('ObjectiveSense','maximize').Ограничения Ограничения задачOptimizationConstraint | структура с массивами OptimizationConstraint как поляОграничения задач, заданные как массив OptimizationConstraint или структура с массивами OptimizationConstraint как поля.
Пример: prob = optimproblem('Constraints',sum(x,2) == 1)
'Description' — Problem'' (значение по умолчанию) | представляет в виде строки | вектор символовПроблемная метка, заданная как строка или вектор символов. Программное обеспечение не использует Description для вычисления. Description является произвольной меткой, которую можно использовать по любой причине. Например, можно совместно использовать, заархивировать, или представить модель или проблему, и хранить описательную информацию о модели или проблеме в свойстве Description.
Пример: prob = optimproblem('Description',"An iterative approach to the Traveling Salesman problem")
Типы данных: char | string
Цель Целевая функцияOptimizationExpressionЦелевая функция, заданная как скалярный объект OptimizationExpression.
Пример: prob = optimproblem('Objective',sum(sum(x))) для 2D переменной x
'ObjectiveSense' — Смысл оптимизации'minimize' (значение по умолчанию) | 'min' | 'maximize' | 'max'Смысл оптимизации, заданной как 'minimize' или 'maximize'. Можно также задать 'min', чтобы получить 'minimize' или 'max', чтобы получить 'maximize'. Функция solve минимизирует цель, когда ObjectiveSense является 'minimize' и максимизирует цель, когда ObjectiveSense является 'maximize'.
Пример: prob = optimproblem('ObjectiveSense','max')
Типы данных: char | string
prob — Задача оптимизацииOptimizationProblemЗадача оптимизации, возвращенная как объект OptimizationProblem. Как правило, чтобы завершить описание проблемы, вы задаете целевую функцию и линейные ограничения. Однако у вас может быть проблема выполнимости, которая не имеет никакой целевой функции, или у вас может быть проблема без линейных ограничений. Решите полную проблему путем вызова solve.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.