АЛГОРИТМЫ

Новости

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

Форум

AlgoPascal

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

Статьи

О сайте

Контакты



Содержание - Дифференциальные уравнения - Метод Рунге-Кутта

Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка

Наиболее употребительным методом Рунге-Кутта решения уравнения первого порядка y' = F(x,y) является метод четвертого порядка, в котором вычисления производятся по формуле:

yk+1  = y+(k+2k+2k+k)/6,

где

k = Fh = F(x, y)h
k = F(x+h/2, y+k/2)h
k = F(x+h/2, y+k/2)h
k = F(x+h, y+k)h,
k = 0, ..., n-1
h = (x-x)/n

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



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

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

Блоксхемы:

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


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

unit ODERungeKuttaUnit;

declaration
    function F(X:Real; Y:Real):Real;

interface
    RungeKutt;
implementation
(*
Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка.

function RungeKutt(x,x1,y:real;n:integer):real;

integrate differential equation y'=F(x,y) by method Runge-Kutt
(x,y) - first point, x1 - end point, result - value function y(x) in x1

n - число шагов.
*)

function RungeKutt(
            x   :   Real;
            x1  :   Real;
            y   :   Real;
            n   :   Integer):Real;
var
    i   :   Integer;
    h   :   Real;
    y1  :   Real;
    k1  :   Real;
    k2  :   Real;
    k3  :   Real;
begin
    h:=(x1-x)/n;
    y1:=y;
    i:=1;
    repeat
        k1 :=h*F(x,y);
        x  :=x+h/2;
        y  :=y1+k1/2;
        k2 :=F(x,y)*h;
        y  :=y1+k2/2;
        k3 :=F(x,y)*h;
        x  :=x+h/2;
        y  :=y1+k3;
        y  :=y1+(k1+2*k2+2*k3+F(x,y)*h)/6;
        y1 :=y;
        i  :=i+1;
    until not(i<=n);
    Result:=y;
end;

end.

 


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