Изменения

Перейти к: навигация, поиск

Поиск с помощью золотого сечения

323 байта убрано, 00:34, 8 июня 2015
Алгоритм
Рассмотрим одну итерацию алгоритма [[Троичный поиск|троичного поиска]]. Попробуем подобрать такое разбиение отрезка на три части, чтобы на следующей итерации одна из точек нового разбиения совпала с одной из точек текущего разбиения. Тогда в следующий раз не придется считать функцию в двух точках, так как в одной она уже была посчитана.
[[Файл:divide_segnew_seg.gif|right|380px450px|Пусть <tex>l</tex> и <tex>r</tex> левая и правая граница исследуемого отрезка.Точки <tex>x_1</tex> и <tex>x_2</tex> разбивают Старая точка x1 уже делит отрезок на три части длины <tex>a, bв нужном отношении, c</tex> соответственнопоэтому нет необходимости вычислять ее заново (красным отмечены новые значения точек).]]
Для этого нам потребуется, чтобы одновременно выполнялись равенства:
::<tex>x_2 = r - \dfrac{r - l}{\varphi + 1}</tex>
::и вычислим функцию на них: <tex>f_1 = f(x_1), f_2 = f(x_2)</tex>
[[Файл:new_seg.gif|right|450px|Старая точка x1 уже делит отрезок в нужном отношении, поэтому нет необходимости вычислять ее заново (красным отмечены новые значения точек).]]
:'''Шаг 2''':
:: если <tex>f_1 < f_2</tex>, тогда
Анонимный участник

Навигация