Вещественный корень f(х)
Back Home Up Next

адача 14. Пусть функция f(x) вещественной переменной x непрерывна на отрезке [a,b] и f(a)×f(b)£0. Составить рекурсивную программу нахождения на [a,b] какого-либо вещественного корня f(x).

Решение. Во-первых, при перечисленных выше условиях по крайней мере один корень f(x) на [a, b] существует. Во-вторых, договоримся о том, как понимать слова “найти корень”. Будем считать, что корень ищется с точностью e>0, то есть должен быть найден отрезок [a,b] (b-a<2×e), на котором корень имеется. Тогда в качестве приближенного значения корня может быть взята точка x0=(b+a)/2.

Для отыскания решения многих задач часто используется метод дихотомии, называемый также методом последовательного деления пополам, бисекции или вилки. В некоторых ранее рассмотренных задачах мы уже сталкивались с этим методом. В нашем случае, когда ищется корень уравнения, суть его в следующем. Пусть e>0 задано. Делим отрезок [a,b] точкой с=(b+a)/2 на две равные части и в качестве нового отрезка [a,b] берем ту из его половин, для которой снова f(a)×f(b)£0 и т. д. Ясно, что на некотором шаге будем иметь отрезок [a,b] такой, что b–a<2×e и f(a)×f(b)£0. Следовательно, приближенное решение найдено, и оно равно (b+a)/2.

А как записать предложенный алгоритм с использованием рекурсии? Оказывается, все достаточно просто.

Контрольные примеры:

адача 15. Пусть функция f(x) вещественной переменной x непрерывна на отрезке [a,b]. Составить рекурсивную программу нахождения на [a,b] любого вещественного корня f(x). При отсутствии корней должно быть выдано значение ¥ (10307).

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

Контрольные примеры. Рассмотрим функции примеров из предыдущей задачи. Имеем:

Home Содержание Схемы ООД Доска объявлений Поиск