Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оптимизация, численные методы.pdf
Скачиваний:
358
Добавлен:
20.06.2014
Размер:
909.58 Кб
Скачать

3. Проверка условия остановки итерационной процедуры

– если

 

f0

'(x0 )

 

ε , то задача решена, переходим на п.6;

 

 

– если

 

f0

'(x0 )

 

>ε , то переходим на п.4.

 

 

 

 

4. Вычисляется следующее приближение

 

 

 

x1

= x0 h f0 '(x0 ) (или x1 = x0 h

f0 (x0 ) / δ ),

значение критерия f1=f0(x1), производная f0'(x1)

или конечная разность

f0 (x1) = f0 (x1 +δ) f0 (x1) . Проверяется условие улучшаемости полученной точки: f1<f0 ? Если условие выполняется, то поиск следует продолжить из точки x1, т.е. x0=x1, f0'(x0)=f0'(x1), f0=f1, переход на п.3. Если f1 f0 , то переход на п.5.

5. Значение критерия возросло, следовательно, "проскочили" минимум. Начинаем поиск минимума в окрестности точки x0. Проверяем условие h <ε ? Если да, то переход на п.6, иначе уменьшаем шаг h=h/2 и возврат на п.4.

6. Печать "х*=", х0, оптимального значения критерия f0(x0) и для контроля правильности полученных данных – f0'(x0).

7.7. Методы полиномиальной аппроксимации

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

Например, пусть целевая функция f(x) аппроксимирована полиномом второй степени.

P(x) = a0 + a1 x + a2 x2 ;

P'(x) = a1 + 2a2 x ;

69

P'(x

*

) = 0

 

x

*

= −

a1

 

 

 

.

 

 

2a2

Мы получим координату точки, которая лежит рядом с экстремальной точкой целевой функции f(x).

Все методы полиномиальной аппроксимации делятся на две груп-

пы:

1.Методы квадратичной аппроксимации, где используется для аппроксимации полином 2-го порядка.

2.Методы кубической аппроксимации, где используют полином 3- го порядка.

7.8.Метод Пауэлла

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

1 часть: определение области притяжения к экстремуму целевой функции;

2 часть: уточнение координат экстремальной точки Исходная функция f(x) аппроксимируется полиномом

P(x) = a0 + a1 (x x1 ) + a2 (x x1 )(x x2 )

Неизвестные коэффициенты полинома находятся из условия интерполяции: значение полинома совпадает со значением исходной функции в узлах интерполяции xi:

P(xi ) = f (xi ), i =1,2,3.

(7.10)

Согласно (7.10) получаем

 

a1 = f1, где f1 = f(x1)

(7.11)

P(x2 ) = f1 + a1 (x2 x1 ) = f (x2 ) = f2 ,

отсюда

 

70

 

 

 

 

 

 

 

 

a

=

 

f2 f1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

x .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

P(x

3

) = f

1

+

( f2 f1 )(x3 x1 )

 

+ a

2

(x

3

x )(x

3

 

x

2

) =

 

 

 

 

 

 

 

 

x2 x1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После несложных преобразований получим

 

 

 

 

 

 

 

 

 

 

 

1

 

 

f

3

 

f

1

 

 

 

 

f

2

f

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2 = x

3

x

2

x

3

x

 

x

2

x

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

Находим точку минимума полинома:

(7.12)

f (x3 ) = f3

(7.13)

P'(x) = a1 + 2a2 x* x2

x1 = 0

или

x

*

=

x2 + x1

a1

 

 

 

 

.

(7.14)

 

2a2

2a2

Алгоритм метода Пауэлла:

1.Вводим x1, приращение dx, погрешности ε1, ε2. f1 = f(x1).

2.Вычисляем x2 = x1 + dx, f2 = f(x2), i = 2.

3.Проверяем условие f(x1) > f(xi)?

если "да", то шаг удваиваем (dx = 2dx), x3 = x1 + dx, f3 = f(x3), i = 3 и переходим на п.3;

иначе, выбираем точку x3 по другую сторону от x1: x3 = x1 dx, f3 = f(x3) и переходим на п.4.

4. Поиск минимального значения функции fmin = min( f1 , f2 , f3 ) и соответствующего аргумента xmin = arg min( f (x1 ), f (x2 ), f (x3 )) .

5.Вычисляем коэффициенты a1, a2 по формулам (7.12), (7.13) и

точки x* по (7.14). f4 = f(x*).

6.Проверяем условия окончания поиска экстремума:

 

 

 

fmin f4

 

< ε1

 

 

 

 

 

 

 

 

 

 

 

 

 

xmin x

*

 

 

 

< ε2 ,

(7.15)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если условия (7.15) выполняются, то печать xmin, fmin и конец поиска, иначе переходим на п.7.

71

7.Из множества {x1, x2, x3} исключаем наихудшую точку, в которой функция имеет наибольшее значение. Вместо наихудшей точки включаем во множество наилучшую из точек xmin и x*. Далее точки переобозначаем в естественном порядке (x1 < x2 < x3) и переходим на п.4.

7.9.Метод ДСК

Метод разработали Девис, Свен, Кемпи. Относится к методам квадратичной аппроксимации.

В данном методе последовательно осуществляются шаги по направлению к экстремальной точке. Эти шаги являются возрастающими по мере приближения к экстремальной точке.

После прохождения экстремума производится квадратичная аппроксимация. В качестве экстремума целевой функции принимается экстремум аппроксимирующего полинома.

Алгоритм метода ДСК:

1.Перед началом поиска задаем: начальное приближение x0, шаг приращения x, ε – погрешность определения экстремума.

2.

x1 = x0 + x, k = 1.

 

3.

Производим выбор шага по условию

f (x1 ) < f (x0 ) :

 

– если "да", то x = 2 x ;

 

 

– иначе, экстремум пройден, и x = −

x 2 .

3.Осуществляем перемещение по направлению к экстремальной точке xk+1 = xk + x.

4.Проверяем условие f (xk +1 ) > f (xk ) :

если "да", то переходим на п.5;

иначе, k = k + 1 и переходим на п.3.

5.Точки xk-1, xk, xk+1 обозначаем, как xа, xb, xc в порядке возрастания значения аргумента х. Вычисляем экстремум аппроксимирующего полинома путем аппроксимации целевой функции по

72