Одномерная минимизация. Горячев Л.В. - 4 стр.

UptoLike

Составители: 

Рубрика: 

4
0
Рис. 1: Унимодальные функции
0
bx* x
2
a x
1
0
bx* x
2
a x
1
Теорема: Пусть функция f(x) унимодальна на отрезке [a, b], а ее минимум достигается в точке
x
. Для любых точек x
1
и x
2
этого отрезка и таких, что a<x
1
<x
2
<bверно следующее: 1. если
f(x
1
) >f(x
2
), то точка минимума x
[x
1
,b) (рис. 2) 2. если f(x
1
) <f(x
2
), то точка минимума
x
(a, x
2
] (рис. 3). Доказательство: Рассмотрим случай, когда f(x
1
) >f(x
2
). Допустим противное,
т. е. x
(a, x
1
]. Тогда, так как x
-точка минимума, то по определению f(x
) f(x) для x [a, b]
Получаем двойное неравенство f (x
) f(x
1
) >f(x
2
) при x
<x
1
<x
2
, как однако это невозмож-
но, так унимодальная функция монотонна по обе стороны от точки x
. Аналогичные соображения
действуют в случае, когда f(x
1
) <f(x
2
). Примечание: Если f(x
1
)=f(x
2
), то можно исключать оба
крайних интервала, при этом точка минимума будет принадлежать отрезку [x
1
,x
2
]. Таким образом,
организовав специальным способом выбор точек на отрезке, можно построить процедуру последо-
вательного исключения интервалов отрезка. Процедура завершается, когда оставшиийся отрезок не
достигнет достаточно малых размеров. При этом не требуется, чтобы исследуемая функция была
дифференцируемой и даже нерпрерывной, более того она может быть задана таблично. Рассмот-
рим наиболее простые методы поиска минимума (максимума) унимодальной функции, с которыми
должен быть знаком каждый студент, прослушавший курс по экстремальным задачам.
Метод деления отрезка пополам.
Рассматриваем задачу отыскания точки минимума x
унимодаль-
ной функции f(x), определенной на отрезке. Возьмем две точки. x
1
=
a+bδ
2
; x
2
=
a+b+δ
2
деδ-
достаточно малая положительная постоянная. При этом точки x
1
,x
2
делят отрезок почти пополам-
отсюда название метода. Вычисляем и сравниваем значения f(x
1
) и f(x
2
) Если f(x
1
) >f(x
2
)?nj
согласно доказанной теореме новый отрезок поиска точки x
будет [x
1
,b]. Границы нового отрезка
обозначим через a
1
и b
1
.a
1
= x
1
,b
1
= bслиf(x
1
) <f(x
2
)оa
1
= a, b
1
= x
2
. При этом длина
нового отрезка будет
1
= b
1
a
1
=
ba
2
+(1
1
2
)δ На новом отрезке повторяем процедуру выбора
точек x
1
и x
2
(мы сохраняем их обозначения ) и сравнения значений функции в этих точках. На k-ой
итерации будем иметь: x
1
=
a
k1
+b
k1
δ
2
; x
2
=
a
k1
+b
k1
+δ
2
;∆
k
= b
k
a
k
=
ba
2
k
+(1
1
2
k
δ)=
baδ
2
k
+δ
Если приводим k шагов процедуры, то количество рассматриваемых точек и соответственно коли-
чество вычисленных значений функции равно: n =2k. Если полученный отрезок [a
k
,b
k
]достаточно
мал (см. ниже), то принять середину отрезка за решение задачи x
x
n
=
a
k
+b
k
2
. при этом погреш-
ность составляет |x
x
n
|≤
1
2
(b
k
a
k
)
ba
2
k+1
+
δ
2
. В случаях, когда вычисление значений функции
не вызывает затруднений, итерации следует проводить до тех пор, пока
1
2
(b
k
a
k
) или
baδ
2
k+1
,
где ε- требуемая заданная точность вычисления. Тогда можно получить оценку для числа необхо-
димых итерации: k>log
2
(
baδ
ε
δ
2
) 1, число точек вычисления значений функции равно N =2k.
4




                                0




                                        Рис. 1: Унимодальные функции




                  0                                       0
                       a   x1           x*   x2   b            a         x1   x*     x2   b




     Теорема: Пусть функция f (x) унимодальна на отрезке [a, b], а ее минимум достигается в точке
x∗ . Для любых точек x1 и x2 этого отрезка и таких, что a < x1 < x2 < b верно следующее: 1. если
f (x1 ) > f (x2 ), то точка минимума x∗ ∈ [x1 , b) (рис. 2) 2. если f (x1 ) < f (x2 ), то точка минимума
x∗ ∈ (a, x2 ] (рис. 3). Доказательство: Рассмотрим случай, когда f (x1 ) > f (x2 ). Допустим противное,
т. е. x∗ ∈ (a, x1 ]. Тогда, так как x∗ -точка минимума, то по определению f (x∗ ) ≤ f (x) для x ∈ [a, b]
Получаем двойное неравенство f (x∗ ) ≤ f (x1 ) > f (x2 ) при x∗ < x1 < x2 , как однако это невозмож-
но, так унимодальная функция монотонна по обе стороны от точки x∗ . Аналогичные соображения
действуют в случае, когда f (x1 ) < f (x2 ). Примечание: Если f (x1 ) = f (x2 ), то можно исключать оба
крайних интервала, при этом точка минимума будет принадлежать отрезку [x1 , x2 ]. Таким образом,
организовав специальным способом выбор точек на отрезке, можно построить процедуру последо-
вательного исключения интервалов отрезка. Процедура завершается, когда оставшиийся отрезок не
достигнет достаточно малых размеров. При этом не требуется, чтобы исследуемая функция была
дифференцируемой и даже нерпрерывной, более того она может быть задана таблично. Рассмот-
рим наиболее простые методы поиска минимума (максимума) унимодальной функции, с которыми
должен быть знаком каждый студент, прослушавший курс по экстремальным задачам.
Метод деления отрезка пополам. Рассматриваем задачу отыскания точки минимума x∗ унимодаль-
ной функции f (x), определенной на отрезке. Возьмем две точки. x1 = a+b−δ              2   ; x2 = a+b+δ
                                                                                                     2  , где δ-
достаточно малая положительная постоянная. При этом точки x1 , x2 делят отрезок почти пополам-
отсюда название метода. Вычисляем и сравниваем значения f (x1 ) и f (x2 ) Если f (x1 ) > f (x2 )?nj
согласно доказанной теореме новый отрезок поиска точки x∗ будет [x1 , b]. Границы нового отрезка
обозначим через a1 и b1 , т. е. a1 = x1 , b1 = b. Если f (x1 ) < f (x2 ), то a1 = a, b1 = x2 . При этом длина
нового отрезка будет ∆1 = b1 − a1 = b−a              1
                                           2 + (1 − 2 )δ На новом отрезке повторяем процедуру выбора
точек x1 и x2 (мы сохраняем их обозначения ) и сравнения значений функции в этих точках. На k-ой
итерации будем иметь: x1 = ak−1 +b2k−1 −δ ; x2 = ak−1 +b2k−1 +δ ; ∆k = bk −ak = b−a 2k
                                                                                         +(1− 21k δ) = b−a−δ
                                                                                                         2k
                                                                                                              +δ
Если приводим k шагов процедуры, то количество рассматриваемых точек и соответственно коли-
чество вычисленных значений функции равно: n = 2k. Если полученный отрезок [ak , bk ]достаточно
мал (см. ниже), то принять середину отрезка за решение задачи x∗ ≈ x∗n = ak +b           2
                                                                                           k
                                                                                             . при этом погреш-
                       ∗    ∗    1            b−a     δ
ность составляет |x − xn | ≤ 2 (bk − ak ) ≤ 2k+1 + 2 . В случаях, когда вычисление значений функции
не вызывает затруднений, итерации следует проводить до тех пор, пока 12 (bk − ak ) < ε или b−a−δ           2k+1
                                                                                                                ,
где ε- требуемая заданная точность вычисления. Тогда можно получить оценку для числа необхо-
димых итерации: k > log2 ( b−a−δε− δ
                                     ) − 1, число точек вычисления значений функции равно N = 2k.
                                    2