Advertisement
gashink_t

integrir_chis(lab_10, BM)

Apr 7th, 2021
496
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iomanip>
  4. using namespace std;
  5. #define N 1000
  6.  
  7. float f(float x)
  8. {
  9.     return pow(x,2);
  10. }
  11.  
  12. float rectangle_left(float a, float b);
  13. float rectangle_right(float a, float b);
  14. float trapezoid(float a, float b);
  15. float Simpson(float a, float b);
  16. float Runge(float a, float b);
  17.  
  18. int main()
  19. {
  20.     float a, b;
  21.     cout << "Enter a = "; cin >> a; cout << "Enter b = "; cin >> b;
  22.     cout << "Method Rectangle_left\t" << rectangle_left(a, b);
  23.     cout << "\nMethod Rectangle_right\t" << rectangle_right(a, b);
  24.     cout << "\nMethod Trapezoid\t" << trapezoid(a, b);
  25.     cout << "\nMethod Simpson\t\t" << Simpson(a, b);
  26.     cout << "\nMethod Runge\t\t" << Runge(a, b);
  27.  
  28.     return 0;
  29. }
  30.  
  31. float rectangle_left(float a, float b)
  32. {
  33.     float s = 0;
  34.     for (int i = 0; i < N; i++)
  35.     {
  36.         s += ((b - a) * f(a + (i * (b - a)) / N)) / N;
  37.     }
  38.  
  39.     return s;
  40. }
  41.  
  42. float rectangle_right(float a, float b)
  43. {
  44.     float s = 0;
  45.     for (int i = 1; i <= N; i++)
  46.     {
  47.         s += ((b - a) * f(a + (i * (b - a)) / N)) / N;
  48.     }
  49.  
  50.     return s;
  51. }
  52.  
  53. float trapezoid(float a, float b)
  54. {
  55.     float s = f(a) + f(b);
  56.     for (int i = 1; i < N; i++)
  57.     {
  58.         s += 2 * f(a + (i * (b - a)) / N);
  59.     }
  60.     s *= (b - a) /(2 * N);
  61.  
  62.     return s;
  63. }
  64.  
  65. float Simpson(float a, float b)
  66. {
  67.     float s = f(a) + f(b);
  68.     for (int i = 1; i < N; i++)
  69.     {
  70.         s += (2 + 2 * (i % 2)) * f(a + (i * (b - a)) / N);
  71.     }
  72.     s *= (b - a) / (3 * N);
  73.  
  74.     return s;
  75. }
  76.  
  77. float Runge(float a, float b)
  78. {
  79.     float s = 0, h = (b - a)/N, k = a + h / 2;
  80.     while (k <= b)
  81.     {
  82.         s += f(k) * h;
  83.         k += h;
  84.     }
  85.  
  86.     return s;
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement