Найти в Дзене
Pascal для "чайников"

Вычисление определенного интеграла методом прямоугольников на Pascal

Самым простым способом интегрирования функции одной переменной является метод прямоугольников. Суть метода состоит в том, что заданный интервал разбивается на большое количество прямоугольников, одна сторона которого является шагом (как правило, равным точности вычисления), вторая сторона - значением функции в точке x. Сумма площадей этих прямоугольников и будет результатом интегрирования заданной функции.

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

Для примера возьмем первый способ - левых треугольников. Для программирования все эти способы отличаются только начальной точкой расчета, остальной алгоритм не отличается.

Составим программу вычисления определенного интеграла функции

-2
-3

Назовем нашу программу integral.

Program integral;

Поскольку функции вычисления тангенса в pascal не существует, мы создадим подпрограмму, которая будет вычислять тангенс.

function Tg(x:real):real; // формула расчета тангенса

begin

Tg:= sin(x)/cos(x);

end;

А также отдельно сделаем подпрограмму для вычисления значения функции в точке x.

function f(x: real): real; // расчет значения функции в точке x

begin

f := (1+tg(x)*tg(x))/(1+tg(x));

end;

Объявляем переменные, необходимые для расчета интеграла. Переменные a и b - границы интервала, dx - шаг интегрирования (ширина прямоугольников), x - значение аргумента по оси абсцисс, y - значение интеграла. Все математические переменные нецелочисленные, поэтому описываем их, как real - вещественные. Количество прямоугольников, на которое будет разбит интервал - целочисленная переменная n.

var a,b,dx,x,y: real;

n: integer;

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

begin

write ('Введите a:'); readln (a);

write ('Введите b:'); readln (b);

write ('Введите n:'); readln (n);

Рассчитываем шаг, с которым будем перемещаться в интервале по оси x

dx := (b-a)/n;

Теперь в цикле рассчитываем значение самого интеграла путем сложения значений функций в каждой точке шага и перемножения результат на ширину прямоугольников - шаг. По сути - сложение площадей прямоугольников.

{По формуле левых прямоугольников}

y := 0;

x := a; //начинаем с начального значения диапазона

while x < b do begin // пока x в пределах диапазона

y := y + f(x); // складываем значение функции в каждой точке шага

x := x + dx; // смещаемся на шаг

end;

y := y * dx; // умножаем результат на шаг

Выводим на экран результат расчета определенного интеграла

writeln ('Значение интеграла, рассчитанное по формуле прямоугольников:', y: 10: 3);

end.

Самый точный расчет считается по методу средних прямоугольников. При использовании этого метода начальной точке вычисления x надо присвоить значение не начала интервала, а a+dx/2, т.е. по сути - это середина прямоугольника.

При расчете методом правых прямоугольников начальная точка расчета будет: x:=a+dx

-4

Наука
7 млн интересуются