unit Uprava;

interface
const
q0 = 0.1;
omega_q = 20;
function q(t:Extended) : Extended;
function dq(t:Extended) : Extended;
procedure Rung(m1,m2,c1,c2,k_1,k_2,h,t,u,b,x,dx,y,dy: Extended;
var new_x,new_dx,new_y,new_dy : Extended);
implementation

function q(t:Extended) : Extended;
begin
// q := q0 * sin(omega_q * t);
q:=0;
end;

function Dq(t:Extended) : Extended;
begin
// Dq := q0 * omega_q * cos(omega_q * t);
dq:=0;
end;

procedure Rung;
var
k1, k2, k3, k4 : array [1..4] of Extended;
begin
k1[1]:=h*dx;
k1[2]:=h*(-c1/m1*(x-y)-k_1/m1*(dx-dy)+u*b/m1);
k1[3]:=h*dy;
k1[4]:=h*(1/m2*(c1*(x-y)+k_1*(dx-dy))-c2/m2*(y-q(t))-k_2/m2*(dy-dq(t)));

k2[1]:=h*(dx+0.5*k1[1]);
k2[2]:=h*(-c1/m1*((x+0.5*k1[1])-(y+0.5*k1[3]))-k_1/m1*((dx+0.5*k1[2])-(dy+0.5*k1[4]))+u*b/m1);
k2[3]:=h*(dy+0.5*k1[1]);
k2[4]:=h*(1/m2*(c1*((x+0.5*k1[1])-(y+0.5*k1[3]))+k_1*((dx+0.5*k1[2])-(dy+0.5*k1[4])))-c2/m2*((y+0.5*k1[3])-q(t))-k_2/m2*((dy+0.5*k1[4])-dq(t)));

k3[1]:=h*(dx+0.5*k2[1]);
k3[2]:=h*(-c1/m1*((x+0.5*k2[1])-(y+0.5*k2[3]))-k_1/m1*((dx+0.5*k2[2])-(dy+0.5*k2[4]))+u*b/m1);
k3[3]:=h*(dy+0.5*k2[1]);
k3[4]:=h*(1/m2*(c1*((x+0.5*k2[1])-(y+0.5*k2[3]))+k_1*((dx+0.5*k2[2])-(dy+0.5*k2[4])))-c2/m2*((y+0.5*k2[3])-q(t))-k_2/m2*((dy+0.5*k2[4])-dq(t)));

k4[1]:=h*(dx+k3[1]);
k4[2]:=h*(-c1/m1*((x+k3[1])-(y+k3[3]))-k_1/m1*((dx+k3[2])-(dy+k3[4]))+u*b/m1);
k4[3]:=h*(dy+k3[1]);
k4[4]:=h*(1/m2*(c1*((x+k3[1])-(y+k3[3]))+k_1*((dx+k3[2])-(dy+k3[4])))-c2/m2*((y+k3[3])-q(t))-k_2/m2*((dy+k3[4])-dq(t)));

new_x:=x+(1/6)*(k1[1]+2*k2[1]+2*k3[1]+k4[1]);
new_dx:=dx+(1/6)*(k1[2]+2*k2[2]+2*k3[2]+k4[2]);
new_y:=y+(1/6)*(k1[3]+2*k2[3]+2*k3[3]+k4[3]);
new_dy:=dy+(1/6)*(k3[4]+2*k2[4]+2*k3[4]+k4[4]);

end;

end.

Соседние файлы в папке Конечные_Системы(4,5)