Мне нужно вычислить интеграл метод (правых,левых и средних прямоугольников).
Вот исходник.
1) Программа вычисления по методу левых прямоугольников.
Код: Выделить всё
Program levii;{Метод левых прямоугольников}
uses crt;
var i,n:integer; a,b,h,x,xb,s:real;
function f(x:real):real;
begin f:=(1/x)*sin(3.14*x/2); end;
begin
clrscr;
write('Введите нижний предел интегрирования '); readln(a);
write('Введите верхний предел интегрирования '); readln(b);
write('Введите количество отрезков '); readln(n);
h:=(b-a)/n; s:=0; xb:=a;
for i:=0 to n-1 do
begin x:=xb+i*h; s:=s+f(x)*h; end;
writeln('Интеграл равен ',s:12:10); readln;
end.
a=1 b=2 n=10 S= 18,077
a=1 b=2 n=20 S= 18, 208
a=1 b=2 n=100 S= 18, 270
Код: Выделить всё
Program pravii; {Метод правых прямоугольников}
uses crt;
var i,n:integer; a,b,h,x,xb,s:real;
function f(x:real):real;
begin f:=(1/x)*sin(3.14*x/2); end;
begin
clrscr;
write('Введите нижний предел интегрирования '); readln(a);
write('Введите верхний предел интегрирования '); readln(b);
write('Введите количество отрезков '); readln(n);
h:=(b-a)/n; s:=0; xb:=a;
for i:=1 to n do
begin x:=xb+i*h; s:=s+f(x)*h; end;
writeln('Интеграл равен ',s:12:10); readln;
end.
a=1 b=2 n=10 S=18,05455
a=1 b=2 n=20 S=18,55555
a=1 b=2 n=100 S= 18,2734
Код: Выделить всё
Program srednii; {Метод средних прямоугольников}
uses crt;
var i, n: integer; a, b, dx, x, s, xb : real;
function f(x : real):real;
begin f:=(1/x)*sin(3.14*x/2); end;
begin
clrscr;
write('Введите нижний предел интегрирования '); readln(a);
write('Введите верхний предел интегрирования '); readln(b);
write('Введите количество отрезков '); readln(n);
dx:=(b-a)/n; xb:=a+dx/2;
for i:=0 to n-1 do
begin x:=xb+i*dx; s:=s+f(x)*dx; end;
write('Интеграл равен ',s:15:10); readln;
end.
a=1 b=2 n=10 S=18,07667
a=1 b=2 n=20 S=18,368
a=1 b=2 n=100 S= 18,156