мне нужно построить положение частицы в момент времени Т, учитывая следующие формулы: s(t) = -0.5*g(s)*t^2+v0*t
, где g(s) = G*M/(R+s(t))^2
(G
, M
и R
константы, являющиеся s
значение, а не функцию s(t)
). Частица поднимается вертикально, и я хочу печатать ее текущее положение каждую секунду, пока она не ударит по земле. Но я не могу понять, как определить одну функцию, не используя другую до ее определения. Это мой код до сих пор:Как определить зависимые функции в Python?
G = 6.6742*10^(-11)
M = 5.9736*10^24
R = 6371000
s0 = 0
v0 = 300
t = 0
dt = 0.005
def g(s):
def s(t):
s(t) = -0.5*g(s)*t^2+v0*t
g(s) = G*M/(R+s(t))^2
def v(t):
v(t) = v(t-dt)-g(s(t-dt))*dt
while s(t) >= 0:
s(t) = s(t-dt)+v(t)*dt
t = t+dt
if t == int(t):
print s(t)
Когда я запускаю функцию, он говорит, что он не может назначить вызов функции.
Итак, 'g (s)' является функцией функции? Откуда берется «t»? – martineau
Вы должны прочитать [учебник Python] (http://docs.python.org/tutorial/), чтобы понять основы написания функций в Python. – BrenBarn