АЛГОРИТМЫ

Новости

Рассылка новостей

Форум

AlgoPascal

Редактор блок-схем

Статьи

О сайте

Контакты



Содержание - Численное интегрирование - Метод прямоугольников

Интегрирование методом прямоугольников с оценкой точности

Собственное значение определенного интеграла

находится методом прямоугольников. Отрезок [a, b] разбивается на n частей x=a, x=a+h, ..., x=b с шагом h=(b-a)/n. На каждом отрезке [x, xi+1 ] вычисляется значения интеграла по формуле прямоугольников, таким образом:

Затем количество точек разбиения удваивается и производится оценка точности вычислений:

R = |S2n -S|

Если R > 3*e, то количество точек разбиения удваивается.

Если нашли ошибку в алгоритме - сообщите!



Реализации алгоритма на различных языках:

Реализация алгоритма на C++
Реализация алгоритма на Delphi
Реализация алгоритма на Visual Basic 6

Блоксхемы:

Посмотреть блок-схему алгоритма
Скачать блок-схему алгоритма


Реализация алгоритма на AlgoPascal:

unit IntegralRectUnit;

declaration
(*
интегрируемая функция
*)
function F(X:Real):Real;

interface
    IntegralRect;
implementation

(*********************************************************
Интегрирование методом прямоугольников с оценкой точности.

Считается интеграл функции F на отрезке [a,b] с погрешностью
порядка Epsilon.

function IntegralRect(a:Real;b:Real;Epsilon:real):real;
*********************************************************)
function IntegralRect(
    const   a   :   Real;
    const   b   :   Real;
    const   Epsilon:Real):Real;
var
    i   :   Integer;
    n   :   Integer;
    h   :   Real;
    s1  :   Real;
    s2  :   Real;
begin
    n:=1;
    h:=b-a;
    s2:=h*F((a+b)/2);
    repeat
        n:=2*n;
        s1:=s2;
        h:=h/2;
        s2:=0;
        i:=1;
        repeat
            s2:=s2+F(a+h/2+h*(i-1));
            i:=i+1;
        until not(i<=n);
        s2:=s2*h;
    until not(AbsReal(s2-s1)>3*Epsilon);
    Result:=s2;
end;

end.

 


Бочканов Сергей, Быстрицкий Владимир
Copyright © 1999-2004
При поддержке проекта MANUAL.RU