Реферат: Вычисление определённых интегралов
end;
{Функция взятия интеграла от функции f, прототип(вид) которой описан в типе func
a,b- пределы интегрирования, cm,dm-параметры c и d функции f, eps -точность вычислений
k-число итераций, за которые удалось найти интеграл }
function Integral(f:func;a,b,cm,dm,eps:real; var k:integer):real;
varS,z,h,c,d,l,x,x1,x2,x3:real;{S-текущее приближенное значение интеграла,
z-предыдуще приближенное значение интеграла,h-шаг интегрирования,
c,d,l,x,x1,x2,x3-вспомогательные переменные см. стр.25 методички}
i,n:integer;{i-счетчик цикла, n-число интервалов интегрирования}
begin
n:=1; S:=0; k:=0;
repeat
k:=k+1;{увеличиваем число итераций}
z:=S; {предыдущее значение интеграла равно текущему}
n:=n*2;{в два раза увеличиваем число интервалов интегрирования}
h:=(b-a)/n; x:=a; S:=0; c:=h/2; l:=c*t;{определение шага интегрирования,
начального значения x, сам интеграл сначала равен 0,
вспомогательные переменные считаем }
fori:=0 ton-1 do{перебираем все интервалы интегрирования}
begin
d:=x+c; x1:=d-l;x2:=d; x3:=d+l;{вычисляем значения абцисс узлов,
выбранных из условия обеспечения минимума погрешности интерполяции}
S:=S+A1*(f(x1,cm,dm)+f(x3,cm,dm))+A2*f(x2,cm,dm);{добавляем к сумме}
x:=x+h;{переходим на новый интервал интегрирования}
end;
S:=S*c;{умножаем полученную сумму на h/2}
until (abs(z-S)<eps*abs(S)) or (k>=14);{выходим из цикла,
если относительная погрешность предыдущего и текущего интегралов меньше заданной точности
или если число итераций превысило допустимое}