Задача заключается в нахождении корней нелинейного уравнения
.
Для начала итераций необходимо знать интервал
значений
, на концах которого функция принимает значения разных знаков:
(*)
Из непрерывности функции
и условия (*) следует, что на интервале
существует хотя бы один корень уравнения. В случае монотонности функции на этом интервале корень будет единственным.
Выбреем точку внутри интервала
.
Если
, то корень найден. Если
, разобьем этот интервал на два
и
. Теперь найдем новый интервал, в котором функция меняет знак. Пусть
и соответственно корень находится внутри интервала
. Тогда обозначим
и повторим описанную процедуру до достижения требуемой точности. За количество итераций
первоначальный отрезок делится в
раз.
Программный код
xl – начало отрезка по х;
xr – конец отрезка по х;
xm – середина отрезка по х;
eps,eps1 – требуемая точность вычислений.
Алгоритм можно записать следующим образом (в псевдокоде):
1.Начало.
2.Ввод хl, xr, eps.
3.Если |F(хl)| < eps, то Вывод (корень уравнения – xl).
4.Если |F(хr)| < eps, то Вывод (корень уравнения – xr).
5.Пока |F(хm)| > eps или |xr-xl| > eps1 повторять:
6.xm:= (xr+xl)/2;
7.если (F(xl)*F(xm) < 0), то xr:= xm;
8.если (F(xm)*F(xr) < 0), то xl:= xm.
9.Вывод (Найден корень уравнения – xm точности ε).
10.Конец.






