Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычислить определенный интеграл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Goprofast
Вычислить определенный интеграл

Нажмите для просмотра прикрепленного файла
Федосеев Павел
program test;

function F(x: real): real;
begin
F := exp(x);
end;

function Sympson(a, b: real; n: integer): real;
var
Res: real;
h: real; {величина шага}
x: real;
i: integer;
begin
h := (b - a) / n;
Res := F(a) + F(b);
i := 1;
while i < n do
begin
x := a + i * h;
Res := Res + 4 * F(x);
Inc(i);
x := a + i * h;
Res := Res + 2 * F(x);
Inc(i);
end;
Res := Res * h / 3;
Sympson := Res;
end;

function Trapec(a, b: real; n: integer): real;
var
Res: real;
h: real; {величина шага}
x: real;
i: integer;
begin
h := (b - a) / n;
Res := F(a) + F(b);
i := 1;
while i < n do
begin
x := a + i * h;
Res := Res + 2 * F(x);
Inc(i);
end;
Res := Res * h / 2;
Trapec := Res;
end;

var
a, b, {границы интегрирования}
n: integer; {количество подинтервалов интегрирования}
Isym, {значение интеграла, вычисленное методом Симпсона}
Itrp: real; {значение интеграла, вычисленное методом трапеций}
I: real;

begin
a := 0;
b := 1;
I := exp(1) - 1;

n := 100;
Isym := Sympson(a, b, n);
Itrp := Trapec(a, b, n);
WriteLn('Isym=', Isym: 10: 8, ' при n=', n, ', I=', I: 10: 8);
WriteLn('Itrp=', Itrp: 10: 8, ' при n=', n, ', I=', I: 10: 8);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.