Guest User

Untitled

a guest
Jan 24th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <iomanip>
  4. using namespace std;
  5. //------------------- lab05 main.cpp -------------------
  6.  
  7. double y(double arg)
  8. {
  9.     return ((pow(2*arg,6)+pow(3*arg,2))*sin(arg))/(pow(arg,2)+2)-1;
  10. }
  11.  
  12. int main()
  13. {
  14.     double xn, xk, dx, x;
  15.     setlocale(0, "rus");
  16.     cout.precision(12);
  17.     cout.left;
  18.     //формула -- ((2x^6+3x²+6)*sin(x))/(x²+2)-1
  19.     //Ъ-диапазон -- [3; 6.5], шаг -- .25
  20.     cout << "Исследование функции 3sin(x) + x^4 * [1 + (x–2/x) / (x+2/x)] * sin (x) - 1\n\n"
  21.             "Введите через пробел начальное значение, конечное значение и шаг: ";
  22.     cin >> xn >> xk >> dx;
  23.     cout << "\nПребразованная функция: ([2x^6 + 3x^2 + 6] sin x)/(x^2+2)-1.\n"
  24.             "Исследуем её в диапазоне [" << xn << "; " << xk << "] с шагом " << dx << "\n" << endl;
  25.     cout << left << setw(10) << "X" << setw(18) << "Y\n------------------------" << endl;
  26.     for(x=xn; x<=xk; x+=dx)
  27.         cout << setw(10) << x << setw(18) << y(x) << endl;
  28.     cout << "\nИщем экстремумы на этом диапазоне...\n";
  29.     x=xn;
  30.     while(dx>0.000001)
  31.     {
  32.         x+=dx;
  33.         if (((y(x-dx) <= y(x)) && (y(x) >= y(x+dx))) || ((y(x-dx) >= y(x)) && (y(x) <= y(x+dx))))
  34.         {
  35.             xk = x + dx;
  36.             xn = x = x - dx;
  37.             dx /= 10;
  38.         }
  39.     }
  40.     cout << "Кажется, это могло бы быть экстремумом: " << x << endl;
  41.     system("pause");
  42.     return 0;
  43. }
Add Comment
Please, Sign In to add comment