Процедура вычисление интеграла методом прямоугольников - Pascal ABC
Формулировка задачи:
решить интеграл с помощью метода прямоугольников. Можно любым методом прямоугольников.Полученное значение сравнить с результатом вычисления интеграла с помощью первообразной.
Решение задачи: «Процедура вычисление интеграла методом прямоугольников»
textual
Листинг программы
const a=2; b=3; function f(x:real):real; begin f:=1/x/ln(x); end; function p(x:real):real; begin p:=ln(ln(x)); end; procedure integral(n:integer;var s:real); var h,x:real; i:integer; begin h:=(b-a)/n; x:=a+h/2; s:=0.0; for i:=1 to n do begin s:=s+f(x); x:=x+h; end; s:=s*h; end; var s:real; n:integer; begin write('Число разбиений n=');{чем больше n, тем выше точнjсть} readln(n); integral(n,s); writeln('Интеграл по методу средних прямоугольников= ',s:0:4); write('Интеграл через первообразную=',p(b)-p(a):0:4) end.
Объяснение кода листинга программы
- Переменная
a
иb
инициализируются значениями 2 и 3 соответственно. - Определяются две функции:
f
иp
. Функцияf
вычисляет значение функции1/x
в точкеx
, а функцияp
вычисляет значение функцииln(x)
в точкеx
. - Определяется процедура
integral
, которая принимает целочисленный параметрn
и переменнуюs
типаreal
. Внутри процедуры инициализируются переменныеh
,x
иi
со значениями(b-a)/n
,a+h/2
и1
соответственно. - Затем происходит цикл
for
, который выполняетсяn
раз. В каждой итерации цикла значение переменнойs
увеличивается на сумму значений функцийf
иp
в точкеx
. Переменнаяx
увеличивается на значениеh
в каждой итерации. - После завершения цикла значение переменной
s
умножается на значениеh
для получения окончательного результата. - Определяется переменная
n
типаinteger
и считывается значение числа разбиенийn
. - Вызывается процедура
integral
с аргументомn
и переменнойs
. - Выводится значение переменной
s
с точностью до 4 знаков после запятой. - Выводится разность между значениями функций
p(b)
иp(a)
.