【发布时间】:2016-05-20 02:06:28
【问题描述】:
我将绘制围绕太阳的地球。因此,该任务分为 2 个子任务。 在第一个任务中,我将近似认为运动是一个圆圈。
我使用以下代码来获得解决方案,但不知何故程序会编辑一个点而不是几个点。你能帮我解决我的算法吗?
所以我的代码:
npoints = 360
x= np.zeros((npoints,1))
y= np.zeros((npoints,1))
v_x=np.zeros((npoints,1))
v_y=np.zeros((npoints,1))
r=1
dt=1
x[0]=1.
y[0]=0.
v_x[0]=-1.
v_y[90]=-1.
v_x[180]=1.
v_y[270]=1.
for step in range(0,npoints-1):
v_x[step+1]=v_x[step]-4*pi**2*x[step]/(r**3)*dt
x[step+1]=x[step]+v_x[step+1]*dt
v_y[step+1]=v_y[step]-4*pi**2*y[step]/(r**3)*dt
y[step+1]=y[step]+v_y[step+1]*dt
plt.plot(x, y)
plt.axis([-100, 100, -100, 100])
plt.ylabel('y-axis')
plt.xlabel('x-axis')
plt.show()
感谢您的帮助:)
【问题讨论】:
-
可能有人认为最初的要求有问题?
-
x、y、v_x和v_y应该是什么?它们是轨道上各点的坐标和地球速度的组成部分吗? -
基本上x和y是地球可能位置的坐标。太阳的位置为零/零。 v_x 和 v_y 表示位置在 x 和 y 方向的线性变化。