- •2005 Содержание:
- •1) Цель работы и требования задания
- •1.1) Цель работы
- •2) Краткое описание метода оптимизации
- •2.1) Обобщенный метод Ньютона
- •2.2) Метод Давидона:
- •3.1) Метод Давидона:
- •3.2) Обобщенный метод Ньютона:
- •4) Спецификация программы
- •5) Текст программы
- •6) Результаты тестирования программы
- •7) Ответы на контрольные вопросы
- •8) Выводы по работе
Министерство образования РФ
Санкт-Петербургский государственный
Электротехнический университет «ЛЭТИ»
Отчет
по лабораторной работе N6
«.Исследование модификаций ньютоновских оптимизационных процессов»
Вариант 1
Выполнили: студенты гр. 3371
Мифтахетдинов Э.
Кохтенко Н.
Проверил: преподаватель
Выборнов Д.М.
Санкт-Петербург
2005 Содержание:
1) Цель работы ---------------------------------------3
2) Краткое описание метода оптимизации----------------3
3) Пооператорная блок-схема---------------------------4
4) Спецификация программы-----------------------------6
5) Текст программы------------------------------------7
6) Результаты тестирования программы-----------------13
7) Ответы на контрольные вопросы---------------------13
8) Выводы по работе----------------------------------14
1) Цель работы и требования задания
1.1) Цель работы
Изучение метода Ньютона и его модификаций, а также разработка программы, удовлетворяющей требованиям лабораторной работы 5.
.
Дано: функция f(x) = 100(x2–x12)2+ (1 –x1)2
Функция f2(x) = (x1– 1)2+ (x2– 3)2+ 4(x3+ 5)2
начальная точка x1 = (1.5;2);
Для f2(x) - (4; –1; 2);
точность локализации минимума = 10–3;
Значение минимума x* = (1; 1)
Для f2(x) – x* = (1; 3; –5)
Найти: минимум (xmin = ?).
2) Краткое описание метода оптимизации
2.1) Обобщенный метод Ньютона
Модификации метода ньютона направлены на:
-снижение чувствительности к выбору начальной точки;
-уменьшение затрат на вычисление обратной матрицы;
-сохранение положительной определенности гессиана во всех точках вычисления;
-уменьшение объема вычислений при расчете вторых производных, т.е. минимизировать затраты на решение СЛАУ;
-обеспечение релаксационного процесса при котором .
Отличительной особенностью обобщенного метода Ньютона является выбор шага Alpha и минимизация целевой функции по Alpha вдоль полученного направления P.
Реализуется следующим алгоритмом:
Начальный этап:
Задать произвольную начальную точку x0Rn ;
Задать точность вычислений Eps1=Eps2=0.0000001-0.0001;
Задать кол-во шагов M=100 (например);
Положить счетчик итераций К=1;
Основной этап:
Шаг 1. Установить направление поиска минимума. Для этого взять pk=-(Hk)-1gk.
Шаг 2. Минимизировать целевую функцию по Alpha вдоль полученного pk.
Шаг 3. Перейти в новую точку Xk+1=Xk+alphakpk.
Шаг 4. Проверить КОП (например, К≥М или (норма градиента)≤eps)
2.2) Метод Давидона:
Начальный этап:
Задать Eps, p, xk;
Выбрать начальный шаг по формуле Давидона, предварительно вычислив производную по направлению;
Реализовать Svenn-4 для установления интервала [Alphaa, Alphab];
Основной этап:
Шаг 1. Найти аппроксимирующий шаг Alphar = Alphab(W-Y’a+Z)/(2*W-Y’a+Y’b)
r = a+Alpha*p
Шаг 2. Проверить КОП (Y’r ≤ Eps). Если КОП выполняется, то СТОП, найден шаг, а значит и минимум, иначе сократить ТИЛ рассмотрением двух ситуаций:
Если Y’r ≥ 0, тогда Alphab=Alphar
Если Y’r < 0, тогда Alphab= Alphab -Alphar
Пооператорная блок-схема
3.1) Метод Давидона:
3.2) Обобщенный метод Ньютона:
4) Спецификация программы
Point – реализованный класс.
Имя функции |
Назначение |
Входные параметры |
Возвращаемое значение |
main |
Главная функция в программе, в которой и реализуется метод Свенна и метод Золотого сечения - 1 |
|
|
fabs |
Реализует значение по модулю |
Point &p |
result |
f |
Задание функции |
Point &p |
100(x2–x12)2+ (1 –x1)2 |
dfitd |
Реализация производной по направлению |
Point &x, Point &p |
(f(x1)-f(x2))/(2*alpha) |
df |
Реализация разностной производной |
Point &x |
|
min |
Реализация выбора минимального из двух |
X,Y |
Либо X, либо Y |
SegmentLength |
Вычисление длины отрезка |
Point &x, Point &y |
Либо sqrt(ans), либо -sqrt(ans) |
Svenn4 |
Нахождение начального интервала локализации для метода Давидона |
dy1, Point &pk1, Point &xk1, ak, Point &xa, Point &xb |
|
KOP |
Реализует функцию критерия окончания поиска |
Point &x, epsilon |
stop |
ON |
Реализация обобщенного метода Ньютона |
*xk1, eps |
xk |
FindAlpha |
Метод Давидона |
Point &pk1, Point &xk1, eps |
al_r |