Saya membuat simulator astronomi sederhana yang harus menggunakan fisika Newton untuk mensimulasikan pergerakan planet dalam suatu sistem (atau benda apa pun, dalam hal ini). Semua benda adalah lingkaran dalam bidang Euclidean, yang memiliki sifat seperti posisi, kecepatan, massa, jari-jari dan gaya yang dihasilkan.
Saya ingin memperbarui alam semesta dalam langkah-langkah waktu yang kecil, biasanya beberapa milidetik, tetapi saya tidak yakin bagaimana cara menghitung perubahan posisi dengan benar.
Gaya adalah sederhana: fr = sum(G * body.m * bodyi.m / dist(body, bodyi)^2)
.
Tetapi bagaimana saya melanjutkan dari sana?
Saya bisa melakukan ini:
a = Fr/body.m
v += a*dt
position += v*dt
Tapi tentu saja itu salah. Mungkin jika saya menambahkan 0,5 sebagai faktor dalam perhitungan posisi?