АЛГОРИТМЫ

Новости

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

Форум

AlgoPascal

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

Статьи

О сайте

Контакты



Содержание - Численное интегрирование - Метод трапеций

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

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

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

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

R = |S2n -S|/3

Если R > e, то количество точек разбиения удваивается. Для уменьшения времени, затрачиваемого на вычисления в алгоритме при получении S2n  используется формула:

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



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

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

Блоксхемы:

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


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

unit IntegralTrapUnit;

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

interface
    IntegralTrap;
implementation

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

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

function IntegralTrap(a:Real;b:Real;Epsilon:real):real;
*********************************************************)
function IntegralTrap(
    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)+F(b))/2;
    repeat
        s1:=s2;
        s2:=0;
        i:=1;
        repeat
            s2:=s2+F(a-h/2+h*i);
            i:=i+1;
        until not(i<=n);
        s2:=s1/2+s2*h/2;
        n:=2*n;
        h:=h/2;
    until not(AbsReal(s2-s1)>3*Epsilon);
    Result:=s2;
end;

end.

 


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