Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по ВМ Ч3.doc
Скачиваний:
16
Добавлен:
01.05.2019
Размер:
440.83 Кб
Скачать

Метод половинного деления

Пусть при решении задачи (1) определен отрезок [ab], которому принадлежит точка локального минимума х*, и функция f(x) является унимодальной на этом отрезке.

Далее для сужения отрезка унимодальности используем точки х1 и х2, расположенные симметрично относительно середины отрезка [a, b];

Будем считать, что число k гораздо меньше 1 (k << 1). Тогда точки х1 и х2 принадлежат отрезку [ab] и, следуя рассмотренной в прошлом пункте схеме, получим новый суженный отрезок [a1b1] и оценим его длину в каждом из трех возможных случаев:

I. y1 < y2, a1 = a, .

II. y1 > y2, .

III. y1 = y2, a1 = x1, b1=x2;

Таким образом, после первого шага преобразований найден новый отрезок унимодальности [a1, b1], длина которого уменьшилась.

Название метода (метод половинного деления) мотивировано тем, что если величина k очень мала, то длина отрезка унимодальности b-а уменьшается почти вдвое (в случаях I, II).

Теперь в новом суженном промежутке 1, b1] выберем точки и , симметричные относительно его середины:

.

Проведя вычисления, аналогичные проделанным ранее, получаем отрезок 2, b2], длина которого не больше

,

и т. д.

В результате приходим к последовательности таких вложенных отрезков [a, b], [a1, b1]n, bn], …, что точка локального минимума х* функции f(x) принадлежит каждому из них и является общим пределом последовательностей n} и {bn}. Отсюда получаются приближенные равенства

х* an bn,

точность которых на n-м шаге вычислений можно оценить неравенством

(2)

Пример 3. Найти точку х* локального минимума функции f(х) = 2x2 – ln x на отрезке [0,25; 1] методом половинного деления с точностью = 0,1. Провести вычисления, полагая k = 0,1 и предварительно оценив минимальное число шагов n для достижения точности .

Решение. Было установлено (см. пример 1), что функция унимодальна на отрезке [0,25;1]; точка х* принадлежит этому отрезку. Воспользуемся неравенством (2) и определим число шагов n:

Обозначим

(3)

где a0 = a = 0,25, b0 = b = 1, ai, bi - координаты начала и конца отрезка, полученные на i-м шаге вычислений, точки и принадлежат отрезку [ai, bi].

Произведем последовательные вычисления.

Отрезок [a,b] = [0,25; 1]:

x1 = 0,5375, х2 = 0,6625, у1 = 1,2221 < у2 = -1,2895.

Отрезок 1, b1] = [а, х2] = [0,25; 0,66251]:

= 0,4356, = 0,4769, = 1,2105 > = 1,1953.

Отрезок 2, b2] = [ , x2] = [0,4356; 0,66251];

= 0,5377, = 0,5604, = 1,1987 < = 1,2072.

Отрезок [a3,b3] = [ , ] = [0,4356; 0,56041]:

= 0,4918, = 0.5043, = 1,1934 > = 1,1932.

Отрезок [a4, b4] = [ , ] = [0,4918; 0,5604].

Разность = b4 - а4 = 0.0686 < =0,1. Следовательно, точкой локального минимума, найденной с заданной точностью, является х* а4 = 0,4918.

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

Термин «золотое сечение» ввел Леонардо да Винчи. Точка х1 является золотым сечением отрезка [а, b], если отношение длины b всего отрезка к длине b1 большей части равно отношению длины большей части к длине х1 меньшей части (рис. 3), т.е. х1 - золотое сечение, если справедливо отношение

Аналогично, точка х2, симметричная точке х1 относительно середины отрезка [а, b], является вторым золотым сечением этого отрезка. Так как точки х1 и х2 расположены симметрично относительно середины отрезка [а, b], то можно записать

(4)

Учитывая, что , и используя определение золотого сечения, вычислим число k > 0:

.

Отметим свойство золотого сечения, в котором легко убедиться: пусть x1 и х2 - два золотых сечения отрезка [а, b]; тогда точка х1 одновременно является золотым сечением отрезка [а, х2], а другая точка х2 - золотым сечением отрезка 1, b] (рис. 3).

Т еперь разберем подробнее алгоритм метода золотого сечения при нахождении последовательности вложенных отрезков [ai, bi] (i=0, 1, ... , n), сужающихся к точке х* локального минимума унимодальной функции f(x).

Сначала на исходном отрезке [а, b] по формулам (4) при найдем точки х1 и х2, а затем разность 1x = х2 – х1. Далее вычисляем значения функции у1=f1) и у2=f2) и, следуя схеме, описанной выше, образуем суженный отрезок 1, b1]. Наконец, готовясь к следующему шагу и используя свойство золотого сечения, на отрезке 1, b1] находим два сечения и . При этом возможны три случая:

  1. .

  2. .

  3. .

Теперь, следуя разобранной схеме, можно переходить к нахождению отрезков 2, b2], 3b3] и т. д., учитывая при этом, что в случаях I или II значение или целевой функции уже получено на предыдущем шаге (i = 1,2,...,n).

Точность приближенного равенства х* аn bn на n-м шаге вычислений можно оценить неравенством

(5)

полученным из неравенства (2), где .

Пример 4. Найти точку х* локального минимума функции f(x) = 2х2-ln х на отрезке [0,25; 1] методом золотого сечения с точностью = 0,1. Провести вычисления, предварительно оценив минимальное число шагов n для достижения точности .

Решение. Определим минимальное число шагов n, используя неравенство (5):

Произведем последовательные вычисления.

Отрезок [a,b] = [0,25; 1]:

x1 = 0,5375, х2 = 0,7135, у1 = 1,1983 < у2 = 1,3558, x1 = 0,177.

Отрезок 1, b1] = [а, х2] = [0,25; 0,7135]:

= 0,4271, = x1, = 1,2156 > = y1, x2 = 0,1094.

Отрезок 2, b2] = [ , x2] = [0,4271; 0,7135];

= = x1, = 0,6041, = y1 < = 1,2339, x3 = 0,06763.

Отрезок [a3,b3] = [ , ] = [0,4271; 0,6041]:

= 0,4947, = = = x1, = 1,1933 < = y1, x4 = 0,0418.

Отрезок [a4, b4] = [ , ] = [0,4271; 0.5365];

= 0,4688, = , = 1,1971 > = , x5 = 0,0258.

Отрезок [a5, b5] = [ , ] = [0,4688; 0.5365];

Точкой минимума функции f(x) с погрешностью = b5 – а5 = 0.0677 < 0,1 = является х*  а5 = 0,4688.