Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычисление интеграла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
air
сделал задачу по вычислению интеграла методом трпеций с заданой точностью. честно содрал кусок программы где вычисляется интеграл, но никак не могу понять как он работает. Может быть кто поможет? Заранее спасибо.
Непонятно каким образом влияет точность , у меня все ответы одинаковые получаются, и вообще что это такое и на сколько отрезков делится интеграл.

program fgh;
type T= array[1..5,1..5] of real;
var
j,k:integer;
i,n:integer;
h,s1,s2,e: real;
S:T;

function F (x:real):real;
begin
F:=x/sin(3*x);
end;

function MTrap(a:real; b:real; e:real):real;
begin
n:=1;
h:=b-a;
s2:=h*(F(a)-F(b)/2);
repeat
s1:=s2;
s2:=0;
i:=1;
repeat
s2:=s2+f(a-h/2+h*i);
i:=i+1;
until not(i<=n);
s2:=s1/2+s2*h/2;
n:=2*n;
h:=h/2;
until not(abs(s2-s1)>3*E);
Mtrap:=s2;
end;



procedure matr(var m:T);
var
j,k:integer;
a,b:real;
begin
for j:=1 to 5 do
begin
for k:=1 to 5 do
begin
a:=(j+k)/20;
b:=j/20;
m[j,k]:=Mtrap(a,b,e);
end;
writeln;
end;
end;

begin
writeln('vvedite tochnost'); readln(e);
matr(S);
for j:=1 to 5 do
begin
for k:=1 to 5 do
write(S[j,k]:3,' ');
writeln;
end;
readln;
readln;
end.


Читаем правила, заключаем код в теги и пишем адекватное название темы!
Altair
Алгоритм разжеван здесь!
Общий принцип здесь таков:
увеличить число разбиений в 2 раза (соответственно уменьшив шаг интегрирования) если не выполнена точность.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.