Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     double E,x1,x2,t,a,b,F,Ra,Rb,i;
  8.     a = 0;
  9.     b = 2;
  10.     E = 0.01;
  11.     i = 0;
  12.     cout << "Введите начальные точки: " << "\n";
  13.     cin >> x1 >> x2;
  14.     while ((abs(2*(x1-1))>=E) || (abs(40*(x2-1))>=E)) {
  15.         while (((b - a)/2 > E)) {
  16.             Ra = a + 0.618*(b - a);
  17.             Rb = b - 0.618*(b - a);
  18.             if (pow(x1 - Ra * (2*(x1-1)) - 1, 2) + 20 * pow(x2 - Ra * (40*(x2-1)) - 1, 2) + 11 < pow(x1 - Rb * (2*(x1-1)) - 1, 2) + 20 * pow(x2 - Rb * (40*(x2-1)) - 1, 2) + 11) {
  19.                 a = Rb;
  20.                 t = Ra;
  21.             }else {
  22.                 b = Ra;
  23.                 t = Rb;
  24.             }
  25.         }
  26.         a=0;
  27.         b=2;
  28.         x1 = x1 - t * (2*(x1-1));
  29.         x2 = x2 - t * (40*(x2-1));
  30.         i++;
  31.         cout << "Итерация " << i << ": (" << x1 << " ; " << x2 << ")" << "\n";
  32.     }
  33.     F = round(pow(x1 - 1, 2) + 20 * pow(x2 - 1, 2) + 11);
  34.     cout << "Количество итераций: " << i << "\n";
  35.     cout << "Значение функции: " << F << "\n";
  36.     cout << "Точка x1: " << x1 << "\n" << "Точка x2: " << x2;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement