Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

01-09-2014_14-57-50 / Моделир. Оптим.(з)_Подобие_ЛП_лекц

..pdf
Скачиваний:
51
Добавлен:
29.03.2015
Размер:
3.3 Mб
Скачать

151

(((

x0 )= (30)= 4900

x0

+ )= (35)= 4225

x0

- )= (25)= 5625

Так как,

 

 

( x0

- ) ( x0 ) ( x0

+ ),

то величина должна быть положительной, а координата точки минимума x *

должна быть больше 30. Имеем x1 = x0 + = 35. Далее

x2 = x1 +2 = 45,

(45)=

3025< ( x1 ),

 

 

 

 

 

откуда x * >35.

(65)=1225< ( x2 ),

 

 

x3

= x2 + 2

2

=65,

 

 

 

 

 

 

 

 

откуда

x * >45

=105,

(105)= 25< ( x3 ),

 

 

x4

= x3 + 2

3

 

 

 

 

 

 

 

 

откуда

x * >65

=185,

(185)= 7225> ( x4 ).

 

 

x5

= x4 + 2

4

 

 

 

 

 

 

 

 

Следовательно, x * <185. Таким образом, шесть шагов вычислений

x * поз-

волили выявить интервал 65 x * 185, в котором расположена точка

x *. Эф-

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

5.1.2.2. Этап уменьшения интервала. Метод деления интервала пополам (дихотомии)

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

Метод деления интервала пополам является простейшим последовательным методом минимизации (методы минимизации, в которых точки xi определяются

в процессе минимума с помощью найденных ранее значений функции ( x ) называются последовательными методами). Он позволяет для любой функции( x ) Q[a;b] построить последовательность вложенных отрезков [a;b] [ a1 ; b1 ]... [ an 1 ; bn 1 ] [ an ; bn ], каждый из которых содержит хотя бы одну из точек минимума x * функции f (x) . Пусть >0 – требуемая точность определения точ-

151

 

152

ки

x *. Выбрав [0;2 ] ( может характеризовать погрешность измерений ве-

личины x , и ограничена снизу возможностями измерительного прибора), по-

строим последовательности

{ a

 

},{ b },{ x

(n)

}и{ x

(n)

}, n=0,1,.., используя рекур-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

n

1

 

 

 

2

 

 

 

 

 

 

рентные формулы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a0

= a

, b0

= b

;

 

 

 

 

 

 

 

 

x1

 

a

 

b

 

 

;

 

 

x2

 

a

 

 

b

 

;

(5.1)

 

n 1

n 1

 

 

 

 

 

n 1

n 1

 

(n 1)

 

 

 

 

 

 

(n 1)

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

an = an 1

,

bn

= x2

, если ( x1

)< ( x2

 

),

 

 

 

 

 

 

 

 

 

 

(n 1)

(n 1)

(n 1)

 

 

 

 

 

 

an =

x1

 

, bn = bn 1

, если ( x1

)> ( x2

 

).

 

 

 

 

 

 

 

(n 1)

 

 

(n 1)

(n 1)

 

 

 

 

f (x)

 

 

 

 

 

 

 

f (x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(n 1)

) f (x

(n 1)

 

f (x

(n 1)

) f (x

(n 1)

)

 

 

 

f (x

)

 

 

 

 

 

 

 

 

 

1

 

2

 

 

2

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

a

n 1

x

*

x

(n 1)

 

x

(n 1)

b

 

x

a

 

x

*

x(n 1)

x(n 1)

 

b

 

 

 

 

2

n 1

n 1

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

 

2

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

a

 

 

 

 

x

b

 

 

 

a

 

 

 

x

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

n

 

 

 

 

 

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

а)

б)

Рис.5.2. Уменьшение интервала поиска точки минимума методом деления интервала пополам.

Переход от отрезка [ an 1 ; bn 1 ] к отрезку [ an

; bn ] методом деления отрезка по-

полам иллюстрируется на рисунке 5.2,а , если ( x1

)< ( x2

), и на рисун-

 

 

 

 

(n 1)

 

(n 1)

 

ке5.2,б, если ( x(n 1)

)> ( x(n 1) ). Полагая x*

an

bn

, находим

x *

с абсолютной

 

 

1

2

 

2

 

 

 

 

 

 

 

 

 

 

 

погрешностью, не превосходящей величины.

Используя условие

 

n

 

n

 

bn an

 

b a

 

 

(5.2)

 

2n 1

2

 

2

 

 

 

, из последнего выражения можно найти необходи-

мое число шагов n для обеспечения требуемой точности

Однако на практике часто поступают иначе: определив границы отрезка [ вычисляют n

по формуле (5.2) и сравнивают с заданной точностью .

a

n

 

;

b

n

 

],

152

x * функции ( x )
153

153

n

0

1

2

3

Пример 5.2. Найти минимальное значение * и точку минимума

x * функ-

ции

 

8x

 

6x

 

72x

на отрезке [1,5;2,0].

f (x) x

4

3

2

 

 

 

 

 

Точку

x * найти с погрешностью =0,05.

Положим =0,02<

2 =0,1. Построим последовательность вложенных отрез-

ков [ an ; bn ]

 

по формулам (5.1), записывая результаты вычислений в таблицу 5.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 5.2

 

 

 

 

 

Значения вложенных отрезков и функций (x).

 

 

 

 

 

 

 

 

 

 

 

n

 

n

 

 

n

n

 

1

 

2

( 1

)

(

 

2

)

 

 

 

 

Примечание

 

 

 

a

 

b

 

 

 

b

a

 

x

(n)

x

(n)

x

(n)

 

 

x

(n)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5

2.0

 

0.25

 

1.74

1.76

-

 

-92.096

(

x

 

)< (

x

2

),

b

 

=

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0)

 

 

(0)

 

 

 

 

 

(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

92.135

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5

1.76

 

0.13

 

1.62

1.64

-

 

-91.696

(

x

 

)> (

x

2

),

a

2

=

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

(1)

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

91.486

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.62

1.76

 

0.07

 

1.68

1.70

-

 

-92.084

(

 

x

 

 

)> ( x 2

),

a

3

=

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

 

(2)

 

 

 

 

 

 

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

91.995

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.68

1.76

 

0.04

 

 

 

 

 

 

 

 

 

 

 

 

n

,точность достиг-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нута

 

 

 

 

 

 

 

Следовательно,

x*

a

3

b

1,72

 

3

 

 

2

 

 

 

 

и

f *

f (1,72)

92,13

. Для увеличения скоро-

сти сходимости метода величину (0;2 ) целесообразно выбирать как можно меньшей, однако этот выбор ограничен снизу используемым количеством верных десятичных знаков при задании аргумента х. В любом случае должно быть больше машинного нуля применяемой ЭВМ.

Упражнения.

Методом деления отрезка пополам найти точку минимума на отрезке [a;b] с точностью и минимум *.

1.

f (x) x sin x 2cos x ,

[-5;-4], =0,02.

2.

Ответ:

x *= -4,4934; *= -4,8206.

f (x) x

4

8x

3

6x

2

72x 90,

[1,5;2], =0,05.

 

 

 

 

 

 

 

 

 

 

3.

Ответ: x *=1,6030; *= -2,1376.

f (x) x

6

3x

2

6x 1,

[-1;0], =0,1.

 

 

 

 

 

 

 

 

 

 

 

 

Ответ:

x *= -0,7549; *= -3,6347.

4.

f (x) 10x ln x

x2

,

 

[0,5;1], =0,05.

 

 

 

 

 

 

 

 

2

 

 

 

 

 

154

5.

Ответ:

f (x) 3x

4

 

Ответ:

x

x *=0,3822; *= -3,7491.

10x

3

21x

2

12x ,

[0;0,5], =0,02.

 

 

 

 

*=0,3684; *=2,4154.

5.1.3. Метод "золотого сечения".

Метод "золотого сечения" является последовательным методом минимизации. Этот метод использует найденные значения ( x ) более рационально, чем метод деления интервала пополам, что позволяет переходить к очередному интервалу, содержащему x * после вычисления одного, а не двух значений ( x ).

Рассмотрим на исходном отрезке [а;b] точку

x1

и вычислим ( x1

). Зная зна-

чение целевой функции в одной точке, невозможно сузить область поиска точки xmin . Поэтому выберем вторую точку x2 так, чтобы a< x1 < x2 <b, и вычислим

( x2 ). Возможен один из следующих двух случаев ( x1

) ( x2 ) или ( x1

)

 

( x2 ).

 

 

 

Согласно свойству унимодальных функций: если ( x1 ) ( x2 ), то x

*< x2

;

если же ( x1 ) ( x2 ), то x* > x1 ; в первом случае искомая точка x * не может

 

быть на отрезке [ x2 ;b], а во втором – на отрезке [a; x1 ]

(эти отрезки на рисунке

5.3 отмечены штриховкой). Следовательно, теперь область поиска сужается и

следующую точку

x3

следует брать в одном из укороченных отрезков [a; x2

]

или [ x1 ;b].

 

 

 

f (x)

 

f (x)

 

 

 

 

a

x1 x*

x

2

 

b

x

a

x1 x*

x

2

 

b

x

a) б)

Рис. 5.3. Уменьшение интервала поиска точки минимума методом золотого сечения.

Установим где на исходном отрезке лучше всего выбрать точки x1 и x2 . Так как первоначально ничего не известно о положении x *, то оба указанных выше случая равновозможные, то есть "лишним" может оказаться любой из отрезков [ x2 ;b] и [a; x1 ]. Отсюда ясно, что точки x1 и x2 должны быть расположены симметрично относительно середины отрезка [a;b]. Чтобы максимально

154

155

сузить область поиска, эти точки должны быть "поближе" к середине исходного отрезка. Если их взять рядом с серединой исходного отрезка, то на втором этапе сужение области поиска будет незначительным (рис. 5.4).

a x1

 

 

 

x

3

 

 

 

 

 

x

2

 

 

b

Риc. 5.4. К выбору пробных точек

x1

и

x

2

 

.

На втором этапе сужения области поиска потребуется вычислить лишь одно значение ( x3 ), которое будем сравнивать с уже имеющимся значением

( x1 ) или ( x2 ) в зависимости от того, какой из двух случаев реализовался. Поэтому, с одной стороны, точки x1 и x2 следует выбирать рядом с серединой отрезка, а с другой – слишком близкими их брать нельзя. Для того, чтобы найти ―золотую середину‖, используется метод "золотого сечения".

Поиск с помощью метода золотого сечения основан на разбиении отрезка прямой на две части, известном как золотое сечение – отношение длины всего отрезка к большей части равно отношению большей части к меньшей. Рассмотрим симметричное расположение двух пробных точек на исходном интервале единичной длины (рисунок 5.5.).

 

F

 

 

 

 

 

 

 

0

x1

 

 

 

 

1-F

 

 

 

 

1-F

 

 

 

x

2

 

 

F

1

Рис.5.5. Поиск пробных точек с помощью метода золотого сечения Пробные точки x1 и x2 отстоят от граничных точек интервала на расстоя-

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

длины F содержит одну пробную точку

x1

, расположенную на расстоянии (1-F)

от левой граничной точки.

 

 

 

 

 

 

 

 

 

1-F

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

x

 

 

x2

1

 

 

 

 

155

156

Рис.5.6. Интервалы, полученные методом золотого сечения.

Чтобы точки

x1

=1-F и

x2

=F делили отрезки [0;F] и [0;1]

отношении должно выполнятся равенство

1

 

F

или

F

 

 

 

 

 

2

 

F

 

1 F

 

 

водном и том же

1 F , откуда

находим положительное значение

F

5 1 2

0.61803

0.62

. Таким образом,

x

1 F

3

5

 

 

1

 

2

 

 

 

 

0.38

 

 

 

 

 

 

, x2 F

 

5 1

.Дроби

 

2

 

 

 

 

 

F1

 

3 5

и

F2

 

5 1

2

2

 

 

 

 

 

называются

дробями Фибоначчи или числа Фибоначчи (Bonaccio (итал.)), сын Боначчо – добродушный, простодушный, то есть сын добряка, сын удачника. Это название им дал Леонардо Фибоначчи из Пизы, который первым открыл их еще в 1202 году, подсчитывая, сколько пар потомства могут дать в год пара кроликов и их последующее потомство.

Для того чтобы симметрия поискового образа сохранялась, расстояние (1- F) должно составлять F-ю часть длины интервала (которая равна F). При таком выборе F следующая пробная точка x3 размещается на расстоянии, равном F-й

части длины интервала, от правой граничной точки интервала (рис. 5.7.).

0

x

3

 

1 F

 

F

2

 

 

 

 

 

 

 

x

 

1

 

F

x2

1

1

Риc. 5.7. Симметрия золотого сечения интервала. Отсюда следует, что при выборе F в соответствии с условием 1-F= F 2

симметрия поискового образца (рис.5.5.) сохраняется при переходе к уменьшенному интервалу (рис.5.7.). Схема поиска, при которой пробные точки делят интервал в этом отношении, известна под названием поиска с помощью метода золотого сечения. Для произвольного отрезка [a;b] выражения для пробных точек примут вид

x1 a F1 (b a) ,

x2

a F2 (b

Зная одну из точек золотого сечения отрезка [a;b], одной из формул

a) .

(5.3)

другую можно найти по

x1

a b

x

2

 

,

x

2

a b x

 

1

.

(5.4)

156

157

Пусть ( x ) Q[a,b] и требуется найти точку минимума

x * функции ( x )

на [a;b]. Построим последовательности { an

},{ bn

} и { x n }, n=1,2,..., следующим

образом:

 

a

 

,

b x

 

, xn x

 

, если ( x1

) ( x2

 

);

a

 

 

(n 1)

(n 1)

 

 

 

 

 

 

 

 

 

 

 

(n 1)

 

 

(n 1)

 

 

n

 

 

n 1

 

n

2

 

1

 

 

 

 

 

 

 

an x1

 

,

bn

bn 1 ,

xn

x2

 

 

(5.5)

) > ( x2

),

 

 

n=2,3,…,

 

, если ( x1

 

 

 

(n 1)

 

 

 

 

 

(n 1)

 

 

(n 1)

 

(n 1)

 

 

 

 

где a

a

, b b , x(n 1) и x(n 1) -первая и вторая точки золотого сечения (5.3)

 

1

 

 

 

1

1

 

2

 

 

 

 

 

 

 

 

 

отрезка [ an 1 , bn 1 ].

 

 

 

 

 

 

 

 

 

 

 

 

Для определения чисел an , bn

, x n

по найденным an 1

, bn 1

, необходимо вы-

полнить следующие операции:

 

 

 

 

 

 

 

 

 

1. найти одну из точек золотого сечения отрезка [ an 1

, bn 1 ] по известной

другой точке

 

x n 1

, используя формулы (5.4). При определении x * с большой

точностью, чтобы избежать накопления ошибок округления, обычно точки зо-

лотого сечения отрезка [ an

; bn

] находят по формулам (5.3) и в качестве x1

и

 

 

(n 1)

 

x2(n 1) используют

x n 1

и ту из найденных точек, которая больше отличается от

x n 1 .

2. вычислить значение (х) во вновь найденной точке золотого сечения (значение в другой точке x n 1 уже вычислено на одном из предыдущих шагов).

3. сравнить значения ( x1

) и ( x2

)

и найти

an , bn , x n по формулам

(n 1)

(n 1)

 

 

 

(5.5).

 

 

 

 

Таким образом, на каждом шаге определения an

, bn , x n , n=2,3... , требуется

вычисление одного значения ( x ). Положив

x * xn

найдем точку минимума

x * с точностью n :

 

 

 

 

x * xn

 

 

 

n

 

 

 

 

 

 

 

 

5 1

 

n

b

 

 

2

 

 

 

 

a

,

откуда следует, что число шагов n метода

щее заданную точность нахождения точки

x

венству

 

золотого сечения, обеспечиваю- *, должно удовлетворять нера-

 

 

n

 

 

ln

 

 

 

 

n

b a

 

 

 

 

 

 

 

 

 

ln

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1ln

 

n

 

 

 

 

 

 

 

 

 

.

(5.6)

 

 

 

 

 

 

5 1

 

b a

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 5.3. Решить пример 5.2 методом золотого сечения. Вычисления проведем по формулам (5.5), представив результаты в таблице 5.3, где стрелками отмечены сохраняющиеся при переходе к следующему шагу значения.

Таблица 5.3

Значения пробных точек и функции f( x )

n

n

an

bn

x1(n)

x2(n)

( x(n) )

( x(n) )

Примечание

 

 

 

 

 

 

1

2

 

157

158

1

0.309

1.5

2.0

1.691

1.809

 

-

 

-91.814

 

( x1(1)

)< ( x2(1) ), b2 = x2(1)

 

 

 

 

 

 

 

92.049

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0.191

1.5

1.809

1.618

1.691

 

-

 

-92.049

 

(

x

(2)

)> (

x

(2)

),

a

 

 

=

x

(2)

 

 

 

 

 

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

91.464

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

0.118

1.618

1.809

1.691

1.736

 

-

 

-92.138

 

(

x

(3)

)> (

x

(3)

),

a

 

=

x

(3)

 

 

 

 

2

4

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

92.049

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

0.073

1.691

1.809

1.736

1.764

 

-

 

-92.083

 

(

x

(4)

)< (

x

(4)

),

b

 

 

=

x

(4)

 

 

 

 

 

2

5

2

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

92.138

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

0.045

 

 

 

1.736

 

 

 

-92.138

n

 

 

точность достигну-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

та.

 

 

 

 

 

 

 

 

 

Из таблицы 5.3 получаем х* x5

1.736,

* ( x5 ). Если воспользоваться

 

 

 

формулой (5.6), то n можно определить заранее. В нашем случае n 4,79, то есть n=5.

5.2. Методы, использующие производные функции.

Прямые методы используются при минимальных требованиях к целевой функции (x)-она считается унимодальной, и вычислению подлежат значения только самой функции, но не еѐ производных.

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

Рассмотрим методы минимизации, в которых используются значения производных целевой функции. Напомним, что для выпуклой дифференцируемой функции равенство ’(x)=0 является не только необходимым, но и достаточным условием глобального минимума. Поэтому, если известно, что х* является внутренней точкой отрезка [a,b], то приближенное равенство ’(x) 0 или | ’(x)| , где - достаточно малое число, может служить условием остановки вычислений в рассматриваемых ниже методах.

5.2.3. Метод Ньютона – Рафсона.

Метод Ньютона часто используется на завершающем этапе минимизации, когда х* - точка минимума грубо найдена другим, менее трудоемким способом и требуется найти х* с большой точностью. Кроме того, если функция f(х) содержит члены, включающие х в третьей и более высоких степенях, то непосредственное получение аналитического решения уравнения f '(х)=0 может оказаться затруднительным. В таких случаях используются приближенные методы последовательного поиска стационарной точки функции f(х). Ньютон разработал схему, ориентированную на нахождение корня нелинейного уравнения, которая позднее была уточнена Рафсоном.

158

159

В рамках схемы Ньютона – Рафсона предполагается, что f(х) – дважды дифференцируемая функция, причем f ''(x)>0 (это гарантирует выпуклость f(х)). Работа алгоритма начинается в точке x0 , которая представляет начальное при-

ближение координаты стационарной точки, или корня уравнения f '(х)=0. В очередной точке xk (к=0,1,...) строится линейная аппроксимация функции f '(х),

и точка, в которой аппроксимирующая линейная функция обращается в нуль, принимается в качестве следующего приближения xk 1 (рисунок 5.12).

Y

x

k

 

x

*

x

k

1

 

 

x

k

2

 

 

f(x)=f

' (x)

X

 

Рис. 5.12. Метод Ньютона – Рафсона (сходимость)

Если точка

xk принята в качестве текущего приближения к стационарной

точке, то уравнение касательной к графику f(х) в точке x= xk имеет вид:

 

Y=f ( xk )+f '( xk )(x- xk )

Точка x= x0

+1, найденная из условия y=0, определяется формулой:

x

k

 

+1=

x

k

 

-f(

x

k

 

)/f '(

x

k

 

)

Полагая f(x)=f '(x), тогда для решения уравнения f '(x) необходимо построить последовательность

x

k 1

 

 

 

x

k

 

-f '(

x

k

 

)/f ''(

x

k

 

), k=0,1,..., (5.11)

Где x0 – точка, выбранная в качестве начального приближения.

В зависимости от выбора начальной точки и вида функции алгоритм может, как сходиться к истинной стационарной точке, так и расходиться, что изображено на рисунке 5.13. Если начальная точка расположена правее x0 , то получаемые

в результате последовательных приближений точки удаляются от стационарной точки x*.

f '(x)

x*

x

0

x

k

x

k 1

xk

2

x

 

 

 

 

 

 

159

160

Рис. 5.13. Метод Ньютона – Рафсона (отсутствие сходимости).

Оценка скорости сходимости может быть сформулирована следующим образом. Пусть f(х) – дважды дифференцируемая на E n функция, причем f ''(x) m>0 при всех х Е и f ''(х) удовлетворяет условию Липшица на Е с константой L. Тогда, если начальное приближение x0 удовлетворяет условию

g L L

2

f '(x

0

)

 

2

 

 

1,

.

То последовательность (5.11) сходится к единственной точке минимума Х*

функции f (х) на Е, причем x * xk 2

g 2k , k=0,1,...

 

 

 

 

L

 

 

 

 

 

Вычисления по формуле (5.11) производят до тех пор, пока не выполнится

неравенство f '(xk ) , , после чего полагают x* xk , f* f (xk )

 

 

 

 

Пример 5.6. Метод Ньютона – Рафсона.

 

 

 

 

Рассмотрим следующую задачу: минимизировать f(x) 2x

2

16

 

), ε=0,05.

 

(

x

 

 

 

 

 

Для того чтобы определить стационарную точку функции f(х), воспользуемся методом Ньютона – Рафсона, положив x1 1:

16

 

 

),

f '(x) 4x (

x

2

 

 

 

 

 

32

 

 

),

f ''(x) 4 (

x

3

 

 

 

 

 

Итерация 1.

x1

1, f '(x1 ) 12, f ''(x1 ) 36, x2 =1-(-12/36)=1,33.

Итерация 2.

x2

=1,33, f '( x2 )= -3,73, f ''( x2 )=17,6, x3 =1,33- (-3,73/17,6)=1,54.

Итерация 3.

x3

=1,54, f '( x3 )= -0,59, f ''( x3 )=12,77,

x4 =1,54-(-0,59/12,77)=1,58.

Итерация 4.

x4

=1,58, f '( x4 )= -0,09, f ''( x4 )=12,12,

x5 =1,58-(-

0,09/12,12)=1,587.

 

Так как f '(xn ) , то x* x5

1,587, f* f( x5 ) 12,6.

5.2.4. Метод секущих

Метод секущих является комбинацией метода Ньютона и общей схемы исключения интервалов. Как уже отмечалось, равенство f '(х)=0 является необходимым и достаточным условия глобального минимума выпуклой дифференцируемой функции f(х). Поэтому, если на концах отрезка [c;d] производная f '(х)

имеет разные знаки, то есть f '(c)f '(d)<0, то на интервале (а;b) найдется точка, в которой f '(х) обращается в нуль, и поиск тоски минимума f(х) на [с;d] эквивалентен решению уравнения:

f '(x)=0, x (a,b)

(5.12)

Отсюда следует, что при f ' (c)f '(d)<0 любой приближенный метод решения уравнения (5.12) можно рассматривать как метод минимизации выпуклой дифференцируемой функции f(х) на отрезке [c;d].

160