program Simpson;
{integriruemaya funkciya}
function F(x:Real):Real;
begin
F:=-21/(sqr(6-7*x));
end;
function F1(x:Real):Real;
begin
F1:=14*(6-7*X)*(6-7*X)*(6-7*X)*(-1);
end;
var a,b,h,x,pogr :real;
n,i :integer;
integ :real;
begin
write('Vvedite nachalo integrirovaniya a='); readln(a);
write('Vvedite konec integrirovaniya b='); readln(b);
write('Vvedite kolichestvo razbieniy intervala (chetnoe chislo) n='); readln(n);
if (n mod 2)>0 then
begin
n:=n+1;
writeln('Chislo n bylo vvedeno nechetnoe ono bylo zameneno na n=',n);
end;
h:=(b-a)/n;
integ:=F(a)+F(b)+4*F(a+h);
for i:=1 to (n div 2)-1 do
begin
x:=a+2*h*i;
integ:=integ+2*F(x)+4*F(x+h/2);
pogr:=abs((((b-a)*exp(ln(h)*4))/180)*F1(a));
end;
integ:=h*integ/3;
writeln('Integral = ',integ:0:15);
writeln('pogreshnost=',pogr:0:15);
end.
Нажмите для просмотра прикрепленного файла
Почему так?
