問題是必須在重力不穩定的情況下進行拋射運動。所以位置s(t)= -0.5 g t2 + v0 t和g(s)= G∙ME /(RE + s)2。其中G,ME和RE都是常數。因此,新方程是s(t)= -0.5 g(s)t2 + v0 t。拋物線運動 - 重力隨高度變化
我得出一個假設,即每0.005秒的速度是恆定的,所以方程必須每0.005秒更新一次。所以s(t)= s(t-Δt)+ v(t)∙Δt其中v(t)= v(t-Δt)-g(s(t-Δt))∙Δt。
我的代碼現在的問題是
# Assigning Variables
G = 6.6742*10**(-11) # Gravitational Constant
M_e = 5.9736*10**(24) # Mass of Earth
R_e = 6371000 # Radius of Earth
t = float(input('Time (in seconds)')) # Asking user to input total time, t
v_0 = float(input('initial velocity')) # Asking user to input initial velocity
t_0 = .005 # Time before first recalculation
g = 9.81 # initial gravity
# Derivative of s(t) = s't = v(t)
# v(t) = -g(s)*t+v_o
while t != t_0:
s = v_0*t_0
g = (g*M_e)/(R_e+s)**2
v = -g*s*t_0+v_0
t_0=t_0+.005
if int(t_0) == t_0:
print'Gravity is {%f}, position is {%f}, and velocity is {%f} at time {%.0f}' %(g, s, v, t_0)
print'Projectile has reached your time {%f}, with gravity {%f}, position {%f}, and velocity {%f}'%(t,g,s,v)
我真的不知道我應該如何改變它,所以它會奏效。
所以我更新了它作爲我得到的建議。現在,當我運行它時,我的程序要求時間和初始速度和時間(以秒爲單位)。但它甚至不會產生輸出。
時間(單位:秒)5
初始velocity5
這就是結果的樣子時,我對兩個輸入5。
它究竟如何「不起作用」?有錯誤嗎?如果是這樣,請包含*完整追蹤*。 –