Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
09.12.2013
Размер:
36.86 Кб
Скачать

Министерство образования РФ

Пермский Государственный Технический Университет

Кафедра Автоматики и Телемеханики

Лабораторная работа № 2

Создание адаптивного квадратурного алгоритма.

Метод трапеции.

Выполнили:

Студенты гр. АТ-03-1

Якушевич С.

Галимов Р.

Болтаев В.

Проверила:

Данилова С. А.

2005

1. Задание:

Вычислить интеграл методом трапеции (n=1) с погрешностью зад=0,001.

2. Формула трапеции:

3. Погрешность метода:

При банкировании получаем те же числа (поправка не вносит изменения в порядок вычислений), т.к. при уменьшении алгоритма хотя бы на одну итерацию сразу возникает неприемлемая погрешность.

4. Текст программы:

Program IntBank;

Uses CRT;

Const a=0.5;

b=1.5;

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*ln(x)*ln(2-x)

end;

Begin

clrscr;

WriteLn('h(i)':17,'Q(i)':21,'e(i)':17,'R(i)':17);

WriteLn('-----------------------------------------------------------------------------');

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:7:7, ' | ' , e*(x2-x1)/(b-a):5:9,' | ',pogr);

x1:=x2;

x2:=b;

i:=i+1;

end

else x2:=(x2+x1)/2;

until b=x1;

readln;

WriteLn('h(i)':17,'Q(i)':21,'e(i)':17,'R(i)':17);

WriteLn('-----------------------------------------------------------------------------');

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:7:7, ' | ' , e*(x2-x1)/(b-a):5:9,' | ',pogr);

e:=e+e*(x2-x1)/(b-a)-pogr;

x1:=x2;

x2:=b;

i:=i+1;

end

else x2:=(x2+x1)/2;

until b=x1;

readln;

end.

Соседние файлы в папке ЛАБ_№2