Изменения

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

Вещественный двоичный поиск

819 байт добавлено, 00:36, 8 июня 2015
Правка №1
== Метод секущих ==
[[Файл:Secant method.png|thumb|250px350px|right|Метод секущих (при <tex> C = 0)</tex>]]
Итерационный численный метод приближённого нахождения корня уравнения.
Вычисляем каждое последующее значение <tex> x_{n+1} </tex> с помощью формулы:
<tex dpi=130> x_{n+1} = x_{n-1} + \genfrac{}{}{}{}dfrac{(C - f(x_{n}))\cdot(x_{n} - x_{n-1})}{f(x_{n}) - f(x_{n-1})} </tex>
Нахождение нулей функции <tex>(C = 0)</tex>:
<tex dpi=130> x_{n+1} = x_{n-1} - \genfrac{}{}{}{}dfrac{f(x_{n})\cdot(x_{n} - x_{n-1})}{f(x_{n}) - f(x_{n-1})} </tex>
=== Псевдокод ===
<code>
'''double''' search (a : '''double''', b : '''double''', eps : '''double'''): <font color=green> // Где a {{--- }} левая граница, а b {{--- }} правая </font>
'''while''' |a - b| > eps
a = b - (b - a) * f(b)/(f(b) - f(a)); b = a - (a - b) * f(a)/(f(a) - f(b));
'''return''' b
</code>
Задана монотонная, дифференцируемая функция и начальное значение <tex> x_{0} </tex>. Построим касательную к нашей функции в заданной точке и найдем новую точку <tex> x_{1} </tex>, как пересечения касательной и оси абсцисс. Пока не выполнено заданное условие, например <tex> f(x_{n}) < \varepsilon </tex>, вычисляем новое значение <tex> x_{n+1} </tex> по формуле:
<tex dpi=130> x_{n+1} = x_{n} - \genfrac{}{}{}{}dfrac{f(x_{n})}{f'(x_{n})} </tex>
=== Псевдокод ===
<code>
'''double''' search (x : '''double''', eps : '''double'''):
'''while''' f(x) > eps
x = x - f(x) / f'(x)
'''return ''' x</code> === Пример ===Найдём корень <tex> n </tex> степени с помощью метода Ньютона. Пусть даны числа <tex> C </tex> и <tex> n </tex> {{---}} число и корень какой степень нам нужно посчитать соответственно. Составим функцию <tex> f(x) = x^n - C </tex>, тогда её пересечение с осью абсцисс и будет искомым корнем. <code> '''double''' nthRoot (C : '''double''', n : '''double''', eps : '''double''') '''while''' pow(x, n) - C > eps x = x - (pow(x, n) - C) / (n * pow(x, n - 1)) '''return''' x
</code>
* [[Целочисленный двоичный поиск]]
== Источники информации ==
* [http://en.wikipedia.org/wiki/Bisection_method Bisection method {{---}} Wikipedia]
* [http://en.wikipedia.org/wiki/Newton%27s_method Newton's method {{---}} Wikipedia]
* [http://www.youtube.com/watch?v=qkLLcdgJj_o Видеолекция "сортировка и поиск"]
* [http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binarySearch Binary search {{---}} Topcoder]
Анонимный участник

Навигация