Написать программу для вычисления значения интеграла - 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
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д