метод симпсона (=0,001)
.docАгентство по образованию РФ
Пермский Государственный Технический Университет
Кафедра АТ
Лабораторная работа №2
Адаптивный квадратурный алгоритм
Выполнил студент гр.КРЭС-05
Киляков И.Н.
Проверила преподаватель
Леготкина Т.С.
Пермь 2007
Цель работы: исследование адаптивных алгоритмов численного интегрирования.
Задание:
1.Составьте алгоритм и программу решения задачи адаптивного интегрирования методом Симпсона (n=2) при заданной погрешности (ε=0,001) методом двойного пересчета с банкированием и без него интеграл х*х*х*cos(3*ln x)dx в промежутке от 0,5 до 2.
Текст программы:
Program laba2;
Uses CRT;
Const a=0.5; b=2; eps=0.001;
Var x1,x2,pogr,pogrS,e, int1,int2,int3,int,eps1:real; i:integer;
function f(x:real):real;
begin
f:=x*x*x*(cos(3*ln(x)));
end;
Begin clrscr;
Writeln('Вычисление интеграла без банкирования');
WriteLn('h(i)':17,'Q(i)':21,'e(i)':17,'R(i)':17);
x1:=a;x2:=b;e:=eps;
int:=0;pogrS:=0;i:=1;
repeat
int1:=(x2-x1)/2*(f(x1)+f(x2));
int2:=(x2-x1)/4*(f(x1)+f(x2)+2*f((x1+x2)/2));
pogr:=abs(int2-int1)/3;
eps1:=e*(x2-x1)/(b-a);
if pogr<=eps1 then
begin
int:=int+int2;
pogrS:=pogrS+pogr;
WriteLn(' ', (x2-x1):5:5, '| ' ,int:5:5, '| ',e*(x2-x1)/(b-a):5:5,' | ',pogr);
WriteLn; x1:=x2; x2:=b; i:=i+1;
end
else x2:=(x2+x1)/2; until b=x1;
writeln('Количество шагов=',i-1); writeln('Сумма интеграла= ',int:5:2); writeln('Сумма погрешностей= ',pogrS:5:2,' < 0.001'); readln;
Writeln('Вычисление интеграла cбанкированием');
WriteLn('h(i)':6,'Q(i)':6,'e(i)':6,'R(i)':6);
x1:=a;x2:=b;e:=eps;
int:=0;pogrS:=0;i:=1;
repeat
int1:=(x2-x1)/2*(f(x1)+f(x2));
int2:=(x2-x1)/4*(f(x1)+f(x2)+2*f((x1+x2)/2));
pogr:=abs(int1-int2)/3;
eps1:=e*(x2-x1)/(b-a);
if pogr<=eps1 then
begin
int:=int+int2;
pogrS:=pogrS+pogr;
WriteLn(' ', (x2-x1):5:5, '| ' ,int:5:5, ': ' , e*(x2-x1)/(b-a):5:5,' | ',pogr);
WriteLn; e:=e+e*(x2-x1)/(b-a)-pogr; x1:=x2;
x2:=b;
i:=i+1;
end
else x2:=(x2+x1)/2;
until b=x1;
writeln('Количество шагов=',i-1);
writeln('Сумма интеграла= ',int:5:2);
writeln('Сумма погрешностей= ',pogrS:5:6,' < 0.001');
readln;
end.
Результат вычислений при ε=0,001
Без банкирования
С банкированием