Advertisement
SomeBody_Aplle

Untitled

Oct 15th, 2021
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.    //a
  6. // I=∫f(x^2)dx
  7.    //b
  8.  
  9. int f(int a)
  10. {
  11.     return a = pow(a, 2);
  12. }
  13.  
  14. int main()
  15. {
  16.     setlocale(LC_ALL, "RUS");
  17.     double a = 2, b = 4, e = 0.001, e1 = 1;; // a - начало отрезка, b - конец, e - необходимая точность
  18.     double n = 4; // кол-во узлов
  19.     double h = (b - a) / n;
  20.     double fa = f(a); // fa = f(a) = подставить "а" в ф-ию
  21.     double fb = f(b); // fb = f(a) = подставить "b" в ф-ию
  22.     double fah = f(a+h); // fah = f(a-h) = подставить в функцию a-h вместо х
  23.     double fbh = f(b-h); // fbh = f(b-h) = подставить в функцию b-h вместо х
  24.     double fa2h = f(a + 2 * h);
  25.     double I4 = h*(fa + 2 * fa2h + 4 * (fah + fbh) + fb) / 3;
  26.     // формула симпсона для 4х узлов
  27.     while (e1 > e)
  28.     {
  29.         double I1 = I4;
  30.         n = 2 * n;
  31.         h = h / 2;
  32.         double I2 = 0, I3 = 0;
  33.         for (int i = 2; i <= n - 2; i++)
  34.         {
  35.             if (i % 2 == 1)
  36.                 continue;
  37.             int x = a + i * h;
  38.             I2 = I2 + f(x);
  39.         }
  40.         for (int i = 1; i <= n - 1; i++)
  41.         {
  42.             if (i % 2 == 0)
  43.                 continue;
  44.             int x = a + i * h;
  45.             I3 = I3 + f(x);
  46.         }
  47.         I4 = h * (fa + 2 * I2 + 4 * I3 + fb) / 3;
  48.         e1 = abs(I1 - I4);
  49.     }
  50.     cout <<"Конечная I4 = "<< I4;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement