Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №6.doc
Скачиваний:
5
Добавлен:
01.05.2014
Размер:
125.95 Кб
Скачать

Министерство образования РФ

Санкт-Петербургский государственный

Электротехнический университет «ЛЭТИ»

Отчет

по лабораторной работе 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(x2x12)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.

Реализуется следующим алгоритмом:

Начальный этап:

Задать произвольную начальную точку x0Rn ;

Задать точность вычислений 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). Если КОП выполняется, то СТОП, найден шаг, а значит и минимум, иначе сократить ТИЛ рассмотрением двух ситуаций:

  1. Если Y’r ≥ 0, тогда Alphab=Alphar

  2. Если Y’r < 0, тогда Alphab= Alphab -Alphar

  1. Пооператорная блок-схема

3.1) Метод Давидона:

3.2) Обобщенный метод Ньютона:

4) Спецификация программы

Point – реализованный класс.

Имя функции

Назначение

Входные параметры

Возвращаемое значение

main

Главная функция в программе, в которой и реализуется метод Свенна и метод Золотого сечения - 1

fabs

Реализует значение по модулю

Point &p

result

f

Задание функции

Point &p

100(x2x12)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