Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.44 KB | None | 0 0
  1.  
  2. uses crt;
  3.  
  4.  
  5. { поинтегральная функция }
  6.  
  7. function F(x: real): real;
  8.  
  9. var
  10.  
  11.   r: real;
  12.  
  13. begin
  14.   F := exp(2 * x) * sin(x);
  15. end;
  16.  
  17. { первообразная }
  18.  
  19. function F1(x: real): real;
  20.  
  21. begin
  22.  
  23.   F1 := exp(2 * x) * (2 * sin(x) - cos(x)) / (5);
  24.  
  25. end;
  26.  
  27. { процедура вычисления интеграла }
  28.  
  29. procedure IntegCentr(xn, xk, eps: real; kol: longint; var tk: real);
  30.  
  31. var
  32.  
  33.   S, tn, h: real;
  34.  
  35.   i: integer;
  36.  
  37. begin
  38.  
  39.   tn := F(xn) - F(xk);
  40.  
  41.   { tn - предыдущие значения интеграла }
  42.  
  43.   { tk - последующие значения интеграла }
  44.  
  45.   while true do
  46.  
  47.   begin
  48.    
  49.     h := (xk - xn) / kol;
  50.    
  51.     S := 0;
  52.    
  53.     for i := 0 to kol do
  54.      
  55.       S := S + F(xn + (i + 0.5) * h);
  56.    
  57.     tk := h * S;
  58.    
  59.     if abs(tk - tn) < eps then exit;
  60.    
  61.     kol := kol * 2; { удваиваем количество разбиений }
  62.    
  63.     tn := tk;
  64.    
  65.   end;
  66.  
  67. end;
  68.  
  69. var
  70.  
  71.   a, b, eps, integrl: real;
  72.  
  73.   n: integer;
  74.  
  75. begin
  76.  
  77.   write('a, b = ');
  78.  
  79.   readln(a, b);
  80.  
  81.   write('eps = ');
  82.  
  83.   readln(eps);
  84.  
  85.   n := 6; { начальное значение количества разбиений }
  86.  
  87.   IntegCentr(a, b, eps, n, integrl);
  88.  
  89.   writeln('Integral = ', integrl:6:5);
  90.  
  91.   writeln('Tochnoe Znachenie = ', abs(f1(a) - f1(b)):6:5);
  92.  
  93.   readln;
  94.  
  95. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement