4.1. Дихотомия (деление пополам)
Пусть
мы нашли такие точки
,
,
что
,
т.е. на отрезке
лежит не менее одного корня уравнения.
Найдем середину отрезка
и вычислим
.
Из двух половин отрезка выберем тот, на
котором
меняет знак. Процедуру продолжаем до
тех пор, пока не будет выполняться
условие
,
где
заданная точность. Тогда середина
последнего отрезка даст значение корня
с требуемой точностью (рис.
4.1).
Дихотомия
проста и очень надежна: к простому корню
она сходится при любых непрерывных
функциях f(x),
в том числе не дифференцируемых; при
этом она устойчива к ошибкам округления.
Но скорость сходимости невелика: за
одну итерацию точность увеличивается
примерно вдвое, т.е. уточнение трех цифр
требует
7
итераций. Если на выбранном отрезке
имеются несколько корней, то хотя бы к
одному из них процедура обязательно
сойдется. Следует отметить, что на
системы уравнений дихотомия не обобщается.
Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.
4.2. Удаление корней
Один
из недостатков дихотомии
сходимость, неизвестно к какому корню.
Иногда целесообразно для упрощения
поиска корней из исходной функции
f(х)
удалить уже найденные корни. Если
есть простой корень уравнения
(4.1)
и f(х)
липшиц
непрерывна, то вспомогательная функция
g(х)
=
непрерывна,
причем все нули функций f(х)
и
g(x)
совпадают, за исключением
,
ибо
g(
)
0.
Если
кратный
корень уравнения
(4.1),
то он будет нулем
g(х),
но кратность уменьшится на единицу;
остальные значения корней обеих функций
по-прежнему будут одинаковы. Поэтому
найденный корень можно удалить, т. е.
перейти к функции
g(х).
Тогда нахождение остальных нулей
f(х)
сведется
к
нахождению нулей
g(х).
Когда мы найдем какой-нибудь корень
функции
g(x),
то этот корень тоже можно удалить, вводя
новую вспомогательную функцию
(х).
Так можно последовательно найти все
корни f(х).
Строго
говоря, мы находим лишь приближенное
значение корня
.
А функция
имеет
нуль в точке
и полюс в близкой к ней точке
(рис.
4.2);
только на некотором расстоянии от этого
корня она близка к
g(x),
поэтому функция
анализируется
на диапазоне
Для нахождения корня с достаточно
высокой точностью окончательные итерации
вблизи определяемого корня рекомендуется
делать не по функциям типа g(x),
а по исходной функции f(х).
Итерации, вычисленные по функции
g(x),
используются при этом в качестве нулевого
приближения. Особенно важно это при
нахождении многих корней, потому что
чем больше корней удалено, тем меньше
нули
вспомогательной
функции
g(х)
=
соответствуют остальным нулям функции
f(х).
y


Рис. 4.1. Процедура поиска корня Рис 4.2. График функции для
методом дихотомии устранения кратного корня
Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности, р ~ 5).
