Advertisement
ilyakanyshev

task2

Jan 23rd, 2020
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. double fun(double x); // Заданная функция
  7. double min(double start, double end, double epsil, double &x, double (*f)(double)); // Функция поиска минимального значения
  8.  
  9. int main()
  10. {
  11.     double start, end, epsil, x, result; // Объявляем нужные переменные
  12.     cout << "Please, enter start, end: ";
  13.     cin >> start >> end; // Просим ввести границы поиска (начало и конец)
  14.     cout << "Please, enter epsil: ";
  15.     cin >> epsil; // Вводим шаг поиска
  16.     result = min(start, end, epsil, x, fun); // Передаем переменные в функцию
  17.     cout << "F min (" << x << ") = " << result << endl; // Выводим в формате F(x) = y
  18.     return 0;
  19. }
  20.  
  21. double fun(double x)
  22. {
  23.     return pow(x-0.217, 2) - 0.719; // Функция из задания
  24. }
  25.  
  26. double min(double start, double end, double epsil, double &x, double (*f)(double))
  27. {
  28.     double m = f(start); // Задаем начальные значения
  29.     x = start;
  30.     for (double tmpx = start; tmpx <= end; tmpx += epsil)
  31.     {
  32.         // Ищем y в данной точке
  33.         double y = f(tmpx);
  34.         if (y<m)
  35.         // сравниваем с минимальным
  36.         {
  37.             m = y; // Меняем значения
  38.             x = tmpx;
  39.         }
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement