Глава 2. Методы минимизации функции одной переменной
2.1. Метод деления отрезка пополам
Для минимизации унимодальных функций применяются методы, не требующие вычисления производных. Наиболее простой из них – метод деления отрезка пополам. Он заключается в том, что, взяв некоторое достаточно малое положительное число d, определяют точки c и d следующими равенствами [7]
,
(1)
Затем вычисляют значения
,
и
сравнивают между собой. Если
1)
,
то полагают
,
![]()
2)
,
то полагают
,
![]()
Из определения унимодальной на
функции
следует, что точка локального минимума
функции
расположена
на отрезке
.
Заменив в равенствах (1) a
на a1,
b
на b1,
вычислим точки c1,
d1.
Затем в найденных точках находим значения функции
,
которые опять сравниваются между собой.
Если повторить подобные операции
n
раз, то найдем отрезок
длины
,
на котором расположена точка
.
Полагая
,
получим, что погрешность определения точки
не
будет превышать числа
.
Число
принимается
за минимальное значение функции
на
.
Метод относится к последовательным стратегиям и позволяет исключить из дальнейшего рассмотрения на каждой итерации в точности половину текущего интервала неопределенности. Условия окончания поиска стандартные: поиск заканчивается, когда длина текущего интервала неопределенности оказывается меньше установленной величины.
Для метода деления отрезка пополам
характеристика относительного уменьшения начального интервала неопределенности
находится по формуле
,
где N -
количество вычислений функций.
Замечания.
1. Средняя точка последовательно получаемых интервалов всегда совпадает с одной из трех пробных точек, найденных на предыдущей итерации. Следовательно, на каждой итерации требуются два новых вычисления функции.
2. Если задана величина
,
то требуемое для достижения желаемой точности количество вычислений функции
находится как наименьшее целое, удовлетворяющее условию
.
3. Текущие интервалы имеют четные номера L0, L2, L4,..., где индекс указывает на сделанное количество вычислений функций.
Пример 1.
Найти минимум функции
.
Решение. Решение будем выполнять по следующим шагам:
10. Зададим начальный
интервал неопределенности
(см.
пример 2 п. 1.3). Пусть l
= 1.
20. Положим k = 0.
30. Вычислим
,
,
.
40.Вычислим
;
;
![]()
50. Сравним
и
.
Так как
<
,
то положим
.
70. Получим
![]()
Переходим к шагу 4.
41. Вычислим
;
;
![]()
51. Сравним
и
=
.
Так как
,
то перейдем к шагу 6.
61. Сравним
и
=
.
Так как
,
то положим
![]()
71. Получим
Положим
Переходим
к шагу 4.
42. Вычислим
;
![]()
52. Сравним
и
=
.
Так как
,
то перейдем к шагу 6.
62. Сравним
=
.
Так как
,
то положим
![]()
72. Получим
Положим
Переходим
к шагу 4.
43. Вычислим
;
;
![]()
53. Сравним
и
=
.
Так как
,
то перейдем к шагу 6.
63. Сравним
и
=
.
Так как
,
то положим
![]()
73. Получим
Поэтому
В качестве решения можно взять среднюю точку последнего интервала
.
Первые итерации поиска приведены на рисунке 2:

Рис. 2. Первые итерации поиска