Решение оптимизационных задач с ограничениями
Используются те же функции Maximize, Minimize, но они входят уже в блок решения Given (см. (8.1.8)) и перед ними размещаются ограничения в виде равенств или неравенств, определяющие допустимую область значений параметров оптимизации.
Пример 9.2.1. Дан функционал:
![](image/image088.gif)
![](image/image089.gif)
и ограничения в виде
![](image/image090.gif)
Определить значения a, b, доставляющие максимальное значение функционала (9.2.1) и удовлетворяющие неравенствам (9.2.2).
Документ MathCAD, решающий эту задачу, показан на рис. 9.2.1. Точка «старта» алгоритма берется из допустимой области, определяемой ограничениями (9.2.2).
![](image/image091.gif)
Рис. 9.2.1. Условная максимизация функционала (9.2.1)
Замечание 9.2.1. В оптимизационных задачах с ограничениями решение целесообразно определять из необходимых условий экстремума. Эти условия порождают систему уравнений (чаще всего нелинейных), которые располагаются в блоке Given, вместе с ограничениями, определяющими допустимую область. Само решение ищется с помощью функций Find, Minerr (подробно рассмотренных в п. 8.2.2).
Пример 9.2.2.
В качестве тестового функционала при поиске точки минимума часто используется функционал Розенброка:
![](image/image092.gif)
«Поверхность» этого функционала напоминает глубокий овраг, что сильно осложняет работу многих алгоритмов минимизации. Требуется вычислить точку минимума функционала при ограничениях:
![](image/image093.gif)
Документ MathCAD решения этой задачи показан на рис. 9.2.2.
![](image/image094.gif)
Рис. 9.2.2. Минимизация функции Розенброка
Пример 9.2.3 (задача линейного программирования). Цех малого предприятия должен изготовить 100 изделий трех типов
![](image/image095.gif)
Документ MathCad, решающий эту задачу приведен на рис. 9.2.3.
![](image/image096.gif)
Рис. 9.2.3. Решение задачи линейного программирования
Пример 9.2.4 (задача нелинейного программирования). Пусть вектор v состоит из трех проекций и дан функционал:
![](image/image097.gif)
Вычислить точку минимума этого функционала при ограничениях:
![](image/image098.gif)
Документ MathCAD, решающий эту задачу, показан на рис. 9.2.4.
![](image/image099.gif)
Рис. 9.2.4. Решение задачи нелинейного программирования
Задание 9.2.1 (задача линейного программирования). Дан функционал:
![](image/image100.gif)
Определить точку максимума этого функционала при ограничениях:
![](image/image101.gif)
Вычислить значения функционала в этой точке.
Ответ: максимум функционала достигается в точке (0, 13, 8). ?
Задание 9.2.2 (задача квадратичного программирования). Дан функционал:
![](image/image102.gif)
Определить точку максимума этого функционала при ограничениях:
![](image/image103.gif)
Ответ: максимум функционала достигается в точке (7.5, 10, 6).?