Вычислить интеграл методом трапеции - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Найти методом трапеций, разбивая отрезок интегрирования на n = 22. Так же найти с заданной точностью (выбрать e=0,001¸0,00001). Есть наброски, но могу кинуть вечером. Должны быть процедурки и менюшка. У меня там не получается, меньше и меньше числа.

Решение задачи: «Вычислить интеграл методом трапеции»

textual
Листинг программы
const a=0;
      b=pi/2;
      n=22;
function f(x:real): real;
begin
f:=sqr(sin(x));
end;
procedure ndd;
var h,x,s,y:real;
    i:integer;
begin
s:=0;
h:=(b-a)/n;
for i:=1 to n-1 do
 begin
  x:=a+i*h;
  s:=s+f(x);
 end;
y:=h*((f(a)+f(b))/2+s);
writeln('При n=',n,' y=',y:0:5);
end;
procedure eoo(e:real);
var m,i:integer;
    x,s,y:real;
begin
m:=round((b-a)/e);
s:=0;
for i:=1 to m-1 do
 begin
  x:=a+i*e;
  s:=s+f(x);
 end;
y:=e*((f(a)+f(b))/2+s);
writeln('При e=',e:0:5,' y=',y:0:5);
end;
 
begin
ndd;
eoo(0.001);
eoo(0.00001);
end.

Объяснение кода листинга программы

  1. const a=0; b=π/2; n=22;
  2. function f(x:real): real;
  3. begin f := sqr(sin(x)); end;
  4. procedure ndd; var h,x,s,y:real; i:integer; begin s := 0; h := (b-a)/n; for i := 1 to n-1 do begin x := a + ih; s := s + f(x); end; y := h ((f(a) + f(b))/2 + s); writeln('При n=',n,' y=',y:0:5); end;
  5. procedure eoo(e:real); var m,i:integer; x,s,y:real; begin m := round((b-a)/e); s := 0; for i := 1 to m-1 do begin x := a + ie; s := s + f(x); end; y := e ((f(a) + f(b))/2 + s); writeln('При e=',e:0:5,' y=',y:0:5); end;
  6. begin ndd; eoo(0.001); eoo(0.00001); end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы