Программа


{ Решение дифура 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.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию