Оптимизация функций одной и нескольких переменных в PTC MathCAD

1. Поиск экстремума функции

Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. Ограничения значений аргументов, задающих эту область, как и прочие дополнительные условия, должны быть определены в виде системы неравенств и (или) уравнений. В таком случае говорят о задаче на условный экстремум.

Для решения задач поиска максимума и минимума в Mathcad имеются встроенные функции Minerr, Minimize и Maximize. Все они используют те же градиентные численные методы, что и функция Find для решения уравнений.

2. Экстремум функции одной переменной

Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремума. Последние называют еще задачами оптимизации. Рассмотрим конкретный пример функции f(x), показанной графиком на рис.2 на интервале (-2,5). Она имеет глобальный максимум на левой границе интервала, глобальный минимум, локальный максимум, локальный минимум и локальный максимум на правой границе интервала (в порядке слева направо).

В Mathcad с помощью встроенных функций решается только задача поиска локального экстремума. Чтобы найти глобальный максимум (или минимум), требуется либо сначала вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать с некоторым шагом рассматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности. Последний путь таит в себе некоторую опасность уйти в зону другого локального экстремума, но часто может быть предпочтительнее из соображений экономии времени.

График функции Рис. 1. График функции f(х)=х4+5х3-10х

Построим график заданной функции (рис.1). По графику видны участки локальных экстремумов функции.

Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно.

· Minimize (f, x1, … ,хм) — вектор значений аргументов, при которых функция f достигает минимума;

· Maximize (f, х1, … ,хм) — вектор значений аргументов, при которых функция f достигает максимума;

      • f (x1, … , хм,…) — функция;
      • x1, … , xм — аргументы, по которым производится минимизация (максимизация).

Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления экстремума функции одной переменной (рис.1) без дополнительных условий показаны в листинге на рис.2. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняется для любых значений.

Поиск локальных экстремумов

минимум максимум Локальный максимум Рис.2. Поиск локальных экстремумов функции одной переменной

Как видно из листинга, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются локальные различные экстремумы. В последнем случае численный метод вообще не справляется с задачей, поскольку начальное приближение х=-10 выбрано далеко от области локального максимума, и поиск решения уходит в сторону увеличения f (х).

3. Условный экстремум

В задачах на условный экстремум функции минимизации и максимизации должны быть включены в вычислительный блок, т. е. им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью булевых операторов записываются логические выражения (неравенства, уравнения), задающие ограничения на значения аргументов минимизируемой функции. На рис.3 показаны примеры поиска условного экстремума на различных интервалах, определенных неравенствами. Сравните результаты работы этого листинга с двумя предыдущими.

Условный экстремумimage Условный экстремум 1

Рис. 3. Три примера поиска условного экстремума функции

Не забывайте о важности выбора правильного начального приближения и в случае задач на условный экстремум. Например, если вместо условия — 3<х<0 в последнем примере листинга задать -5<х<0, то при том же самом начальном х=-10 будет найден максимум Maximize(f,x) =-0.944, что неверно, поскольку максимальное значение достигается функцией f (х) на левой границе интервала при х=-5. Выбор начального приближения х=-4 решает задачу правильно, выдавая в качестве результата Maximize (f ,x) =-5.

4. Экстремум функции многих переменных

Вычисление экстремума функции многих переменных не несет принципиальных особенностей по сравнению с функциями одной переменной. Поэтому ограничимся примером (рис.4) нахождения минимума функции, показанной в виде графика трехмерной поверхности (рис. 4).

Экстремум функции многих переменных

Рис. 4. Минимум функции двух переменных

Поиск минимума можно организовать и с помощью функции Minerr. Для этого в листинге (рис.4) надо поменять имя функции Minimize на Minerr, а после ключевого слова Given добавить выражение, приравнивающее функцию f (х,у) значение, заведомо меньшее минимального, например f (х,у) =0.

Скачать пример

Александр Малыгин

Объект обсуждения - программное обеспечение для выполнения автоматизированного конструкторского и технологического проектирования, разработки управляющих программ, вопросы, связанные с разработкой прикладных САПР.

2 Комментарии “Оптимизация функций одной и нескольких переменных в PTC MathCAD

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *