ОТДЕЛЕНИЯ КОРНЕЙ. УТОЧНЕНИЕ КОРНЕЙ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ (МЕТОД ДИХОТОМИИ) - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ОТДЕЛЕНИЯ КОРНЕЙ. УТОЧНЕНИЕ КОРНЕЙ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ (МЕТОД ДИХОТОМИИ)

Космакова О.С. 1, Васютин А.А. 1
1Донской Государственный Технический Университет (ДГТУ)
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В общем случае редко удается точно найти все корни нелинейных уравнений, а если к тому же коэффициенты в уравнении даны с погрешностью, то вопрос о точном определении корней вообще теряет всякий смысл. Однако если предположить, что задано уравнение типа (1), то тогда без ограничения общности можно утверждать, что F(х) имеет корни, для которых существует δ-окрестность, содержащая только один простой корень. Такой корень иногда называют изолированным.

Предположим теперь, что найден отрезок [a, b] такой, что

  1. функцияF(x) непрерывна на отрезке [a, b] вместе с производной первого порядка;

  2. значения F(x) на концах отрезка имеют разные знаки (F(a)F(b) < 0);

  3. первая производная F (x) сохраняет определенный знак на всем отрезке.

Условия 1) и 2) гарантируют, что на интервале [a, b] находится хотя бы один корень, а из 3) следует, что F(x) на данном интервале монотонна и поэтому корень будет единственным. Такой интервал называют интервалом изоляции искомого корня ξ.

Нули функции на практике вычисляют приближенно несколькими способами. Одним из самых распространенных и не очень точных является графический метод.

Принимая во внимание, что действительные корни уравнения (1) – это точки пересечения графика функции F(x) с осью абсцисс, достаточно построить график функции F(x) и отметить точки пересечения F(x)с осью Ох, или отметить на оси Ох отрезки, содержащие по одному корню. Построение графиков часто удается сильно упростить, заменив исходное уравнение (1) равносильным ему уравнением:

F1(x) = F2(x), (2)

где функцииF1(x) и F2(x) – более простые, чем исходная функцияF(x). Тогда, построив графики функций у =F1(x) и у = F2(x), искомые корни получим как абсциссы точек пересечения этих графиков.

Пример 1. Графически отделить корни уравнения

x.lgx = 1. (3)

Решение. Уравнение (3) перепишем в виде равенства lg x=.

Отсюда ясно, что корни уравнения (3) могут быть найдены как абсциссы точек пересечения логарифмической кривой y = lg x и гиперболы y = . Построив эти кривые (см. рис. 1), приближенно найдем единственный корень уравнения (3) или определим его содержащий отрезок [2, 3].

Рис. 1 – Графическое отделение корней (пример 1)

Убедимся, что отрезок [2, 3] содержит один и только один корень уравнения (3).

Перепишем уравнение в виде F(x) = 0, где .

Тогда F(2) = 2.lg(2) – 1 = 2.0.30103 – 1 = 0.60206 – 1 = – 0.39794 0, т.е. на концах отрезка функция F(x) принимает значения разных знаков.

Найдем первую производную функции:

Следовательно, первая производная сохраняют свой знак на отрезке, а на концах отрезка функция F(x) принимает значения разных знаков, значит отрезок [2, 3] – отрезок изоляции искомого корня ξ.

Другим, не менее распространенным методом отделения корней является метод производных. Этот метод основан на том, что между любыми двумя нулями функции содержится, по крайней мере, один нуль ее производной. Отсюда следует, что нули функции естественно искать на интервалах, порождаемых нулями производной. Метод заключается в том, что ищут и приравнивают к нулю производную функции F'(х), а затем на отрезках определяют знак функции F(х), где хi корни уравнения F'(х)= 0. Таким образом, всю числовую ось разбивают на интервалы. Отметим, что описанный метод называют еще методом экстремумов функции.

Пример 2. Отделить методом производных корни уравнения:

F(x) ≡ x3 + 3х2 −3 = 0. (4)

Решение. Найдем производную F'(х) и приравняем ее нулю.

F'(х) = 3х2 + 6х = 0 → 3х(х + 2) = 0 → х1= 0, х2= −2.

Составим приблизительную схему знаков функции F(х):

х

– ∞

– 2

0

+ ∞

signF(x)

+

+

Следовательно, уравнение (4) имеет три действительных корня, лежащих в интервалах (– ∞, –2), (–2, 0) и (0, + ∞). Возьмем для пробы три дополнительные точки х = – 3, х = – 1, х = 1 и составим следующую схему знаков F(x):

х

– ∞

– 3

– 2

– 1

0

+1

signF(x)

+

+

+

Тогда, ξ1(– 3, – 2), ξ2(– 2, – 1), ξ3(0, 1).

Если исследуемая функция есть полином n-й степени, то используют метод удаления корней: определяют один корень, и функцию F(х) представляют в виде F(х)= g1(х).(х х1), где x1 первый найденный корень, а g1(х)– полином степени (n – 1).Затем проверяют, является ли х1корнем полинома g1(x). Если корень имеет кратность, большую единицы, то записывают многочлен в виде F(х)= g2(х).(х х1)2. После конечного числа шагов получают представление F(х)= (х х1)kgk(х) и переходят к определению следующего корня при помощи gk(х). В результате получают представление

,

где gm(x) действительных корней не имеет.

Чтобы погрешность с каждым шагом не увеличивалась, а очередной корень определялся с высокой степенью точности, следует уточнение корня производить по функции F(х), а не по функции g(х). Это особенно важно, когда удалено много (больше половины) корней.

На практике предполагаемые корни уточняют различными специальными вычислительными методами. Одним из них является метод дихотомии (бисекции, половинного деления), относящийся к итерационным. Он состоит в построении последовательности вложенных отрезков, на концах которых F(х) имеет разные знаки. Каждый последующий отрезок получают делением пополам предыдущего. Этот процесс построения последовательности вложенных отрезков позволяет найти нуль функции (F(х) = 0)с любой заданной точностью.

Опишем подробно один шаг итерации. Пусть на k-м шаге найден отрезок [аk , bk], на концах которого F(х) имеет разные знаки. Заметим, что обязательно [аk, bk] [а, b]. Разделим теперь отрезок [аk, bk]пополам и вычислим F(с), где с середина [аk , bk], т.е. . Здесь возможны два случая: первый, когда F(с) = 0, тогда мы говорим, что искомый корень найден и ξ = с; второй, когда F(с)  0, тогда сравниваем знак F(с) с F(аk) и F(bk) и из двух половин [аk, с] и [с,bk] выбираем ту, на концах которой функция меняет свой знак. Таким образом, bk = с, если F(с).F(аk) < 0 , и аk = с, если F(с).F(bk)< 0.

При заданной точности  деление пополам продолжают до тех пор, пока длина отрезка не станет меньше ., тогда координата середины последнего найденного отрезка и есть значение корня требуемой точности.

Метод дихотомии – простой и надежный метод поиска простого корня уравнения F(х) = 0. Он сходится для любых непрерывных функций F(х), в том числе и недифференцируемых.

Недостатки метода:

  1. проблема определения отрезка, на котором функция меняет свой знак (как правило, это отдельная вычислительная задача, наиболее сложная и трудоемкая часть решения);

  2. если корней на выделенном отрезке несколько, то нельзя заранее сказать, к какому из них сойдется процесс;

  3. не применим к корням четной кратности;

  4. для корней нечетной, но высокой кратности метод неустойчив, дает большие ошибки;

  5. медленно сходится. Для достижения ε необходимо выполнить итераций, т.е. для получения 3 верных цифр (ε = 0.0005) надо выполнить около 10 итераций, если первоначальный отрезок имеет единичную длину.

Программа, по которой можно уточнить корни методом дихотомии, построена по алгоритму, приведенному ниже (см. рис. 2).

Рис. 2 Блок-схема метода дихотомии

Пример 3. Отделить корни уравнения x2 5 . sin x = 0 и уточнить их с точностью ε = 0.00005 методом дихотомии.

Решение. Первый этап – графическое отделение корней. Графическим методом (см. рис. 3) находится отрезок, на котором расположен один из корней данного уравнения [1.8; 2.2]; (второй корень тривиальный, х = 0 находится легко).

Рис. 3 Графическое отделение корней (пример 3)

Второй этап – уточнение отделенного корня методом дихотомии до заданной точности ε. Для того чтобы уточнить корень, изолированный на отрезке [1.8; 2.2], с указанной точностью используем процедуру bisect.

Формальные параметры процедуры BISECT. Входные:A, B (тип real) – определяют длину отрезка; EPS (тип real) – определяет заданную точность вычислений; IT (тип integer) – определяет наибольшее разрешенное количество итераций (для избежания зацикливания процесса в случае неправильного определения отрезка изоляции). Выходные:X (тип real) – в нем содержится искомый корень сравнения; K (тип integer) – в него заносится количество выполненных итераций; FLAG (тип integer) – определяет способ выхода из процедуры, если FLAG=1, то заданная точность вычислений EPSне достигнута за разрешенное количество итераций IT.

Перед началом работы программы определяют func(Х) – процедуру-функцию, по которой вычисляют значения F(х). Тип функции должен быть вещественным.

Паскаль-программа и результаты расчета в среде Pascal ABC приведены на рисунках 4 и 5.

Рис. 4 Паскаль-программа уточнения корня методом дихотомии

Рис. 5 Результаты уточнения корня методом дихотомии в среде PascalABC

Вариант алгоритма метода дихотомии может быть реализован в среде математического пакета Mathcad (см. рис. 6). Достоинством пакета является возможность графического отделения корней и оценка значений первой и второй производных на интервале изоляции.

Рис. 6 Результаты решения в среде пакета Mathcad

Просмотров работы: 738