Реферат: Вычисление определённых интегралов

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);{выходим из цикла,

если относительная погрешность предыдущего и текущего интегралов меньше заданной точности

или если число итераций превысило допустимое}

К-во Просмотров: 664
Бесплатно скачать Реферат: Вычисление определённых интегралов