Обсуждение:Метод дихотомии
Последнее сообщение: 13 лет назад от Bosik GN в теме «Промышленные программисты»
- include <iostream>
- include <cmath>
using namespace std; const double epsilon = 1e-10;
double f(double x) {
return exp(x) - (x + 2);
}
int main() {
double a, b, c; a = 0; b = 2; while (b - a > epsilon){ c = (a + b) / 2; if(f(b) * f(c) < 0) a = c; else b = c; } cout << (a + b) / 2 << endl; return 0;
}
Промышленные программисты
правитьОбычно программисты пишут так, что на каждом шаге значение функции на одном из концов отрезка вычисляется повторно
Какие-то неправильные программисты. При нормальной реализации на каждом шаге достаточно посчитать значение функции в середине отрезка. Посколько отрезки каждый раз разные, то в процессе работы ни в какой точке функция не будет вычислена дважды (конечно, если исходный отрезок ненулевой). Bosik GN 13:29, 30 июня 2011 (UTC)