Merhaba bir fizik simulasyonu yaziyorum. N tane cisimin birbiri ile yercekimsel etkilesimini modellemek istiyorum.
Konu hem fizik hem matematik hem de programlama olunca serbest kategorisinde sormayi uygun buldum.
Problemlerimden bir tanesi sectigim numerik diferensiyal denklem cozum yontemleri hakkinda.
Biraz simulasyonu anlatiyim.
N tane parcacik icin kutle, yaricap, konum, hiz, ivme niceligini tutuyorum ve
tum simulasyon icin toplam kinetik enerji, potansiyel enerji, momentum ve kutle merkezini hesapliyorum.
simulasyonda bir sonraki adimi
Euler methodu, Verlet, Leapfrog, Runge-Kutta(4)
yontemleri ile hesapliyorum.
Hesabini analitik olarak bildigim bir gezegen konfigurasyonunu aldim ve bu integrasyon semelarini test ettim.
Verlet ve Leapfrog un Runge Kutta dan daha hatali olmasina ragmen uzun vadede daha duzgun sonuclar verdi. Runge-Kutta simulasyonun baslangicinda cizilen yorunge ile analitik yorunge arasindaki hata cok Verlet ve Leapfrogdan daha ay olmasina ragmen simulasyonunu devam ettirdikce Runge orjinal yorungeden sapti, Verlet ve leapfrog ise stabil bir sekilde yorungesine devam etti. Bunun uzerine sistemin enerjisini zamana bagli olarak grafigini cizdim. Ayni islemi momentum icin de yaptim. Enerjinin sabit kalmasini bekliyordum ama runge-Khutta da lineer olarak artti, Leapfrog ve Verlet de salinim yapti. Baska ilginc bir gozlemim yorungenin eksentrisitesi ile enerji grafiginin sekli arasindaki baglanti. Verlet ve Leapfrog n enerji grafiklerinin "puruzlulugu" yorungenin eksentrisitesine bagli gibi duruyor.
Bunun sebebi nedir ve leapfrog ve verlet gibi ama daha yuksek dereceli integrasyon semalari nasil bulurum?
Ikinci sorum ise carpismalarla alakali.
Sisteme carpisma eklemeyi dusunuyorum. Soru burada gezegenler elastik mi yoksa inelastik mi carpisiyor acaba.
Bence gezegenlerin kutleleri birbirine yakinsa elastik aradaki fark yuksekse inelastik carpisiyorlar ama tabi ki bu bir spekulasyon. Olabildigince gercekci bir simulasyon icin ne yapmaliyim ?
Burada baska bir problemim de su. Simulasyon oldugu icin takdir edersiniz ki zaman ayrik. Bazen iki cismin birbiri ile carpistigini farkettigimde is isten gecmis oluyor ve cisimler ust uste binmis oluyor. Suanki cozumum.carpisan cisimlerin merkezleri arasinda bir dogru cizip bu dogrudan cisimlerin yaricaplari toplamini cikariyorum.
$d=O_1 - O_2 - r_1 - r_2$
Her iki cismi de $d/2$ kadar kaydiriyorum. Artik cisimler birbirine tanjant ve normal bir sekilde carpistiriyorum.
Bu yontem biraz sorunlu gibi daha guzel bir sey onerebilir misiniz?
Diger bir problemim ise algoritmik. Su an simulasyonun calisma hizi parcacik sayisinin karesi ile dogru orantili.
Fizik derslerimden hayal meyal uzaktaki cisimler "yeterince uzaksa" hepsini tek bir nokta gibi dusunebiliz diyordu.
Burada "yeterince uzak", ne kadar uzak?
Sanirim bunu kullanip bir agac olusturursam calisma hizini $O(n\log n)$ dusurebilirim ve daha buyuk sistemleri inceleyebilirim. Tam olarak nasil yapacagimdan henuz emin degilim. Akliniza fikir gelirse yazarsaniz sevinirim .