Pers.narod.ru. Обучение. Лекции по MathCAD. 8. Решение оптимизационных задач в пакете MathCAD |
Оптимизационные задачи можно разделить на два класса:
задачи безусловной оптимизации (или оптимизация без ограничений).
задачи условной оптимизации (оптимизация с ограничениями).
Вторая задача отличается от первой тем, что решение ищется только среди допустимых значений или, иначе, на допустимом множестве значений переменных задачи, которые удовлетворяют заданным ограничениям.
Для этого используются две функции MathCAD:
· Maximize(f,<список параметров>) – вычисление точки максимума;
· Minimize(f,<список параметров>) – вычисление точки минимума,
где f – имя минимизируемого функционала, определенного до обращения к функции; <список параметров> – содержит перечисление (через запятую) имен параметров, относительно которых решается оптимизационная задача.
Внимание! Перед обращением к функциям Maximize, Minimize (имена которых начинаются прописными буквами) следует обязательно задать начальное значение параметров оптимизации.
Пример. Дан функционал:
.
Определить значения x, y, z, при которых g(x, y, z) достигает минимального значения.
Пример. Дан функционал:
.
Определить значения u, v, при которых f(u,v) достигает максимального значения.
Задание. Дан функционал:
.
Определить точки минимума и максимума этого функционала.
Используются те же функции Maximize, Minimize, но они входят уже в блок решения Given и перед ними размещаются ограничения в виде равенств или неравенств, определяющие допустимую область значений параметров оптимизации.
Пример. Дан функционал и ограничения в виде
Определить значения a, b, доставляющие максимальное значение функционала и удовлетворяющие неравенствам.
Замечание. В оптимизационных задачах с ограничениями решение целесообразно определять из необходимых условий экстремума. Эти условия порождают систему уравнений (чаще всего нелинейных), которые располагаются в блоке Given, вместе с ограничениями, определяющими допустимую область. Само решение ищется с помощью функций Find, Minerr.
Пример. В качестве тестового функционала при поиске точки минимума часто используется функционал Розенброка:
.
«Поверхность» этого функционала напоминает глубокий овраг, что сильно осложняет работу многих алгоритмов минимизации. Требуется вычислить точку минимума функционала при ограничениях:
.
Пример (задача линейного программирования). Цех малого предприятия должен изготовить 100 изделий трех типов и не менее 20 штук изделий каждого типа. На изделия уходит 4, 3.4 и 2 кг металла соответственно, при его общем запасе 340 кг, а также расходуются по 4.75, 11 и 2 кг пластмассы, при ее общем запасе 400 кг. Прибыль, полученная от каждого изделия равна 4, 3 и 2 рублей.
Определить сколько изделий каждого типа необходимо выпустить, для получения максимальной прибыли в рамках установленных запасов металла и пластмассы.
Пример 9.2.4 (задача нелинейного программирования). Пусть вектор v состоит из трех проекций и дан функционал:
Вычислить точку минимума этого функционала при ограничениях:
Задание 9.2.1 (задача линейного программирования). Дан функционал:
.
Определить точку максимума этого функционала при ограничениях:
Вычислить значения функционала в этой точке.
Ответ:
максимум функционала достигается в точке (0, 13, 8).
Задание (задача квадратичного программирования). Дан функционал:
Определить точку максимума этого функционала при ограничениях:
Ответ:
максимум функционала достигается в точке (7.5, 10, 6).●
гостевая; E-mail |