Алгоритм

1. На начальном этапе отрезок, на котором ищется минимум, задаётся равным интервалу допустимых значений [ a, b ]

2. Вычисляется положение центра отрезка c =(a + b)/2 и центров его правой и левой половин: x 1=(a + c)/2, x 2=(c + b)/2

3. Вычисляются значения целевой функции в точках f(c), f(x 1), f(x 2)

4. Значения функции в точках c, x 1, x 2 сравниваются, и определяется положение нового, уточнённого интервала поиска. При этом интервал поиска уменьшается в 2 раза:

1. Если f(c) > f(x 1), то новый отрезок: [ a, c ]

2. Если f(c) > f(x 2), то новый отрезок: [ c, b ]

3. Иначе новый отрезок: [ x 1, x 2]

5. Если длина отрезка меньше заданной точности ε, то алгоритм завершается, иначе осуществляется переход на шаг 2.

Алгоритм проиллюстрирован рис. 2.

Рис. 2. Метод дихотомии. Показан случай, когда f(x 1)<f(c)

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

Так как каждый последующий отрезок всегда ровно в 2 раза меньше предыдущего, метод дихотомии обеспечивает увеличение точности в 2 раза за каждые 2 вычисления целевой функции, или, в среднем, в 21/2 = 1,41... раза на 1 вычисление целевой функции.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: