ฉันกำลังสร้างเครื่องจำลองทางดาราศาสตร์อย่างง่ายที่ควรใช้ฟิสิกส์ของนิวตันเพื่อจำลองการเคลื่อนที่ของดาวเคราะห์ในระบบ (หรือวัตถุใด ๆ สำหรับเรื่องนั้น) ร่างกายทั้งหมดเป็นวงกลมในระนาบแบบยุคลิดที่มีคุณสมบัติเช่นตำแหน่ง, ความเร็ว, มวล, รัศมีและแรงที่เกิดขึ้น
ฉันต้องการอัปเดตจักรวาลในช่วงเวลาสั้น ๆ โดยปกติจะใช้เวลาไม่กี่มิลลิวินาที แต่ฉันไม่แน่ใจว่าจะคำนวณการเปลี่ยนแปลงที่ถูกต้องได้อย่างไร
แรงง่าย: fr = sum(G * body.m * bodyi.m / dist(body, bodyi)^2)
.
แต่ฉันจะไปจากที่นั่นได้อย่างไร
ฉันสามารถทำสิ่งนี้:
a = Fr/body.m
v += a*dt
position += v*dt
แต่แน่นอนว่าจะเป็นเท็จ บางทีถ้าฉันเพิ่ม 0.5 เป็นปัจจัยในการคำนวณตำแหน่ง?