Advertisement
Dambosin

dif ur 2

Jun 3rd, 2019
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <math.h>
  4. #include <iomanip>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. double F1(double U1, double U2, double x)
  10. {
  11.  
  12.  
  13.     return (U1 / x - U2 / exp(x) + 1);
  14. }
  15. double F2(double U1, double U2, double x)
  16. {
  17.  
  18.  
  19.     return (U1 / (2 * x) + U2 - 1);
  20. }
  21.  
  22.  
  23.  
  24. int main()
  25. {
  26.     setlocale(LC_ALL, "rus");
  27.     double u1, u2, x, y1[200], y2[200];
  28.     double h = 0.01;
  29.     double eps = 0.01;
  30. /////////////////////////
  31. //все эти значения даны в методе
  32.     double a = 1, b = 2;
  33.     x = 1;
  34.     int k = 1;
  35.     y1[0] = 2;
  36.     y2[0] = exp(1);
  37.     u1 = y1[0];
  38.     u2 = y2[0];
  39. //////////
  40.     k = 1;
  41.     for (x = a + h; x <= b; x += h)//проходим по отрезку
  42.     {
  43.         double temp = y1[k-1];
  44.         do {//итерационный метод
  45.             u1 = temp;
  46.             temp = y1[k - 1] + h * F1(u1, u2, x);
  47.         } while (fabs(temp - u1) > eps);
  48.         y1[k] = y1[k - 1] + h * F1(u1, u2, x);//нахождение y1[k]
  49.  
  50.         u1 = y1[k];
  51.  
  52.         temp = y2[k - 1];
  53.         do {//итерационный метод
  54.             u2 = temp;
  55.             temp = y2[k - 1] + h * F1(u1, u2, x);
  56.         } while (fabs(temp - u2) > eps);
  57.         y2[k] = y2[k - 1] + h * F2(u1, u2, x);//нахождение y2[k]
  58.  
  59.         u2 = y2[k];
  60.  
  61.         k++;
  62.  
  63.     }
  64.  
  65.     k = 1;
  66.  
  67.     cout << setw(4) << "№" << setw(10) << "X" << setw(10) << "U1" << setw(5) << "2 * x" << setw(10)  << "Погрешность" << setw(10) << "U2" << setw(10) << " exp(x)" << setw(15) <<  "Погрешность" ;
  68.     cout << endl << endl;
  69.  
  70.     for (x = a + h; x <= b; x += h)//вывод
  71.     {
  72.         double E1 = fabs(y1[k] - 2 * x);
  73.  
  74.         double E2 = fabs(y2[k] - exp(x));
  75.  
  76.         cout << setw(4) << k  << setw(10) << x << setw(10) << y1[k] << setw(5) << 2 * x << setw(10)  << E1  << setw(10) << y2[k] << setw(10) << exp(x) << setw(15)  << E2  << endl;
  77.         cout << endl;
  78.         k++;
  79.     }
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement