Методы исключения отрезков

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

Пусть на интервале (a;b) выбраны две пробные точки x1 и x2, такие что a<x1<x2<b и вычислены значения f(x1) и f(x2). В силу унимодальности минимизируемой функции f(x) можно сократить отрезок поиска точки x*, перейдя к отрезку [a; x2], если f(x1)  f(x2), или к отрезку [x1;b] , если f(x1)f(x2). Повторяя эту процедуру до тех пор, пока длина последнего из полученных отрезков не станет достаточно малой, в качестве точки минимума можно взять одну из точек последнего отрезка, например, его середину. Методы, использующие такой способ последовательного уменьшения отрезка, содержащего точку минимума, называют методами исключенных отрезков. Друг от друга они отличаются лишь способом выбора пробных точек. Наибольшее распространение на практике получили метод дихотомии и метод золотого сечения.

Метод дихотомии

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

Итак, в методе дихотомии пробные точки выбираются близко к середине очередного отрезка [a; b]

x1= методы исключения отрезков - student2.ru x2= методы исключения отрезков - student2.ru (1.8)

где d>0- некоторое число малое настолько, что ещё можно отличить значения f(x1) и f(x2) друг от друга. При этом отношение длин нового и исходного отрезков близко к 1/2:

методы исключения отрезков - student2.ru (1.9)

Поэтому, чем меньше число d, тем больше относительное уменьшение длины отрезка на каждой итерации. Т.е. при уменьшении d повышается скорость сходимости метода дихотомии. Рекомендуется значение d выбирать из интервала (0;2e).

В конце вычислений по методу дихотомии в качестве приближенного значения х* берут середину последнего из найденных отрезков, убедившись предварительно, что достигнуто неравенство en £ e, где

en= методы исключения отрезков - student2.ru методы исключения отрезков - student2.ru (1.10)

Находя n из этого условия, получаем число итераций метода дихотомии, необходимое для определения точки х* с заданной точностью 

n методы исключения отрезков - student2.ru . (1.11)

Опишем алгоритм метода дихотомии.

Шаг 0. Задать параметр точности   0, параметр алгоритма (0;2).

Шаг 1. Вычислить x1 и x2 по формулам (1.7) и значения функции f(x1) и f(x2).

Шаг 2. Сравнить эти значения. Если f(x1)  f(x2), то перейти к отрезку [a; x2], положив b=x2, иначе – к отрезку [x1;b], положив а=x1.

Шаг 3. Найти достигнутую точность n=(b-a)/2. Если n  , то перейти к шагу 1 для выполнения следующей итерации, иначе завершить поиск, положив х*(a+b)/2.

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

В методе дихотомии при выполнении каждой итерации определяются две новые пробные точки x1 и x2. Рассмотрим такое симметричное их расположение на отрезке [a; b], при котором одна из них становится пробной точкой и на новом отрезке, полученном после исключения части исходного отрезка. Использование таких точек позволяет на каждой итерации метода исключения отрезков, кроме первой, ограничиться определением значения функции f(х) только в одной точке, т.к. другое значение уже найдено на предыдущей итерации. Таким свойством обладают точки золотого сечения отрезка [a; b].

Золотым сечением отрезка называется такое деление отрезка на две неравные части, что отношение длины всего отрезка к длине его большей части равно отношению длин большей и меньшей частей отрезка. Находятся две точки x1 и x2 (x1 < x2)

x1=a+ методы исключения отрезков - student2.ru (b - a); x2= a+ методы исключения отрезков - student2.ru (b - a), (1.12)

которые делят отрезок [a; b] в указанном отношении

методы исключения отрезков - student2.ru (1.13)

Свойство золотого сечения как раз и замечательно тем, что точка x1 также производит золотое сечение отрезка [a; x2], а точка x2 в том же отношении делит отрезок [x1;b]. Это свойство и кладется в основу метода золотого сечения.

Отметим, что точки x1 и x2 симметричны относительно середины очередного отрезка:

x1=a+b- x2; x2=a+b- x1. (1.14)

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

В конце вычислений в качестве приближенного значения х* можно взять середину последнего из полученных отрезков. На каждой итерации отрезок поиска точки минимума уменьшается в одном и том же отношении =( методы исключения отрезков - student2.ru -1)/2, поэтому в результате n итераций его длина становится равной hn=n(b - a). Таким образом, точность n определения точки х* после n итераций находится по формуле

en = методы исключения отрезков - student2.ru (1.15)

а условием окончания поиска х* c наперед заданной точностью  служит неравенство n  . Используя это условие и формулу (8) можно оценить число итераций, потребное для достижения заданной точности :

n методы исключения отрезков - student2.ru ln методы исключения отрезков - student2.ru / ln методы исключения отрезков - student2.ru ln методы исключения отрезков - student2.ru . (1.16)

Опишем алгоритм метода золотого сечения.

Шаг 0. Задать параметр точности e > 0, положить t=( методы исключения отрезков - student2.ru -1)/2.

Шаг 1. Найти x1 и x2 по формулам (5). Вычислить f(x1) и f(x2). Положить en =(b-a)/2.

Шаг 2. Проверить условие окончания поиска en £ e. Если оно выполняется, то перейти к шагу 4, иначе – к шагу 3.

Шаг 3. Перейти к новому отрезку и новым пробным точкам. Если f(x1) £ f(x2), то положить b=x2, x2=x1, f(x2) = f(x1), x1 = b + a - x2 и вычислить f(x1), иначе - положить a=x1, x1=x2, f(x1) = f(x2), x2 = a + b – x1 и вычислить f(x2). Положить en =t×en и перейти к шагу 2.

Шаг 4. Завершить поиск, положив х*» методы исключения отрезков - student2.ru , f*» методы исключения отрезков - student2.ru .

Наши рекомендации