Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_к_ВП-1.doc
Скачиваний:
4
Добавлен:
27.09.2019
Размер:
840.7 Кб
Скачать

X : RealType;

Y1, Y : Vec;

Koef : TypeKoeff;

Out : Text;

Function F(i:IntType; x:RealType ; Y:Vec):RealType ;

{Подпрограмма вычисления производных}

Begin

Case i of

1 : F:= Y[2];

2 : F:= - A*Exp(-A*x)

end;

End ;

Procedure RungeKoot(M, N:IntType; x,h:RealType ; Var Y:Vec);

{Реализация метода Рунге-Кутта 4-го порядка}

{N - порядок системы уравнений}

Var

I, j, k : IntType;

Begin

For i:= 1 to M do

begin

For j:= 1 to 4 do

begin

For k:= 1 to N do

Y[k]:= Y1[k]+Constant[j]*Koef[j-1,k];

For k:= 1 to N do

Koef[j,k]:=h*F(k,x+Constant[j]*h,Y);

end;

For k:= 1 to N do

Y1[k]:=Y1[k] + (Koef[1,k] + 2*Koef[2,k] + 2*Koef[3,k] + Koef[4,k])/6.0;

x:= x+h;

WriteLn(Out,'│ ',x:8:5,' │ ',Y[1]:8:5,' │ ',Y[2]:8:5,' │');

end;

WriteLn(Out,'└────────────┴────────────┴────────────┘');

Close(Out);

End ;

Begin

Assign(Out, NameOut);

Rewrite(Out);

WriteLn(Out,'┌────────────┬────────────┬────────────┐');

WriteLn(Out,'│ Agument │ Function │ Derivative │');

WriteLn(Out,'├────────────┼────────────┼────────────┤');

Y1[1]:= Y10;

Y1[2]:= Y20;

M:=Round((Xend - Xbgn)/h);

x:= Xbgn;

RungeKoot (M, N, x, h, Y) ;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]