Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- { поинтегральная функция }
- function F(x: real): real;
- var
- r: real;
- begin
- F := exp(2 * x) * sin(x);
- end;
- { первообразная }
- function F1(x: real): real;
- begin
- F1 := exp(2 * x) * (2 * sin(x) - cos(x)) / (5);
- end;
- { процедура вычисления интеграла }
- procedure IntegCentr(xn, xk, eps: real; kol: longint; var tk: real);
- var
- S, tn, h: real;
- i: integer;
- begin
- tn := F(xn) - F(xk);
- { tn - предыдущие значения интеграла }
- { tk - последующие значения интеграла }
- while true do
- begin
- h := (xk - xn) / kol;
- S := 0;
- for i := 0 to kol do
- S := S + F(xn + (i + 0.5) * h);
- tk := h * S;
- if abs(tk - tn) < eps then exit;
- kol := kol * 2; { удваиваем количество разбиений }
- tn := tk;
- end;
- end;
- var
- a, b, eps, integrl: real;
- n: integer;
- begin
- write('a, b = ');
- readln(a, b);
- write('eps = ');
- readln(eps);
- n := 6; { начальное значение количества разбиений }
- IntegCentr(a, b, eps, n, integrl);
- writeln('Integral = ', integrl:6:5);
- writeln('Tochnoe Znachenie = ', abs(f1(a) - f1(b)):6:5);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement