Написать программу на языке , реализующую алгоритм метода Нелдера –Мида на примерах целевой функции

ЛАБОРАТОРНАЯ РАБОТА № 2

ЧИСЛЕННЫЕ МЕТОДЫ ПОИСКА БЕЗУСЛОВНОГО ЭКСТРЕМУМА

ЛАБОРАТОРНАЯ РАБОТА № 2.1.

Методы нулевого порядка

МЕТОД ДЕФОРМИРУЕМЫХ СИМПЛЕКСОВ (Метод Нелдера-Мида)

Постановка задачи

Требуется найти безусловный минимум функции многих переменных т.е. найти такую точку , что , .

Стратегия поиска

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

Алгоритм

Шаг 1. Задать координаты вершин многогранника ;

Параметры отражения , сжатия , растяжения ; число для остановки алгоритма. Положить (последующие шаги 2-6 соответствуют текущему номеру системы точек).

Шаг 2. Среди вершин найти «наилучшую» и «наихудшую» , соответствующие минимальному и максимальному значению функции:

а также точку , в которой достигается второе по величине после максимального значение функции .

Шаг 3. Найти «центр тяжести» всех вершин симплекса за исключением наихудшей

Шаг 4. Проверить условие окончания:

4.1. Если процесс поиска завершается (Конец) и в качестве приближенного решения можно взять наилучшую текущую точку симплекса .

4.2. Если , процесс продолжается (переход на Шаг 5).

Шаг 5. Выполнить операцию отражения наихудшей вершины через центр тяжести :

Шаг 6. Проверить выполнение условий:

6.1. Если , выполнить операцию растяжения:

Найти вершины нового многогранника:

6.1.1. Если , то вершина заменяется на . Затем и переход на Шаг 2.

6.1.2. Если , то вершина заменяется на . Затем и переход на Шаг 2.

6.2. Если , выполнить операцию сжатия:

Следует заменить вершину на , положить и переход на Шаг 2.

6.2.1. Если , то вершина заменяется на . При этом и переход на Шаг 2.

6.2.2. Если , выполнить операцию редукции. Формируется новый симплекс с уменьшенными вдвое сторонами и вершиной :

При этом следует положить и переход на Шаг 2.

Замечание 1. Нелдер и Мид рекомендовали использовать параметры Павиани - Паркинсон и Хатчинсон - В последнем случае в рамках операции отражения фактически выполняется растяжение.

ЗАДАНИЕ

Написать программу на языке , реализующую алгоритм метода Нелдера –Мида на примерах целевой функции.