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

Санкт-Петербургский Государственный Электротехнический Университет «лэти» фкти сапр

Лабораторная работа №3

«Линейный поиск по направлению»

Вариант 1

Выполнили: Байда А.Ю.

Турченко П.Н.

Проверил: Алешкевич П.А.

Санкт-Петербург

2004г

Задание

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

Реализовать на языке С++ методы оптимизации. Протестировать программу и сравнить результаты работы заданных методов оптимизации при использовании различных критериев окончания поиска и при задании различных значений погрешности локализации минимума. Сделать выводы.

Описание методов оптимизации.

Метод Свенна. (для поиска в пространстве по направлению)

С помощью метода Свенна получают начальный интервал локализации минимума [a,b] .

Начальный этап. Для запуска метода необходимо:

(1) задать x0 – начальная точка.

(2) выбрать шаг h равным 0.001 или min{η,|(y1-y’)/y’1|}, где η=1,2.

(3) выбрать направление поиска p.

Основной этап

Шаг 1. Установить направление убывания функции. Взять x2=x1+h*p. Если f2>f1, поменять направление движения.

Шаг 2. Вычислять xk+1=xk+hk*p, hk=2hk-1 до тех пор пока не придём в точку xn такую что fn>fn-1.

Шаг 3. Установить начальный интервал локализации минимума a1=xn-2 и b1=xn.

Метод Свенна 4.

Начальный этап. Для запуска метода необходимо:

(1) задать x0 – начальная точка.

(2) выбрать шаг h равным 0.001 или min{η,|(y1-y’)/y’1|}, где η=1,2.

(3) выбрать направление поиска p.

Основной этап

Шаг 1. Установить направление убывания функции. h=h, если y’(x0,p)<0 и h=-h, если y’(x0,p)>0.

Шаг 2.Двигаться в направлении р, вычисляя значение функции в точках xk+1=xk+hk*p, hk=2hk-1. Пока производная не поменяет знак, т.е. Y’m-1*Y’m<0

Шаг 3. Фиксируем начальный интервал: [Xm-1,Xm]

Метод Золотого Сечения 2. (для функции нескольких переменных)

Метод Золотого Сечения является процедурой линейного поиска минимума унимодальной функции f(x) на интервале [a, b], отличающейся тем, что на каждой итерации очередная пробная точка делит интервал локализации в отношении постоянном для всех интервалов τ=L2/L1=L3/L2=...Ln/Ln-1.

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

(1) Задать константу , начальный интервал [a1, b1] вычисляется методом Свенна.

(2) Вычислить одну стартовую точку x1 = a1 + 0.618L*p L=|a-b|

(3) Положить k = 1.

Основной этап

Шаг 1. Взять очередную точку x2=a1+b1-x1 симметричную исходной x1 и сократить ТИЛ рассмотрением четырёх ситуаций: если x1<x2 и f(x1)<f(x2) то ak+1=ak, bk+1=x2, x1=x1; если x1<x2 и f(x1)>f(x2) то ak+1= x1, bk+1= bk, x1=x2; если x1>x2 и f(x1)<f(x2) то ak+1=x1, bk+1= bk, x1=x1; если x1>x2 и f(x1)>f(x2) то ak+1=ak, bk+1=x1, x1=x2.

Положить k=k+1.

Шаг 2. Проверить критерий окончания поиска: если |a-b| <  фиксируем аппроксимирующий минимум x*=(a+b)/2.

и на Шаг 1.