Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Program simp;



function f(x: real): real;

Begin

f:=1/x

End;

Var

a,b,e: real;

I: integer;

xa,xab,xb,dx,s1,s: real;

N: integer;

Begin

writeln('[a,b],e');

Readln(a,b,e);

{вычисление интеграла с количеством разбиений равным 1, т. е. одной фигурой с основанием равным [a,b]}

n:=1;

dx:=(b-a)/n;

s:=dx*(f(a)+4*f(a+dx/2)+f(b))/6;

Repeat

n:=n*2; {удвоение количества отрезков разбиения}

s1:=s;

s:=0;

{вычисление длины отрезка – основания прямоугольника (дельта) при новом количестве разбиений}

dx:=(b-a)/n;

{суммирование площадей - нахождение интеграла при заданном количестве разбиений}

for i:=0 to n-1 do

Begin

xa:=a+dx*(i);

xb:=xa+dx;

xab:=xa+dx/2;

s:=s+dx*(f(xa)+4*f(xab)+f(xb))/6;

End;

until abs(s-s1)<=abs(e);

writeln('int=',s);

End.

В данной программе используется подпрограмма функция f, которая вычисляет подынтегральную функцию .

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





Дата публикования: 2014-11-26; Прочитано: 193 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...