精确的Python 2.7计算,包括Pi

精确的Python 2.7计算,包括Pi,python,python-2.7,math,Python,Python 2.7,Math,我正在做一个小程序,计算与轨道力学有关的不同事物,如轨道的半长轴、速度等(回答这个问题不需要这方面的经验) 一切都很顺利,直到我试图计算轨道周期(我必须使用π的公式): T=2π√ a3/µ 其中T是以秒为单位的时间,a是半长轴,µ是标准重力参数 现在,我的问题是,我的程序计算的不是很精确,因为公式的结果有点偏差;例如:在160公里高度的圆形轨道上运行大约需要88分钟,但我的程序告诉我大约需要90分37秒 我的代码: #the standard gravitational parameter o

我正在做一个小程序,计算与轨道力学有关的不同事物,如轨道的半长轴、速度等(回答这个问题不需要这方面的经验)

一切都很顺利,直到我试图计算轨道周期(我必须使用π的公式):

T=2π√ a3/µ

其中T是以秒为单位的时间,a是半长轴,µ是标准重力参数

现在,我的问题是,我的程序计算的不是很精确,因为公式的结果有点偏差;例如:在160公里高度的圆形轨道上运行大约需要88分钟,但我的程序告诉我大约需要90分37秒

我的代码:

#the standard gravitational parameter of the Earth
gravPara = 3.986004418*10**14

#the semi-major axis of the orbit (the radius of the Earth + the apoapsis and periapsis of your orbit / 2)
semiMajor = (bodyDia + ap + pe) / 2

#formula to calculate orbital period
timeSeconds = (2 * math.pi) * math.sqrt(semiMajor**3 / gravPara)

#making the result appear as minutes and seconds instead of just seconds
timeMinutes = 0
while (timeSeconds > 60):
   timeSeconds = timeSeconds - 60
   timeMinutes = timeMinutes + 1

#round the variable to store seconds
round(timeSeconds, 0)

#print the result
print timeMinutes
print timeSeconds
所以我的问题是:这是我的代码中的一个错误,还是在这样的公式中一起使用时,
math.pi
不是很精确?我应该将其存储为浮点并使用浮点,还是应该将计算拆分为多个部分

如果您能在这一点上帮助我,我将非常感激,因为搜索Python参考以及其他论坛并没有让我走得很远


PS:当使用
print math.pi
时,它返回一个精确的pi值,因此
math.pi
函数似乎工作正常。

math.pi
是一个15位小数的浮点:3.141592653589793

正如切普纳斯在你的原始帖子中所说,在计算地球大小的球体时,这相当于一个原子的大小


所以要回答你的问题:这不是
数学.pi

好的-似乎我已经找到了问题的解决方案;在编辑我的问题以包含变量semiMajor的计算时,我意识到我忘记在
bodyDia+ap+pe
周围包含括号,这导致错误的优先级排序,导致计算不太精确

所以在我的代码中这只是一个愚蠢的错误,通过添加两个括号就很容易解决了。
谢谢您花时间。

您能为您的
半专业
计算添加代码吗?此外,您还可以将分/秒计算替换为
min,sec=timeSeconds//60,timeSeconds%60
半长轴使用了什么值?可以使用
divmod
转换为分和秒:
math.pi
是。