Троичный поиск — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{В разработке}} '''Троичный поиск''' {{---}} метод поиска минимума или максимума на отрезке. Рас…»)
 
Строка 1: Строка 1:
 
{{В разработке}}
 
{{В разработке}}
'''Троичный поиск''' {{---}} метод поиска минимума или максимума на отрезке.
+
'''Троичный поиск''' {{---}} метод поиска минимума или максимума функции на отрезке.
  
Рассмотрим функцию <tex>f</tex>, у которой на отрезке <tex>[a, b]</tex> есть минимум.
+
Рассмотрим этот алгоритм на примере поиска минимума (поиск максимума аналогичен).
 +
 
 +
Пусть функция <tex>f(x)</tex> на отрезке <tex>[a, b]</tex> имеет минимум, и мы хотим найти точку <tex>x_{min}</tex>, в которой он достигается.
 +
 
 +
Посчитаем значения функции в точках <tex> x_1 = a + \frac{(b-a)}{3} </tex> и <tex> x_2 = a + \frac{2(b-a)}{3} </tex>. Так как в точке <tex>x_{min}</tex> минимум, то до нее на отрезке <tex>[a, b]</tex> функция убывает, а после нее {{---}} возрастает, то есть
 +
<tex> \forall x', x'' \in [a, b]: \\
 +
a      < x' < x'' < x_{min} \Rightarrow f(a)      > f(x') > f(x'') > f(x_{min}) \\
 +
x_{min} < x' < x'' < b      \Rightarrow f(x_{min}) < f(x') < f(x'') < f(b)      </tex>.
 +
 
 +
Значит <tex>f(x_1) < f(x_2) \Rightarrow x_{min} \in [a, x_2]</tex>, аналогично <tex>f(x_1) > f(x_2) \Rightarrow x_{min} \in [x_1, b]</tex>. Тогда нам нужно изменить границы поиска и искать дальше, пока не будет достигнута необходимая точность, то есть <tex> b-a < \varepsilon </tex>.

Версия 16:31, 15 июня 2011

Эта статья находится в разработке!

Троичный поиск — метод поиска минимума или максимума функции на отрезке.

Рассмотрим этот алгоритм на примере поиска минимума (поиск максимума аналогичен).

Пусть функция [math]f(x)[/math] на отрезке [math][a, b][/math] имеет минимум, и мы хотим найти точку [math]x_{min}[/math], в которой он достигается.

Посчитаем значения функции в точках [math] x_1 = a + \frac{(b-a)}{3} [/math] и [math] x_2 = a + \frac{2(b-a)}{3} [/math]. Так как в точке [math]x_{min}[/math] минимум, то до нее на отрезке [math][a, b][/math] функция убывает, а после нее — возрастает, то есть [math] \forall x', x'' \in [a, b]: \\ a \lt x' \lt x'' \lt x_{min} \Rightarrow f(a) \gt f(x') \gt f(x'') \gt f(x_{min}) \\ x_{min} \lt x' \lt x'' \lt b \Rightarrow f(x_{min}) \lt f(x') \lt f(x'') \lt f(b) [/math].

Значит [math]f(x_1) \lt f(x_2) \Rightarrow x_{min} \in [a, x_2][/math], аналогично [math]f(x_1) \gt f(x_2) \Rightarrow x_{min} \in [x_1, b][/math]. Тогда нам нужно изменить границы поиска и искать дальше, пока не будет достигнута необходимая точность, то есть [math] b-a \lt \varepsilon [/math].