我正在研究計算與軌道力學相關的不同事物的一個小程序,例如軌道的半長軸,速度等(在這個主題中沒有經驗需要回答這個問題)。精確的Python 2.7計算包括Pi
一切工作良好,直到我試圖以計算軌道週期(一式表示:其中,我不得不使用PI):
T =2π√一個 /μ(Click for image)
凡Ť是時間,以秒,一個是半長軸,和μ是標準引力帕ameter。
現在,我的問題是,我的程序不會計算得非常精確,因爲公式的結果有點偏離;例如:在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
函數似乎正常工作。
你可以包含用於計算'semiMajor'的代碼嗎? – brianpck
此外,您可以將分鐘/秒計算替換爲'min,sec = timeSeconds // 60,timeSeconds%60' – brianpck
並且您對半長軸使用了什麼值? –