Написать программу для вычисления значения интеграла - Pascal ABC
Формулировка задачи:
Вычислить на ЭВМ значение интеграла методом прямоугольников с автоматическим выбором шага интегрирования на заданном интервале [a;b] с заданной точностью .
функция:
интервал:[1;2]
заданная точность:0,00001
Решение задачи: «Написать программу для вычисления значения интеграла»
textual
Листинг программы
const a = 1; b = 2; e = 1e-5; function f(x: real): real; begin x := ln(x) / x; f := x * x * x; end; function integ(k: longint): real; var h, x, sum: real; i: integer; begin sum := 0; h := (b - a) / k; x := a + h / 2; for i := 1 to k do begin sum := sum + f(x); x := x + h end; integ := sum * h end; var s, s2: real; n: longint; begin n := 1; s := integ(n); repeat s2 := s; n := n * 2; s := integ(n) until abs(s2 - s) < e; writeln('Приближённое значение = ', s:0:abs(trunc(ln(e) / ln(10)))); writeln(' Точность = ', e:0:abs(trunc(ln(e) / ln(10)))); writeln(' Количество разбиений = ', n); writeln(' Точное значение = ', (9 - 4 * sqr(ln(2)) * ln(2) - 6 * sqr(ln(2)) - ln(64)) / 32:0:17) end.
Объяснение кода листинга программы
- Переменная
a
иb
задаются начальными значениями 1 и 2 соответственно. - Функция
f(x: real)
вычисляет значение функцииx^3
в точкеx
. - Функция
integ(k: longint)
вычисляет значение интеграла отa
доb
с помощью метода разбиения на отрезки. - Переменные
h
,x
иsum
инициализируются значениями(b-a)/k
,a+h/2
и0
соответственно. - Цикл
for
выполняетсяk
раз, на каждой итерации увеличивая значениеx
наh/2
. - Внутри цикла функция
f(x)
вызывается для вычисления значения функцииx^3
в текущей точкеx
. - Значение
sum
увеличивается на результат функцииf(x)
. - После завершения цикла значение
sum
возвращается как результат функцииinteg(k)
. - Переменные
s
иs2
инициализируются начальными значениямиinteg(n)
иs2=s
соответственно. - Цикл
repeat
выполняется до тех пор, пока разница междуs2
иs
меньше заданной точностиe
. - Выводится приближенное значение
s
и его точностьe
. - Выводится количество разбиений
n
. - Вычисляется точное значение
s
с использованием формулы(9-4*sqrt(log(2))*sqrt(log(2))-6*sqrt(log(2))-log(64))/32
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д