Метод бисекции
Материал из Википедии — свободной энциклопедии
Метод бисекции или метод деления отрезка пополам — простейший численный метод для решения нелинейных уравнений вида f(x)=0. Преполагается только непрерывность функции f(x).
[править] Описание алгоритма
Задача заключается в нахождении корней нелинейного уравнения
Для начала итераций необходимо знать интервал [xL,xR] значений x, где находится единственный корень. Произведение значений функции на краях этого интервала получится меньше нуля:
То есть функция меняет знак на данном интервале. Выберем точку внутри интервала
Разобьём этот интервал на два [xL,xM] и [xM,xR]. Теперь найдём новый интервал, в котором функция меняет знак. Пусть и соответственно корень находится внутри интервала [xL,xM]. Тогда обозначим xR=xM и повторим описанную процедуру до достижения требуемой точности. За количество итераций N первоначальный отрезок делится в 2N раз.
[править] Программный код
Пример реализации алгоритма на языке Matlab
clear; %Интервал x_L=1; x_R=2; length=x_R-x_L; %Начальная ошибка err=length; %Итерационный цикл while err>1e-3 %Деление отрезка пополам x_M=(x_L+x_R)/2; %Нахождение нового интервала if tan(x_L)*tan(x_M)<0 x_R=x_M; else if tan(x_M)*tan(x_R)<0 x_L=x_M; else x_M break; end end %Пересчёт ошибки err=(x_R-x_L)/length; end %Вывод результата x_M err
Результат выполнения вполне ожидаемый
x_M = 1.5713 err = 9.7656e-004
[править] Внешние ссылки
- Метод бисекции на сервере применения Mathcad.
- Метод бисекции Mathcad, Maple, Matlab, Mathematica
- Использование метода бисекции в программировании свободно распространяемая программа для вычисления изоэлектрической точки.