0
지구상의 위성처럼 다른 신체 주위에서 궤도 운동을 시뮬레이션하는 아주 간단한 프로그램을 작업 중입니다. 나는 책과 인터넷에서 사용할 수있는 지침과 방정식을 따라 갔지만 그 물체는 전혀 궤도를 그리는 것처럼 보이지 않습니다. 누군가가 할 수 있으면 친절하게 도와주세요. 미리 감사드립니다. 코드는Matlab에서 몸체 주위의 궤도 운동을 시뮬레이트하십시오.
v0=80;
theta=45*pi/180;
vx(1)=v0*cos(theta);
vy(1)=v0*sin(theta);
px(1)=0;
py(1)=0;
mass=100; %kg
cmass=400; % mass of the body at 400,500
ax=0;
%
g=9.8 ;%m/s^2
ay=-g;
p2x=400; % x co-ordinate of the stationary body
p2y=500; % y co-ordinate of the stationary body
G=6.674*10^-11; % the Gravitational Constant
figure(1)
plotsize=800;
i=1;
dt=.1;
t=0;
while(t<20)
%a2x=a2x-0.10;
%a2y=a2y+0.50;
r=sqrt((p2x-px(i))^2+(p2y-py(i))^2); % distance between the two bodies
F=((G*mass*cmass)/r^2); % force by formula f=(G*m1*m2)/r^2
a=-(1/cmass^2)*F; % acceleraion a=1/m1^2*F
vx(i+1)=vx(i)+(ax)*dt;
vy(i+1)=vy(i)+(ay)*dt;
px(i+1)=px(i)+vx(i)*dt;
py(i+1)=py(i)+vy(i)*dt;
hold off
plot(px(i+1),py(i+1),'o','MarkerSize',15)
hold on
plot(px,py,'r')
plot(p2x,p2y);
axis([0 plotsize 0 plotsize])
pause(.1) %pause for graphics
i=i+1;
t=t+dt;
끝
http://stackoverflow.com/questions/26717775/animate-text-in-matlab – Rashid
나는이 해결책을 보았습니다. 가장 큰 문제는 내 질량 1이 현재 질량 2의 중력에 있지 않다는 것입니다. 움직이고 있습니다. 힘이 가깝게되면 당김이 강해지고 질량 2는 질량 1을 끌어 당깁니다. – Hammadzafar
일부 물리학이 혼합되어 있습니다. 두 개의 스크립트를 함께 조작 했습니까? 당신의 무게는 아주 작기 때문에 중력 매력이 약해질 것입니다. 그런 다음, 전체 장면을 지구 - 중력 내부에 배치하고 작은 입자를 "해고"하십시오. 줄거리는 사람의 크기 (100kg)를 지구의 땅에서 공기 중으로 쏘아 약 400kg의 작은 차 (400kg)를 향해 시속 약 180km로 공기 저항을 무시하면 어떤 일이 일어날지를 합리적으로 정확하게 보여줍니다 . 기본적으로 어떤 발사체와도 거의 차이가 없습니다. –