2013-09-28 24 views
1

This question已經在網站上很長時間了,所以從數學上講,每一次修正都已經完成。現在...從程序員的角度來看代碼有什麼問題?測地速度不起作用

+2

如果代碼是'BASIC',爲什麼這個標籤爲'C'? – Blastfurnace

+0

http://math.stackexchange.com上有一個答案,說數學是錯誤的。編碼也是可疑的;它看起來好像假設乘法的結合比分割更緊密(如在數學中,而不像在大多數計算語言中那樣)。 –

回答

1

4個變量vr, vphi, r, phi正在按順序更新,但它們在彼此的方程中使用。考慮將它們更新爲一組臨時的新值,因此每個等式使用相同的舊值。完成後,執行更新。

vrNext = vr + (12/(r^7+4*r)*vr^2) *ds + (r^8/(4*r+r^7)*vphi^2) *ds 
vphiNext = vphi + (-2/r*vr*vphi) *ds 
rNext = r + vr*ds 
phiNext = phi + vphi*ds 

vr = vrNext 
vphi = vphiNext 
r = rNext 
phi = phiNext 
+0

你是個天才! :D我怎麼能忘記這一點!面對手掌!非常感謝你!! – BinaryBurst

+0

但可惜這並沒有解決問題。 – BinaryBurst

+0

請提供有關此問題症狀的更多信息,併發布您的代碼。建議一個新問題,但一定要引用這個問題,並顯示你有一個_subsequent_問題。此外,我注意到對帖子有些敵意的迴應,沒有像這樣的明確的特定問題(帶有問號)。 – chux