АЛГОРИТМЫ

Новости

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

Форум

AlgoPascal

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

Статьи

О сайте

Контакты



Содержание - Численное интегрирование - Метод Ромберга

Вычисление интеграла методом Ромберга

Задается значение n (на первом шаге n = 2) и вычисляется приближенное значение интеграла по формуле трапеций (деленное на (b-a)):

Затем число n удваивается (k раз). Каждый раз значение S (1) запоминается в массиве T[i]. Погрешность метода имеет порядок 2n+1 (e = 1E-(2n+1))

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



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

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

Блоксхемы:

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


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

unit RombergIntegrationUnit;

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

interface IntegralRomberg;

implementation

function IntegralRomberg(
    const   A   :   Real;
    const   B   :   Real;
    const   K   :   Integer):Real;
var
    T   :   array of Real;
    D   :   Real;
    S   :   Real;
    H   :   Real;
    X   :   Real;
    M   :   Real;
    N   :   Integer;
    I   :   Integer;
    J   :   Integer;
begin
    SetBounds(T, [1, K]);
    
    d:=b-a;
    t[1]:=F(a)+F(b)/2;
    n:=1;
    i:=1;
    repeat
        s:=0;
        n:=2*n;
        h:=d/n;
        j:=1;
        repeat
            x:=a+j*h;
            s:=s+F(x);
            j:=j+2;
        until not(j<=n);
        t[i+1]:=(2*s/n+t[i])/2;
        m:=1;
        j:=i;
        repeat
            m:=4*m;
            t[j]:=t[j+1]+(t[j+1]-t[j])/(m-1);
            j:=j-1;
        until not(j>=1);
        I:=i+1;
    until not(i<=k);
    Result:=t[1]*d;
end;

end.

 


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