3개의 상호 좌우하는 천체의 움직임을 모델화한 역학의 난문제 "삼체 문제"를 시뮬레이션하면?

삼체문제란... 고전역학에서 무게 상호작용하는 3가지 질점이 어떤 운동을 하는지 묻는 문제로, 천체역학 분야에서는 만유인력에 의해 상호좌우하는 천체의 운동을 모델화한 문제로 18세기경부터 연구되고 있다.

 


"태양, 지구, 달"로 대표되는 항성, 행성, 위성계의 운동이나, 3개의 별이 균형 잡힌 라그랑주점, 3개의 랜덤한 질량의 별이 자유 궤도로 움직였을 경우 등, 삼체 문제를 시뮬레이션 할 수 있는 것이 "Three Bodies"이다.

 

https://three-bodies.sulami.xyz/

 

링크 페이지를 열면, 색깔과 크기가 다른 세 가지 점이 나타나고, 점은 각각 자유로운 궤도로 이동하고 있다. 각 점에는 "m"과 "v"라는 숫자가 붙어 있고, m(mass, 질량)은 점의 질량, v(velocity, 빠르기)는 점이 움직이는 속도를 나타낸다.


각각의 점은 기본적으로 일정한 속도로 똑바로 움직이고 있지만, 두 점이 접근하면 서로가 끌리게 되어 궤도가 변화하고, 단체로 이동하고 있을 때의 녹색 점의 속도는 "0.39"였지만, 이하의 이미지에서는 "0.75"로 배 가까이까지 증가하고 있어 점끼리 서로 끌어당김으로써 속도도 변화하고 있는 것을 알 수 있다. 이것이, 각각의 점에는 만유인력이 작용하고 있어, 인력이 각각의 궤도에 영향을 준다고 하는 삼체 문제를 나타내고 있다는 것.

녹색과 노란색 점은 서로 끌어당겨 부딪힌 결과, "COLLISION(충돌)"으로 표시되며, 애니메이션은 정지. Three Bodie는 3개의 자유궤도에서 움직이는 크기가 다른 별이 충돌해 버릴 때까지 시뮬레이션하고 있다.

클릭이나 혹은 스페이스 키, 스마트폰 같은 경우는 화면을 탭하면, 새로운 별 3개가 새롭게 나타나면서, 이번에는 크기가 가까운 녹색 점이 2개, 그 절반 정도의 질량인 하늘색 점이 1개.



2개의 점이 가까워지면 서로 끌어당겨져 궤도가 변화한다. 아래의 빨간 테두리에서 나타나듯이, 두 점 모두 궤도가 변화하고 있지만, 작은 하늘색 점은 크게 휘어져 있는 것에 비해, 녹색 점의 궤도는 약간 변화하고 있을 뿐. 질량에 따라 인력의 크기와 인력의 용이성이 다르기 때문에, 같은 움직임을 하는 것은 아니다. 또, 첫 번째 시뮬레이션에서는 가까운 위치에 있었기 때문에, 곧바로 2개의 점이 충돌했지만, 서로 끌어당기는 힘은 궤도를 변경시킬 뿐, 그대로 엇갈려 또 일정 속도의 운동을 계속하는 경우가 많은 모습.

 


질량 차이가 커서인지, 작은 하늘색 점은 녹색 점이 접근하면 민감하게 반응하는데, 그 중에는 빙글빙글 원을 그리며 턴을 하는 장면도 있다.

두 점이 가까워지면 약간 궤도에 서로 영향을 주는 정도지만, 세 점이 가까워지면 각각 다른 두 인력에 영향을 받기 때문에 복잡한 변화를 볼 수 있다.

그러나, 접근한 후에는 각각의 궤도로 돌아가 직선 운동을 재개. 적어도 이 3가지 점에서는 균형이 잡혀 궤도가 안정되지는 않을 것 같으며, 결과적으로 화면 상단에서 가장 큰 녹색 점과 작은 하늘색 점이 충돌하여 시뮬레이션은 종료.

Three Bodie는 리트라이할 때마다 다른 질량, 배치, 궤도를 설정된 세 가지 점을 시뮬레이션으로 봄으로써, 별의 궤도와 인력에 대한 이해를 단순한 애니메이션으로 심화시킬 수 있다.

 

https://github.com/sulami/three-bodies


Three Bodie의 코드는 GitHub에 공개되어 있다.