Advertisement
evgenius

Untitled

Oct 26th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. const double EPS = 0.0001; // задаем точность поиска
  7. const double a = -100; // задаем левую границу отрезка поиска
  8. const double b = 100; // задаем правую границу отрезка поиска
  9.  
  10. double function(double x)
  11. {
  12.     return -x * x * x * x / 3.0; // какая-то функция, у нас будет -x ^ 4 / 3;
  13. }
  14.  
  15. double search() // будем искать максимум
  16. {
  17.     double l = a;
  18.     double r = b;
  19.     while (r - l > EPS)
  20.     {
  21.         double m1 = l + (r - l) / 3;
  22.         double m2 = r - (r - l) / 3;
  23.         if (function(m1) < function(m2))
  24.             l = m1;
  25.         else
  26.             r = m2;
  27.     }
  28.     return r;
  29. }
  30.  
  31. int main()
  32. {
  33.     printf("%.6f",search());
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement