f1(x)=x*exp(1/3*ln(1+x))
fi=exp(-x);
ksi=sqrt(x*x+1)/(x*x+3)
a1=9; b1=9
С использованием ЭВМ получить таблицу значений функции,вычисленных с точностью Е в точках t(i)=c+ih, где I=0..m, h=(d-c)/m, f2(t,x)= (t/1+x)+sx) (x).
В качестве результата на печать необходимо вывести значение I, число шагов N квадратурной формулы, последовательность значений t(i) и F(t(i)).
Формула трапеций
Цитата
program pr6;
uses crt;
{$f+}
const
a1=1; b1=9; e=0.00001;
s=0.01; a2=0.5; b2=1.5; c=2; d=3; m=10; e1=0.0001;
type func=function (t,x:real):real;
var
n,j,k,i:integer;
x1,x2,t,r:real;
function f1(t,x:real):real;
begin
f1:=x*exp(1/3*ln(1+x));
end;
function fi(x:real):real;
begin
fi:=exp(-x);
end;
function ksi (x:real):real;
begin
ksi:=sqrt(x*x+1)/(x*x+3);
end;
function f2 (t,x:real):real;
begin
f2:=fi(t/(1+x)+s*x)*ksi(x);
end;
procedure int (a,b,e:real; f:func; t:real;var sum:real; var sum1:real);
begin
repeat
k:=k+1;
n:=n*2;
sum1:=sum;
sum:=0;
for j:=1 to n do
begin
x1:=a+((b-a)/n)*(j-1);
x2:=a+((b-a)/n)*j;
sum:=sum+((f(t,x1)+f(t,x2))/2)*(b-a)/n; end;
until abs(sum-sum1)<e;
end;
var s1,s2:real;
begin
clrscr;
n:=1;
k:=0;
s1:=((f1(t,b1)+f1(t,a1))/2)*(b1-a1);
int (a1,b1,e,f1,1,s1,s2);
writeln('I=',s2:2:6,' chislo shagov-',k,' proverka ',s2-s1:1:6);
writeln;
for i:=0 to m do
begin
t:=c+i*((d-c)/m);
s1:=((f2(t,b2)+f2(t,a2))/2)*(b2-a2);
n:=1;
k:=0;
int (a2,b2,e1, f2, t,s1,s2);
writeln('i=',i,' t(i)=',t:2:6,' F(t(i))=',s1:2:6,' chislo shagov-',k);
end;
readkey;
end.
uses crt;
{$f+}
const
a1=1; b1=9; e=0.00001;
s=0.01; a2=0.5; b2=1.5; c=2; d=3; m=10; e1=0.0001;
type func=function (t,x:real):real;
var
n,j,k,i:integer;
x1,x2,t,r:real;
function f1(t,x:real):real;
begin
f1:=x*exp(1/3*ln(1+x));
end;
function fi(x:real):real;
begin
fi:=exp(-x);
end;
function ksi (x:real):real;
begin
ksi:=sqrt(x*x+1)/(x*x+3);
end;
function f2 (t,x:real):real;
begin
f2:=fi(t/(1+x)+s*x)*ksi(x);
end;
procedure int (a,b,e:real; f:func; t:real;var sum:real; var sum1:real);
begin
repeat
k:=k+1;
n:=n*2;
sum1:=sum;
sum:=0;
for j:=1 to n do
begin
x1:=a+((b-a)/n)*(j-1);
x2:=a+((b-a)/n)*j;
sum:=sum+((f(t,x1)+f(t,x2))/2)*(b-a)/n; end;
until abs(sum-sum1)<e;
end;
var s1,s2:real;
begin
clrscr;
n:=1;
k:=0;
s1:=((f1(t,b1)+f1(t,a1))/2)*(b1-a1);
int (a1,b1,e,f1,1,s1,s2);
writeln('I=',s2:2:6,' chislo shagov-',k,' proverka ',s2-s1:1:6);
writeln;
for i:=0 to m do
begin
t:=c+i*((d-c)/m);
s1:=((f2(t,b2)+f2(t,a2))/2)*(b2-a2);
n:=1;
k:=0;
int (a2,b2,e1, f2, t,s1,s2);
writeln('i=',i,' t(i)=',t:2:6,' F(t(i))=',s1:2:6,' chislo shagov-',k);
end;
readkey;
end.
Почему выделенная часть нерациональна????