Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
09.12.2013
Размер:
2 Кб
Скачать
Uses
    Crt;
{Type Real = Extended;}
Const
     A  = 1;

     a0 = 1;
     a1 = 6;
     a2 = 2;
     a3 = 5;

     time  = 100;
     N  = 200;
     h = Time / N ;

     omegaN  =  2;
     Nomega =  200;
     homega = omegaN / Nomega;
Var
   Fomega,
   Ftime,
   Ffunc        : Text;

   i, k         : Longint;

   omega,
   k1,
   k2,
   k3,
   k4,
   tm,
   zm, zm1,
   ym, ym1,
   xm, xm1      : Real;

Function f1(A,w,t,z,y,x : Real) : Real;
         Begin
          f1 := (A*sin(w*t) - a2 * z - a1 * y - a0 * x)/a3 ;
         end;

Function f2(t,z : Real) : Real;
         Begin
          f2 := z;
         end;

Function f3(t,y : Real) : Real;
         Begin
          f3 := y;
         end;


Begin
clrscr;
Assign( Fomega, 'Omega.txt' );
Assign( Ftime, 'Time.txt' );
Assign( Ffunc, 'Function.txt ');

 Rewrite( Fomega );
 Rewrite( Ftime );
 Rewrite( Ffunc );

  Append( Fomega );
  Append( Ftime );
  Append( Ffunc );


For k := 0 to Nomega-1 Do
Begin

    zm := 0;
    ym := 0;
    xm := 0;

omega := k*homega;

if k = 0 Then Write( Ffunc, xm : 7 :7, ' ' );

WriteLn( Fomega, omega : 7 :7, ' ' );

    For i := 0 to N-1 do
    Begin

     tm := i * h;
               if k = 0 then WriteLn( Ftime, tm : 7 : 7, ' ' );
              k1 := f1( A, omega, tm, zm, ym, xm ) ;
              k2 := f1( A, omega, tm + h/2 , zm + h*k1/2  , ym, xm ) ;
              k3 := f1( A, omega, tm + h/2 , zm + h*k2/2  , ym, xm ) ;
              k4 := f1( A, omega, tm + h , zm + h*k3  , ym, xm ) ;
     zm1 := zm + h * (k1 + 2*k2 + 2*k3 + k4) / 6 ;
        zm:=zm1;

              k1 := f2( tm, zm ) ;
              k2 := f2( tm + h/2 , zm + h*k1/2 ) ;
              k3 := f2( tm + h/2 , zm + h*k2/2 ) ;
              k4 := f2( tm + h , zm + h*k3 ) ;
     ym1 := ym + h * (k1 + 2*k2 + 2*k3 + k4) / 6 ;
       ym:=ym1;

              k1 := f3( tm, ym ) ;
              k2 := f3( tm + h/2 , ym + h*k1/2 ) ;
              k3 := f3( tm + h/2 , ym + h*k2/2 ) ;
              k4 := f3( tm + h , ym + h*k3 ) ;
     xm1 := xm + h * (k1 + 2*k2 + 2*k3 + k4) / 6 ;
     xm:=xm1;



     {output xm1}
     Write( Ffunc, xm1 : 7 : 7, ' ' );


{       xm := xm1;
       ym := ym1;
       zm := zm1;}
    end;
Writeln( Ffunc );
end;

Close( Ffunc );
Close( Ftime );
Close( Fomega );

end.
Соседние файлы в папке выч методы