Программа
{ Решение дифура y'=f(x,y)
при известных начальных условиях
x0, y0=f(x0) методом Рунге-Кутта }
Type Func=function(X:real):real; { Тип функция }
Function Derivative(X:real):real;far; { Производная }
Begin
Derivative:=3*X*X
End;
Function DifRunKut(X,Y:real;F:Func;Break:integer;Xresult:real):real;
{ Вычисление значения исходной функции }
Var Meter:integer; { Счетчик }
Step:real; { Шаг разбиения }
k1,k2,k3,k4:real;
Begin
Step:=(Xresult-X)/Break; { Определение шага разбиения }
for Meter:=0 to Break-1 do
begin { Цикл вычисления первообразной в точке Xresul }
k1:=Step*(F(X+Meter*Step));
k2:=Step*(F(X+Meter*Step+Step/2));
k3:=Step*(F(X+Meter*Step+Step/2));
k4:=Step*(F(X+Meter*Step+Step));
Y:=Y+(k1+2*k2+2*k3+k4)/6
end;
DifRunKut:=Y { Определение значения функции }
End;
BEGIN
WriteLn(DifRunKut(0,0,Derivative,10,10)) { Вычисление первообразной }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию