Saya ingin menggunakan metode urutan ke-8 Runge-Kutta (89) dalam aplikasi mekanika / astrodinamika surgawi, yang ditulis dalam C ++, menggunakan mesin Windows. Karena itu saya bertanya-tanya apakah ada yang tahu perpustakaan / implementasi yang baik yang didokumentasikan dan bebas untuk digunakan? Tidak apa-apa jika ditulis dalam C, selama tidak ada masalah kompilasi yang diharapkan.
Sejauh ini saya telah menemukan perpustakaan ini (mymathlib) . Tampaknya kode itu ok, tetapi saya belum menemukan informasi tentang lisensi.
Bisakah Anda membantu saya dengan mengungkapkan beberapa alternatif yang mungkin Anda ketahui dan akan sesuai dengan masalah saya?
EDIT:
Saya melihat bahwa sebenarnya tidak ada banyak kode sumber C / C ++ yang tersedia seperti yang saya harapkan. Oleh karena itu versi Matlab / Oktaf akan ok juga (masih harus bebas untuk digunakan).
sumber
Jika Anda melakukan mekanika langit dalam skala waktu yang lama, menggunakan integrator Runge-Kutta klasik tidak akan menghemat energi. Dalam hal ini, menggunakan integrator symplectic mungkin akan lebih baik. Boost.odeint juga mengimplementasikan skema Runge-Kutta symplectic tingkat 4 yang akan bekerja lebih baik untuk interval waktu yang lama. GSL tidak menerapkan metode symplectic, sejauh yang saya tahu.
sumber
merangkum beberapa poin:
DP5
) ketika Anda melihat 4 digit akurasi (toleransi jauh lebih rendah untuk ini. Toleransi hanya rata-rata dalam masalah apa pun). Ketika Anda menarik toleransi bahkan semakin rendah peningkatan dari metode RK tingkat tinggi tumbuh, tetapi Anda mungkin perlu mulai menggunakan angka presisi yang lebih tinggi.dop853
dan DifferentialEquations.jlDP8
(yang sama). Metode 853 yang terakhir tidak dapat diimplementasikan dalam versi tablo standar dari metode Runge-Kutta karena estimator kesalahannya adalah non-standar. Tetapi metode ini jauh lebih efisien dan saya tidak akan merekomendasikan bahkan menggunakan metode Fehlberg 7/8 atau DP 7/8 yang lebih lama.sumber
Saya ingin menambahkan bahwa sementara apa yang disarankan Geoff Oxberry untuk integrasi jangka panjang (menggunakan integrator symplectic) adalah benar, dalam beberapa kasus itu tidak akan berfungsi. Lebih khusus lagi, jika Anda memiliki kekuatan disipatif, sistem Anda tidak menyimpan energi lagi, dan karena itu Anda tidak dapat menggunakan integrator symplectic dalam kasus itu. Orang yang mengajukan pertanyaan itu berbicara tentang orbit Bumi yang rendah, dan orbit seperti itu menunjukkan sejumlah besar gaya hambat atmosfer, yang merupakan kekuatan disipatif yang menghalangi penggunaan integrator symplectic.
Dalam kasus tertentu (dan untuk kasus di mana Anda tidak dapat menggunakan / tidak memiliki akses ke / tidak ingin menggunakan integrator symplectic), saya akan merekomendasikan penggunaan integrator Bulirsch-Stoer jika Anda membutuhkan presisi dan efisiensi dalam jangka waktu yang lama. Ini bekerja dengan baik berdasarkan pengalaman, dan juga direkomendasikan oleh Numerical Recipes (Press et al., 2007).
sumber
odex
tidak cenderung adil. Jadi setidaknya untuk ODE urutan pertama dan untuk toleransi>=1e-13
, ekstrapolasi tampaknya tidak berfungsi dengan baik dan biasanya tidak mendekati. Ini sesuai dengan klaim di atas.