<p>我正在编写一个小程序,它计算与轨道力学有关的不同事物,例如轨道的半长轴、速度等(回答这个问题不需要这方面的经验)。你知道吗</p>
<p>一切都很顺利,直到我试图计算轨道周期(我必须使用π的公式):</p>
<p>T=2π√a<sup>3</sup>/µ<a href="https://i.stack.imgur.com/cyS2I.png" rel="nofollow">(Click for image)</a></p>
<p>其中,<em>T</em>是以秒为单位的时间,<em>a</em>是半长轴,<em>µ</em>是标准重力参数。你知道吗</p>
<p>现在,我的问题是,我的程序计算得不是很精确,因为公式的结果有点不准确;例如:在160公里高度的圆形轨道应该需要大约88分钟,但我的程序告诉我大约90分37秒。你知道吗</p>
<p><strong>我的代码:</strong></p>
<pre><code>#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
</code></pre>
<p>所以我的问题是:这是我的代码中的一个错误,还是<code>math.pi</code>在这样的公式中一起使用时不是很精确?我应该将它存储为一个float并改用float,还是应该将计算分成多个部分?你知道吗</p>
<p>如果您能在这方面帮助我,我将非常感激,因为搜索Python参考资料以及其他论坛并没有让我走得很远。你知道吗</p>
<p>PS:当使用<code>print math.pi</code>时,它返回一个精确的Pi值,因此<code>math.pi</code>函数似乎工作正常。你知道吗</p>