Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2793.Методы оптимизации..pdf
Скачиваний:
175
Добавлен:
15.11.2022
Размер:
33.68 Mб
Скачать

2.7.Методы с использованием производных

Вметодах прямого поиска при вычислении значений мини­ мизируемой функции /(х ) неизбежно возникают погрешности,

ккоторым чувствительны алгоритмы прямого поиска, осно­ ванные на сравнении значений функции в отдельных точках.

Пусть f(x) — дважды непрерывно дифференцируемая функ­ ция в окрестности точки х* строгого локального минимума, значения которой вычисляются с абсолютной погрешностью, не превышающей Ду. Оценим абсолютную погрешность Д*, с которой может быть найдена точка х* с применением метода прямого поиска. Для представления функции /(х ) в окрест­ ности точки х* воспользуемся формулой Тейлора [И] с учетом равенства /(х*) = 0:

где £ — точка, лежащая между точками х* и х. Имея в виду, что вычисления проводятся в достаточно малой окрестности точки т*, положим }"{£) ~ fix * ). Тогда для приближенно вычисляемых значений f(x) получим

fix) ~ fix*) = f{x )-f{x * ) + [f{x) - f i x ) ) - {fix*) -

f{x*)) >

> fix) - fix*) - 2 Д / и f"{x*)^X

- 2Д /.

Из этих неравенств вытекает, что можно гарантировать вы­ полнение неравенства /(х ) > /(х*), если /"(х*)(х — х*)2 > 2Ду. Это приводит к приближенной оценке абсолютной погрешности нахождения точки х* методом прямого поиска:

Заданная точность е* нахождения точки х* не должна быть меньше Д*, так как иначе эту точность нельзя достичь методом прямого поиска. Из (2.20) также следует, что при нахожде­

нии точки ж* происходит потеря примерно половины верных значащих цифр, с которыми можно вычислить приближенное значение минимизируемой функции [II].

Если унимодальная функция /(ж) непрерывно дифференци­ руема на отрезке минимизации, то точку ж* наименьшего значе­ ния функции можно вычислять как корень уравнения / '( ж) = О с помощью тех или иных методов численного решения нелиней­ ных уравнений [И]. В этом случае на точность решения задачи решающее влияние оказывает погрешность вычисления произ­ водной функции.

Если абсолютная погрешность вычисления производной не превышает Ду/, то для нижней оценки абсолютной погрешно­ сти вычисления корня ж* уравнения /(ж) = 0 имеем [И]

Таким образом, при нахождении этого корня можно сохранить все верные значащие цифры, с которыми можно вычислить значение производной / '( ж).

Рассмотрим некоторые методы одномерной минимизации, основанные на использовании производной минимизируемой функции.

М етод средней точки. Будем искать минимум функ­ ции /(ж), непрерывно дифференцируемой и строго унимодаль­ ной на отрезке [ai,bi]. В этом случае единственной точкой ж* Е [ai , bi] минимума будет стационарная точка, в которой /'(ж*) = 0. Отметим, что непрерывно дифференцируемая уни­ модальная на отрезке функция может иметь на нем более одной стационарной точки.

В методе средней точки используют простую идею:

вычисляют

производную f'(xi) = К\ в

средней

точке х\ =

= (ai + bi)/2

исходного отрезка и,

если

К\ > 0 ,

то отрезок

[$i, &i] отбрасывают, так как на

нем строго

унимодальная

функция только возрастает, а если К\ < 0, то

отбрасывают

отрезок [ai,®i], поскольку на нем строго унимодальная функ­ ция лишь убывает. В данном случае отбрасывание половины исходного отрезка [oi, bi] аналогично процедуре исключения отрезка. Ясно, что в случае К = 0 имеем ж* = ж.

Оставшуюся после отбрасывания половину отрезка обозна­ чим [ог, Ьг] и) вычислив производную /'(жг) = Кч в его средней точке а?2 = (02 + Ьг)/2, повторим процедуру отбрасывания поло­ вины отрезка и т.д. Условием прекращения вычислений на к-м шаге может быть выполнение неравенства < е*, где lk+1 = = bk+1 — afc+i — длина отрезка [а^+ь fyt+i] после отбрасывания половины отрезка [a*, 6^]; е» — наибольшая допустимая длина интервала неопределенности.

Метод средней точки напоминает метод дихотомии, но сходится к искомому значению ж» быстрее, поскольку в отличие от (2.8) для метода средней точки после вычисления п значений производной минимизируемой на отрезке [0, 1] функции /(ж) для длины интервала неопределенности получаем

(2 .22)

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

М етод Н ьютона. Если строго унимодальная на отрез­ ке [о, Ь] функция /(ж) дважды непрерывно дифференцируема на этом отрезке, то точку ж* € [о, 6] минимума этой функ­ ции можно найти путем решения уравнения /'(ж) = 0 методом Ньютона, иногда называемым методом касательных. Пусть жо € [о, 6] — нулевое приближение к искомой точке ж*, назы­ ваемое обычно начальной точкой. Линеаризуем функцию /'(ж) в окрестности начальной точки, приближенно заменив ду­ гу графика этой функции касательной в точке (жо, / '( жо)):

Выберем в качестве следующего приближения к х* точку х\ пересечения касательной с осью абсцисс (рис. 2.13). При­ равнивая нулю правую часть (2.23), получаем первый элемент

х\= XQ

итерационной последовательности {ж*.}. На

/

(*о)

(к + 1)-м шаге по найденной на предыдущем шаге точке х* мож­ но найти точку

Zfc+l = Х к ~

г ы

(2.24)

 

f " ( x k )

Для квадратичной функции f(x) функция f'(x) линейна. По­ этому в (2.23) равенство будет точным, а метод Ньютона будет сходиться за один шаг при любом выборе точки хо из области определения этой функции.

В общем случае сходимость метода Ньютона существенно зависит от выбора начальной точки хо. Для надежной рабо­ ты этого метода необходимо, чтобы вторая производная f"(x) в окрестности искомой точки х* сохраняла знак, а началь­ ная точка хо выбиралась из такой окрестности. В противном случае второе слагаемое в правой части (2.24) может стать неограниченным. Поскольку для дважды непрерывно диффе­ ренцируемой функции в точке минимума /"(х*) > 0, то должно быть и f"(x о) > 0. Поэтому говорят, что метод Ньютона обла­ дает локальной сходимостью в том смысле, что надо выбрать

хорошее начальное приближение, попадающее в такую окрест­ ность точки х*, где /"(х ) > 0. Однако проверка выполнения этого условия не всегда возможна.

Достаточное условие надежной работы метода Ньютона при нахождении точки х* Е [а, Ь] минимума функции /(х ) мож­ но установить в случае, если эта функция трижды непрерывно дифференцируема на отрезке [а, 6]. Ясно, что итерационная по­ следовательность {х*} будет сходиться к пределу х* монотонно,

если 0 < ——

< 1 .

В соответствии с формулой Тейлора с

X* Xfc

 

 

 

 

остаточным членом в форме Лагранжа имеем

 

/'(* .) = 0 = П х к) + /"(* * )(* , -

хк) + f'"(x ){X*~2X— >

где точка х лежит между х& и х*.

Поэтому с учетом (2.24)

имеем

 

 

 

 

ж* - Sfc+1

*

к + f " ( x k)_ г _________ 2_______.

Х * ~ Х к

 

Х , - Х к

0 ,

- Х к) 2 '

/'(**)

Таким образом, последовательность {х*} является монотонной,

f " ( x )

0, т.е. достаточным условием монотонной сходи-

если т-.- : >

J \хк)

 

мости метода Ньютона будут постоянство в интервале между

точками хо и х*

знака производной

f ,n(x) и совпадение его

со знаком /'(хо).

Оказывается [II],

что в этом случае метод

Ньютона обладает квадратичной скоростью сходимости в не­ которой 5-окрестности U(x*,5) точки х*, причем

|Х* Xk\ ^ (х, -g fe -l)2

С

где

min |/;^д)!

(2.25)

max|/,,,(a:)| ’

минимум и максимум вычисляются по множеству и(ж*,<5).

Если радиус 5-окрестности U(a:*,5) не превосходит С , а точ­ ка Хк попадает в окрестность U(a;*,5/2), то и следующая точка оказывается в этой окрестности, т.е. итерационная последова­ тельность не выходит за пределы окрестности U(rc*,5/2). В этом случае верна оценка [II]

\хк —2*1 < \хк- 1 xk\i

(2-26)

которую можно использовать для оценки точности найденно­ го решения уравнения f'(x) = 0 (точки локального минимума функции).

Пример 2 .6. Найдем точку я* наименьшего значения функции f(x) = х2 + 16/х на отрезке [1, 4].

Вычислим f'(x) = — 16/т2, f"(x) = 2 + 32/х3 и f'"{x) = = —96/х4. Всюду на отрезке [1, 4] имеем f"{x) > 0, /'"(т ) < 0. Поэтому, если начальную точку XQ выбрать исходя из условия f'(xо) < 0, то построенная итерационная последовательность будет монотонной.

Выберем XQ = 1 и вычислим /'(то) = —14, /"(то) = 34, а затем, используя (2.24) при к = 0, получим

Х \ X Q

f'{xо)

«1,4118.

 

f" {xо)

Далее при помощи (2.24) последовательно находим тг « 1,8010, тз « 1,9790, Т4 « 1,9998.

Предположим, что верна оценка (2.26). Тогда |т4 —т*| ^ ^ |тз — T4I « 0,0208 и, в силу того что последовательность {т*} возрастает, искомая точка т* должна лежать в интер­ вале (т4, Т4+ 0,0208) = (1,9998, 2,0206). Так как /'(1,9998) « « —0,0012 < 0, /'(2,0206) « 0,1223 > 0, то, действительно, урав­ нение / '( т) = 0 в интервале (1,9998, 2,0206) имеет корень, ко­ торый в силу условия / " ( т) > 0, т £ [1 , 4], является точкой минимума функции / ( т). Отметим, что функция / ( т) была рассмотрена в примере 2.4, где получено точное значение т» = 2 точки, в которой функция достигает наименьшего значения.

М одификации м етода Н ьютона. Вычисление второй производной f"{xk) минимизируемой функции / ( х) на каждом к-м шаге метода Ньютона может оказаться достаточно трудо­ емким. В этом случае целесообразно использовать упрощенный метод Ньютона, положив в (2.24) f"{xk) = f"(x о) = const:

л»

я .

 

/Г) о * 7 \

It+i

' т

-

(2-27)

Оказывается, что этот метод имеет линейную скорость схо­ димости. При этом если в интервале между точками х* и хо выполнено условие f ,{xo)fnf{x) > 0, то последовательность {я*;}, построенная в соответствии с (2.27), сходится к точке х* монотонно.

Можно избежать вычисления второй производной мини­ мизируемой на отрезке [а, Ь] функции /(х ), если располагать двумя приближениями хо, х\ £ [а, Ъ] к искомой точке х* £ [а, Ь] минимума этой функции. Заменяя в (2.24) при к = 1 производ­ ную /" (х i) выражением

f'(x i) - f(x o )

Х\ XQ

получаем

г С ) - У ы Г Ы ’

а в случае произвольного номера к £ N приходим к формуле

(2'28)

Метод решения нелинейного уравнения f'{x) = 0 с применением рекуррентного соотношения (2.28) обычно называют методом секущих. Геометрическая интерпретация этого метода состоит в том, что в качестве очередного приближения Xk+i выбирают точку пересечения с осью абсцисс не касательной к графику функции f'{x), как это делают в методе Ньютона, а секущей,

проходящей через две точки этого графика, найденные при выполнении двух предыдущих шагов метода.

Выбор начальной точки то в (2.28) при к = 1 проводят следующим образом. Если на отрезке [о, 6] функция f(x) имеет знакопостоянную третью производную f'"{x), то в качестве XQ выбирают тот конец отрезка [а, Ь], на котором совпадают знаки f'(x ) и f'"(x), а в качестве

af'(b)-bf'(a)

(2.29)

точку пересечения с осью абсцисс хорды, стягивающей дугу графика функции f'(x ) на отрезке [а, Ь] (рис. 2.14). Таким образом, первый шаг метода секущих выполняют согласно методу хорд, а последующие шаги — в соответствии с (2.28). Этот метод имеет сеерхлинейную скорость сходимости [II],

причем |х* —Xk\ ^ С(х* —Xk-\)т, где С = const, а т = —'

«

w 1,618 — отношение золотого сечения.

 

Модификации метода Ньютона обладают только локальной сходимостью, т.е. сходятся, если начальная точка выбрана в некоторой окрестности точки минимума функции. Если же на­ чальная точка расположена слишком далеко от точки миниму­ ма, то подобный метод может расходиться или „зацикливать­

ся“. В некоторых случаях целесообразно сочетать различные модификации метода Ньютона, чередуя их применение в зави­ симости от номера шага [И].

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

Пусть для непрерывно дифференцируемой функции f(x),

строго

выпуклой на отрезке [жх, Ж2], известны значения /1 =

=

/2 = /(®г)> Л = /'(z i) и Л = /'( * г)- Для строго вы­

пуклой функции производная f'(x) возрастает на отрезке [II]. Поэтому если значения f[ и f 2 одного знака, т.е. f [f 2 > 0, то дифференцируемая функция f(x) не имеет стационарных то­ чек на отрезке [®i, 2:2] и) следовательно, не имеет на нем точки минимума. Если Л Л = 0, то один из концов отрезка являет­ ся стационарной точкой функции / (ж), в которой эта функция имеет минимум. Наконец, если f [f 2 < 0, то для строго выпук­ лой функции /1 < 0 и /2 > 0. Следовательно, лишь единственная точка х, € (1 1 , 2:2) будет стационарной, и в ней функция f(x) достигнет минимума. Таким образом, если f [f2 <0 на отрезке

1, 2:2], то рассматриваемая функция строго унимодальна на этом отрезке.

Рассмотрим метод поиска точки ж* 6 (ж*, Ж2) при условии Л Л < 0, называемый методом кубической аппроксима­ ции, поскольку в этом случае на отрезке [ж1,жг] можно по­ строить единственный многочлен третьей степени, располагая значениями / г, / 2, Л> Л на концах этого отрезка [II]. Этот многочлен, называемый кубическим интерполяционным много­ членом Эрмита*, можно преобразовать к виду

#з(ж) = /1 + O I(T - X I) + а2(ж -ж 1)(ж -ж 2) + аз(ж -ж 1)2(ж -ж 2) *Ш. Эрмит (1822-1901) — французский математик.

с коэффициентами

Г

_

/2 - /1

)

 

 

 

о>\

ГС2 —^1

 

 

 

 

 

 

 

,

/ 2 - / 1

 

Л

(2.30)

 

 

(X2-^l)^

X2~Xi

 

 

 

 

 

/ 2 + /1

_ о / 2 - / 1

 

k° 3

(Z2 - X 1 ) 2

(x2 ~ X i ) 3 '

 

Несложно проверить, что # 3(xi) = / 1, # 3 (2 :2 ) = / 2 , # 3(2:1) = f[

И # з ( ® 2 ) = / 2 -

Производная # з ( х ) является квадратичной функцией, непрерывной на отрезке [xi, 2:2] и имеющей на его концах раз­ личные знаки. Поэтому в интервале она может изменить знак лишь один раз в точке х, , которая является стационарной точ­ кой многочлена #з(х), а именно точкой его минимума, так как производная меняет знак с минуса на плюс.

Из необходимого условия #3 (х) = 0 экстремума этого мно­ гочлена получаем с учетом (2.30) квадратное уравнение

3o3(a:-2:1)2 - 2 2/f + / 2 Зщ ( x - x i) + f[ = 0.

Х2 —Xi

/

Его решение, принадлежащее интервалу (xi, Х2), представим в виде х* = xi + fi(x2 - xi), где

v + z - f {

Z =Л+/2-з / 2 - / 1 ^

(2.31)

2ь>Ч [+№

Х2 1

 

и покажем, что ц G (0,1). Действительно, поскольку /{ < 0 и /2 > 0, имеем ш > |z|, ш + z — /{ > 0, 2 ш— /{ + /3 > 0. Следова­ тельно,

Q<

u + z - f [

w + z - f { + (u - z )

2w - f [

*

2w - Я + Л

2 w - /{ + ^

2 w - /{ + ^

и х * G ( x i , 2:2).

Если /'(х*) = 0, то х* = х* — искомая точка минимума функции /(х ) на отрезке [xi, Х2]. Если же /'(х*) ф 0, то в слу­ чае < 0 можно отбросить отрезок [х, х^\ и продолжать описанным выше способом поиск точки минимума на отрезке [xi, х*], и наоборот. После каждого приближения правильность вычислений подтверждается уменьшением минимального зна­ чения многочлена по сравнению с его минимальным значением на предыдущем шаге. Вычисления можно прекратить, когда длина интервала неопределенности, в котором гарантированно находится искомая точка х*, станет меньше заданной наиболь­ шей допустимой величины е*.

Пример 2.7. Рассмотрим ту же функцию / ( х ) = х 2 + 16/х, что и в примерах 2.4 и 2.6, и найдем точку ее минимума х* на отрезке [xi, Х2] = [1,4].

Вычисляем /1 = 12, /2 = 20 и по формуле /'(х ) = 2х — 16/х2 получаем /{ = —14, / 2 = 7. Используя (2.31), находим г = —10, и \/198 ~ 14,0712, /х « 0,3677 и х* = х\ + /х(хг — xi) « 2,1031. Так как /'(х+) « 0,5888 > 0, то поиск точки х* продолжаем на

отрезке [х^ , х2^], где х[^ = х\ = 1 и х2^ = х* и 2,1031, причем

/( х ^ ) и 12,0308.

 

 

 

 

После аналогичных вычислений имеем

и 0,1303, u /1) «

« 2,9333,

/х(1) ~

0,8342, xi1} =

х[1} + Ai(1)(x(l)2 - х ^ )

« 1,9202,

/'(х1г)) «

—0,4990 < 0 и /(х£^) ~ 12,0196. Теперь искомая точка

х* находится в интервале (х ^ , х22^), где х ^

= х»1^«

1,9202 и

х22^= х* ~ 2,1031.

 

 

 

В итоге аналогичной серии вычислений получаем

 

z(2) « -0,0939,

ш(2) «0,5501,

/х(2) « 0,4365,

xi2) «

2,0000.

Итак, пришли к значению х£2\ у которого четыре верных знака после запятой совпадают с точным значением х* = 2 (см. пример 2.4).