Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЛАВЫ3_4.DOC
Скачиваний:
6
Добавлен:
28.10.2018
Размер:
474.62 Кб
Скачать

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).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]