Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
чис_мет_3.doc
Скачиваний:
29
Добавлен:
13.11.2019
Размер:
1.34 Mб
Скачать

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

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

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

x1= x2= (1.8)

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

(1.9)

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

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

en= (1.10)

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

n . (1.11)

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

Шаг 0. Задать параметр точности e > 0, параметр алгоритма dÎ(0;2e).

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

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

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

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

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

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

x1=a+ (b  a); x2= a+ (b  a), (1.12)

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

(1.13)

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

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

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

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

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

en = (1.15)

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

n ln / ln ln . (1.16)

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

Шаг 0. Задать параметр точности e > 0, положить t=( 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. Завершить поиск, положив х* , f* .