Ниже приведена реализация алгоритма метода дихотомии (метод половинного деления).
CODE
Код:public static void metod_dihotomii(double a,double b,double d,double fa,int k) { double c; while (true) { k++; c = 0.5 * (a + b); if ((b - a) < 2 * d) { Console.WriteLine("Выход по длине отрезка:"); break; } double fc = f(c); if (Math.Abs(fc) < d) { Console.WriteLine("Выход по значению функции:"); break; } if (fa * fc < 0) { b = c; } else { a = c; } } Console.WriteLine("Решение методом половинного деления: корень:{0}", c); Console.WriteLine("Значение функции: f(x)= {0}", f(c)); Console.WriteLine("Количество вычислений функции: {0}", k + 1); Console.WriteLine("Количество итераций: {0}", k); }
где a - левая граница промежутка локализации корней
b - правая граница соответственно
d - задаваемая погрешность решаемой задачи (epsilon) в нашем случае она равна 0.01
fa - значение функции в т. а
k - счётчик подсчёта количества вычислений функции и подсчёт количества итерации