Составители:
5
переприсваивая новому значению b значение c . Если же реализуется ситуация,
когда функция имеет разные знаки на концах отрезка [c, b], то из рассмотрения
следует исключить отрезок [a, c], формально переприсваивая новому значению а
значение c .
В результате мы получим последовательность вложенных друг в друга
отрезков все уменьшающейся длины:
] ,[ ],... ,[ ], ,[
2211 nn
bababa
. Этот
повторяющийся (итерационный) процесс будем продолжать до тех пор, пока
длина отрезка
] ,[
nn
ba
не станет меньше заданной погрешности ε вычислений.
Тогда искомый корень
ξ
≈
a
n
≈
b
n
≈
(a
n
+ b
n
)/2.
(2)
Следует учитывать, что функция f(x) вычисляется с некоторой абсолютной
погрешностью ε
. Вблизи корня значения функции f(x) малы по абсолютной вели-
чине и могут оказаться сравнимыми с погрешностью ее вычисления. Другими
словами, при подходе к корню мы можем попасть в “полосу шумов” 2ε
1
(рисунок
2) и дальнейшее уточнение корня становится бессмысленным. Поэтому надо за-
дать ширину “полосы шумов” и прекратить итерационный процесс при попадании
в нее. Также необходимо иметь в виду, что при уменьшении длины интервала
] ,[
nn
ba
увеличивается погрешность вычисления его длины
nn
ba
−
за счет вычи-
тания двух близких чисел.
Метод половинного деления обладает довольно большой скоростью сходи-
мости. Так как за каждую итерацию интервал, где расположен корень, уменьшает-
ся в два раза, то через n итераций длина интервала будет равна
(b−a)/2
n
. За 10
итераций интервал уменьшится в
310
1010242 ≈≈
раз, а за 20 итераций – в
2
20
≈10
6
раз.
Приведем вычислительную схему подпрограммы, реализующей метод деле-
ния отрезка пополам:
Рисунок 2 − Графическая интерпретация
метода половинного деления
ξ
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »