033 Matlab 포물선운동 (중력 가속도 포함)
포물선운동 (중력 가속도 포함)
hold off;
g=9.81;
v=input('초기 속도를 입력하시오.');
theta=input('초기 각도를 입력하시오.');
v=input('초기 속도를 입력하시오.');
theta=input('초기 각도를 입력하시오.');
dt=input('시간 간격을 입력하시오');
x=0;
y=0;
X(1)=0;
Y(1)=0;
dxdt=v*cos(theta*(pi/180));
dydt=v*sin(theta*(pi/180));
k=0;
t1=(2*v*sin(theta*(pi/180)))/(g+0.1*v);
t2=(v*sin(theta*(pi/180)))/(g+0.1*v);
while y>=0
k=k+1;
time= dt*k;
dxdtdt=-0.1*dxdt;
dydtdt=-0.1*dydt;
dxdt=dxdt+dxdtdt*dt;
dydt=dydt+-g*dt+dydtdt*dt;
x=x+(dxdt*dt);
y=y+(dydt*dt);
X(k+1)=x;
Y(k+1)=y;
end;
z=k+1;
q=t2/dt
x=0;
y=0;
X(1)=0;
Y(1)=0;
dxdt=v*cos(theta*(pi/180));
dydt=v*sin(theta*(pi/180));
k=0;
t1=(2*v*sin(theta*(pi/180)))/(g+0.1*v);
t2=(v*sin(theta*(pi/180)))/(g+0.1*v);
while y>=0
k=k+1;
time= dt*k;
dxdtdt=-0.1*dxdt;
dydtdt=-0.1*dydt;
dxdt=dxdt+dxdtdt*dt;
dydt=dydt+-g*dt+dydtdt*dt;
x=x+(dxdt*dt);
y=y+(dydt*dt);
X(k+1)=x;
Y(k+1)=y;
end;
z=k+1;
q=t2/dt
for p=1:1:z;
x1=X(p);
y1=Y(p);
plot(0.0)
hold on
axis([0,X(k+1),0,Y(round(q+10))]);
plot(x1,y1,'-ro');
hold off
pause(0.1)
end;
x1=X(p);
y1=Y(p);
plot(0.0)
hold on
axis([0,X(k+1),0,Y(round(q+10))]);
plot(x1,y1,'-ro');
hold off
pause(0.1)
end;
댓글
댓글 쓰기