АЛГОРИТМЫ

Новости

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

Форум

AlgoPascal

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

Статьи

О сайте

Контакты



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

Модифицированные методы Эйлера решения уравнения первого порядка

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

y' = F(x,y)

с начальным условием y(x) = y (задача Коши) сначала выбираем фиксированное приращение аргумента h = (x-x)/n, где x - конечная точка интервала интегрирования, n - число шагов. Затем, применяя процедуру модифицированного метода Эйлера, вычисляем y по рекурентной формуле:

y = yk-1 +h[Fk-1 +F(x, yk-1 +hFk-1 )]/2

где F = F(x, y). Можно воспользоваться другой рекурентной формулой:

y = yk-1 +F(xk-1 +h/2, yk-1 +Fk-1 h/2)

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



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

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

Блоксхемы:

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


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

unit EulerMUnit;

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

interface
    EulerM;
implementation
(*
Модифицированный метод Эйлера решения уравнения первого порядка.

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

integrate differential equation y'=F(x,y) by Eiler's method.
(x,y) - first point, x1 - end point, result - value function y(x) in x1
*)

function EulerM(
            x   :   Real;
    const   x1  :   Real;
            y   :   Real;
    const   n   :   Integer):Real;
var
    i   :   Integer;
    f1  :   Real;
    h   :   Real;
    y1  :   Real;
begin
    h:=(x1-x)/n;
    y1:=y;
    i:=1;
    repeat
        F1:=F(x,y);
        x:=x+h;
        y:=y+F1*h;
        y:=y1+h*(F1+F(x,y))/2;
        y1:=y;
        i:=i+1;
    until not(i<=n);
    Result:=y;
end;

end.

 


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