Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЭМС Численные МетодыТытюк.docx
Скачиваний:
43
Добавлен:
13.11.2019
Размер:
2.35 Mб
Скачать

13.1.3. Метод половинного деления

Метод половинного деления, называемый также методом дихотомии, является процедурой последовательного поиска. Пусть определен отрезок [a0, b0], которому принадлежит точка локального минимума x*. Далее для сужения промежутка, содержащего точку экстремума, используем две точки x1 и x2, расположенные симметрично на расстоянии δ > 0 от середины отрезка:

Константа δ должна быть меньше допустимой конечной длины отрезка,

Δk= bk- ak> 0.

Рассчитываем значение функции в этих точках y1=f(x1) и y2=f(x2) и в зависимости от их соотношения новые границы отрезка , содержащего точку экстремума, [a1, b1] будут следующие:

• y1< y2, a1=a0 и b1=x2;

• y1> y2, a1=x1 и b1=b0;

• y1= y2, a1=x1 и b1=x2.

Название метода половинного деления мотивировано тем, что если величина ε достаточно мала, то длина отрезка (b – a) уменьшается почти вдвое.

13.1.4. Метод квадратичной аппроксимации (метод Пауэлла).

Основан на аппроксимации функции полиномом второго порядка в некоторой окрестности и расчета на его основе координаты точки оптимума.

Пусть известны значения функции в трех точках x0 ,x1,x2 , составляющие соответственно у0 , у1 , у2. Тогда функцию f(x) можно аппроксимировать полиномом

Оптимальное значение можно оценить по формуле

Мы вычисляем значение функции в новой, четвертой точке. Точку с наихудшим значением функции можно отбросить. Тогда, последовательно применяя этот алгоритм к трем наилучшим точкам, мы будем получать последовательно сходящуюся к экстремуму последовательность x*.

13.2 Методы оптимизации многомерных функций.

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

Основные алгоритмы будем рассматривать на примере функции двух переменных вида

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

Функция Химмельблау .

Линии уровня параболоида .

Рисунок 13.1 – Примеры отображения функций двух переменных с помощью линий уровня.

13.2.1. Метод покоординатного спуска.

Алгоритм координатного спуска заключается в сведении многомерной задачи к последовательным одномерным задачам, которые решаются методами минимизации функции одной переменной, и в частности, методом золотого сечения. Вначале в прямоугольной области (8.4) зафиксируем координату y = y0, тогда функция f(x, y0) будет зависеть только от одной переменной x. Найдем минимум x01 функции f(x, y0), изменяя координату x по методу золотого сечения.

Затем зафиксируем первый аргумент x = x01 и найдем минимум y1 функции f(x01, y) относительно второго аргумента y (точка B) на рис. 13.2). Аналогичным способом перейдем последовательно к точкам C(x1, y1), D(x1 , y2 ) и т.д.

Если в области минимума функция f(x, y) достаточно гладкая, то процесс спуска по координатам будет линейно сходиться к минимуму.

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

Рисунок 13.2 - Демонстрация метода покоординатного спуска.