Найти в Дзене
Властелин машин

Нахождение корня уравнения методом бисекции с Python

Математика говорит нам о том, что для непрерывной функции на отрезке a,b, таком что знаки функции на его концах разные, найдется точка: f(x)=0.
Соответственно, один из подходов нахождения решения заключается в делении отрезка пополам с сохранением условий разных знаков, пока не найдется точка или отрезок не станет, настолько мал, что в качестве решения сойдет любая его граница. Рассмотрим пример: У этом параболы есть два решения. Найдем одно из них задав интервал: Функция в цикле, пока величина интервала не стала меньше некого предела (thres), берет середину отрезка и в зависимости от знака функции в ней и знаков функции на границах (direction) заменяет либо b (знаки совпадают) либо a (знаки разные). Проверим работу метода на примере других функций:

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

У этом параболы есть два решения. Найдем одно из них задав интервал:

-2

Функция в цикле, пока величина интервала не стала меньше некого предела (thres), берет середину отрезка и в зависимости от знака функции в ней и знаков функции на границах (direction) заменяет либо b (знаки совпадают) либо a (знаки разные).

Проверим работу метода на примере других функций:

-3

-4