Когда я запускаю свой код, земля, похоже, стремится к пределу, а не к орбите вокруг Солнца, мне не хватает уравнений или что-то не так с моим кодом?Как имитировать орбиты
Здесь ошибка я получаю:
Warning (from warnings module):
File "C:\Python32\lib\site-packages\visual\visual_all.py", line 52
return numpy(x)
RuntimeWarning: invalid value encountered in sqrt
Вот код, который я написал:
from visual import *
def SUVAT(A,B):
global EarthFinalV
global Acceleration
EarthFinalV = sqrt((A) + 2*Acceleration*(B))
GravitationalConstant = 1
Sun = sphere(pos=(0,0,0), radius=10, color=color.red,
make_trail=True)
Earth = sphere(pos=(50,0,0), radius=5, color=color.yellow,
make_trail=True)
Sun.mass = 50
Earth.mass = 10
EarthInitialV = vector(0,1000,0)
EarthFinalV = vector(0,0,0)
while True:
rate(1)
Distance = Earth.pos - Sun.pos
GravitationalEquation = (GravitationalConstant*Sun.mass*Earth.mass)/mag(Distance)**2
Acceleration = GravitationalEquation/Earth.mass
SUVAT(EarthInitialV,Distance)
Earth.pos = Earth.pos - EarthFinalV
Это полный след предупреждения? Кроме того, так же, как нит-кик. Вы не должны использовать импорт glob (т. Е. От визуального импорта *), это может время от времени вызывать проблемы. Вы знаете, какая часть кода вызывает проблему? –
Я не знаю, как SUVAT получает 'Acceleration', так как он должен быть недоступен. Можете ли вы опубликовать то, что, по-вашему, ваши уравнения должны быть в менее программном, более математическом смысле? –