#include #include #include #define EPS 0.001 double f(double x) { return sin(x) + cos(sqrt(3)*x); } int main() { /* Za interval [3, 5] leva granica je 3, a desna 5 */ double l = 3, d = 5, s; /* Sve dok se ne pronadje trazena vrednost argumenta */ while (1) { /* Polovi se interval */ s = (l + d) / 2; /* Ako je vrednost funkcije u ovoj tacki jednaka 0 ili razlika d-l manja od zadate tacnosti, prekida se pretraga */ if(f(s) == 0 || d - l < EPS) break; /* Ako je nula u levom delu intervala, nastavlja se pretraga na [l, s] */ if ( (f(l)*f(s)) < 0) d = s; else /* Inace, na intervalu [s, d] */ l = s; } /* Stampa se vrednost trazene tacke */ printf("%.3lf\n", s); return 0; }