Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
09.12.2013
Размер:
2.38 Кб
Скачать
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.
Соседние файлы в папке выч методы