Pertanyaan ini lebih lanjut tentang cara mengatasi masalah secara numerik.
Dalam sebuah proyek kecil saya ingin mensimulasikan gerakan coorbital Janus dan Epimetheus. Ini pada dasarnya adalah masalah tiga tubuh. Saya memilih Saturnus untuk diperbaiki pada titik asal, misalkan dan menjadi vektor lokasi janus dan epimetheus, masing-masing. Karena efeknya terjadi ketika Janus dan Epimetheus sangat berdekatan, saya memilih koordinat relatif untuk resolusi yang lebih baik, yaitu dan . Sekarang saya mendapatkan persamaan gerak berikut:
di mana sesuai dengan massa bulan, M adalah massa Saturnus dan G adalah konstanta gravitasi. Masalah muncul ketika saya mencoba menyelesaikan ini secara numerik. Kita harus berurusan dengan nilai-nilai dengan magnitudo yang sama sekali berbeda, yaitu M \ sim e ^ {28} dan m_i \ sim e ^ {17} . Dan r , R berada di wilayah 0 hingga 150.000. M G M ∼ e 28 m i ∼ e 17 r R
Sejujurnya saya tidak yakin apakah ini adalah forum tempat untuk membahas masalah angka tersebut.
Informasi Lebih Lanjut:
Kode ditulis dalam Matlab dan saya menggunakan pemecah ODE standar untuk mendapatkan hasilnya. Namun ini mogok karena ukuran langkah tidak dapat dikurangi di bawah presisi mesin. (Saya menemukan ini tidak mengherankan karena kita harus berurusan dengan urutan besarnya yang telah disebutkan).
Jawaban:
Pendekatan Anda saat ini merusak stabilitas numerik; sebenarnya Anda mungkin kehilangan resolusi dengan cara ini.
Ambillah sebagai koordinat untuk setiap satelit, variabel Kepler dan sudut pesawat yang berisi posisi satelit, kecepatan, dan asal. Persamaan diferensial dengan tidak adanya interaksi antara satelit kemudian sederhana, dan hanya interaksi menjadi agak rumit. Karena interaksinya kecil jika satelit berada jauh, dinamika yang dihasilkan harus stabil secara numerik.
sumber
Alih-alih menggunakan pemecah ODE "klasik" (kaku), Anda dapat menggunakan algoritma khusus untuk integrasi numerik geometris. Lihat misalnya buku ini dan kode-kode GNI yang dapat Anda temukan di situs web Ernst Hairer .
sumber
Bagaimana jika Anda memiliki tiga langkah dalam simulasi Anda:
Mungkin menggunakan timesteps yang lebih baik untuk # 3.
Saya tidak yakin apakah ini akan membantu. Saya kira masalah sebenarnya adalah bahwa besarnya gaya berbeda di bulan - bulan dan bulan - kasus Saturnus, kecuali jika bulan dekat?
Kalau tidak:
Semoga berhasil!
sumber