
소설 '삼체'의 그 삼체문제, 실제로는 어떤 문제일까
류츠신의 SF 소설이나 넷플릭스 드라마 「삼체」를 보신 분이라면 '삼체문제'라는 단어가 익숙하실 거예요. 세 개의 별이 서로 중력으로 끌어당기면서 예측 불가능하게 움직이고, 그 밑에서 사는 문명이 고생하는 이야기죠. 그런데 이 삼체문제는 소설 속 설정이 아니라 뉴턴 시절부터 수학자들을 괴롭혀 온 진짜 물리학 문제예요.
최근 threebodyorbits.com이라는 사이트가 공개됐는데요. 삼체문제의 '주기해(periodic solution)'들을 모아놓은 일종의 아틀라스, 그러니까 지도책이에요. 세 물체가 뒤엉켜 춤추듯 움직이다가 정확히 원래 자리로 돌아오는 궤도들을 브라우저에서 바로 시뮬레이션으로 볼 수 있어요. 수학적으로도 아름답고, 개발자 입장에서는 수치 시뮬레이션이 어디까지 갈 수 있는지 보여주는 좋은 사례이기도 해요.
삼체문제가 뭐냐면
이게 뭐냐면, 물체가 두 개일 때는 문제가 쉬워요. 지구와 달, 태양과 지구처럼 두 물체가 중력으로 서로 끌어당기면 궤도는 타원이라는 게 수식으로 딱 떨어지게 증명돼요. 이런 걸 '해석적 해(closed-form solution)'가 있다고 해요. 시간 t를 넣으면 위치가 바로 나오는 공식이 존재한다는 뜻이에요.
그런데 물체가 셋이 되는 순간 이 공식이 사라져요. 1880년대에 앙리 푸앵카레가 밝혀낸 건데, 일반적인 삼체문제는 그런 공식으로 풀 수 없고, 초기 조건이 아주 조금만 달라져도 결과가 완전히 달라지는 '카오스' 성질을 가져요. 나비의 날갯짓이 태풍을 만든다는 그 나비효과의 수학적 원조가 바로 여기예요.
그러면 아예 예측이 불가능하냐? 그건 아니에요. 카오스 바다 속에서도 특정 초기 조건에서는 세 물체가 규칙적인 춤을 반복하는 '주기해'가 존재하거든요. 가장 유명한 게 '8자 궤도(figure-eight)'예요. 1993년에 크리스 무어가 컴퓨터로 처음 찾아냈고, 2000년에 셴시네와 몽고메리가 수학적으로 존재를 증명했어요. 질량이 같은 세 물체가 숫자 8 모양의 한 궤도를 따라 서로를 쫓아가는 건데, 처음 보면 믿기지 않을 정도로 우아해요.
어떻게 이런 궤도를 찾아내나
여기서부터가 개발자에게 재미있는 부분이에요. 이 궤도들은 종이와 연필로 찾은 게 아니라 컴퓨터로 찾은 거거든요. 2013년에 세르비아 물리학자 슈바코프와 드미트라시노비치가 13개의 새로운 주기해 패밀리를 발표했는데, 방법은 의외로 단순해요. 초기 조건(각 물체의 위치와 속도)을 아주 촘촘하게 바꿔가면서 수백만 번 시뮬레이션을 돌리고, 일정 시간 후에 출발점 근처로 돌아오는 경우를 골라낸 뒤, 뉴턴법 같은 최적화로 정확히 닫히는 궤도로 다듬는 거예요. 이후 다른 연구팀들이 GPU와 더 정밀한 수치 기법을 써서 수천 개까지 늘렸고요.
이때 핵심 도구가 '수치 적분기(numerical integrator)'예요. 이게 뭐냐면, 미분방정식을 아주 작은 시간 간격으로 잘라서 한 걸음씩 계산해 나가는 알고리즘이에요. 게임 물리 엔진에서 캐릭터가 점프할 때 매 프레임 위치를 계산하는 것과 원리가 같아요. 다만 삼체문제는 카오스라서 오차가 기하급수적으로 커지기 때문에, 단순한 오일러법 같은 걸 쓰면 금방 궤도가 망가져요. 그래서 에너지 보존을 잘 지켜주는 '심플렉틱 적분기'나, 오차를 스스로 조절하는 고차 룽게-쿠타 계열, 혹은 아예 임의 정밀도 연산을 쓰기도 해요.
아틀라스 사이트는 이렇게 찾아진 궤도들을 초기 조건과 함께 정리하고, 브라우저에서 실시간으로 그려줘요. 자바스크립트로 몇 줄 안 되는 적분 루프를 돌려도 이런 걸 볼 수 있다는 게 놀랍죠. 궤도마다 '위상 기하학적' 분류도 붙어 있는데, 세 물체가 서로를 어떤 순서로 감싸고 도는지를 기호로 표현한 거예요. 마치 매듭을 분류하는 것처럼요.
업계 맥락: 왜 지금 다시 삼체문제인가
사실 이런 궤도들은 순수 수학 호기심으로 끝나지 않아요. 우주 탐사에서 실제로 쓰이거든요. 제임스 웹 우주망원경이 머물고 있는 L2 라그랑주 점이나, 달 탐사 계획에 등장하는 '헤일로 궤도(halo orbit)'는 모두 제한된 삼체문제의 주기해예요. 태양-지구-우주선, 지구-달-우주선이라는 세 물체 시스템에서 연료를 거의 안 쓰고 유지할 수 있는 궤도를 찾는 거죠.
그리고 최근에는 머신러닝 쪽에서도 관심이 커요. 물리 법칙을 신경망에 넣는 'Physics-Informed Neural Network'이나, 미분방정식을 직접 학습하는 'Neural ODE' 연구에서 삼체문제가 대표적인 벤치마크로 쓰여요. 카오스 시스템을 얼마나 오래 정확히 예측할 수 있는지가 모델 성능의 척도가 되거든요.
한국 개발자에게 주는 시사점
당장 실무에 삼체문제를 쓸 일은 없겠지만, 배워둘 가치는 꽤 커요. 첫째, 수치 시뮬레이션의 기본기를 익히기에 이만한 예제가 없어요. 오일러법으로 시작해서 룽게-쿠타, 심플렉틱 적분기로 넘어가면서 '왜 오차가 쌓이는지', '왜 부동소수점이 위험한지'를 몸으로 배울 수 있거든요. 게임 물리, 로보틱스, 금융 시뮬레이션 어디에서나 같은 문제가 나와요.
둘째, 시각화 프로젝트로 딱이에요. 캔버스나 WebGL로 궤도를 그려보면 포트폴리오로도 훌륭하고, 파이썬이라면 scipy의 solve_ivp 몇 줄로 8자 궤도를 재현할 수 있어요. 셋째, GPU 병렬 탐색이라는 관점도 흥미로워요. 수백만 개의 초기 조건을 동시에 시뮬레이션하는 건 딥러닝 학습과 구조가 똑같거든요.
마무리
한줄 정리: 삼체문제는 일반해가 없는 카오스 시스템이지만, 컴퓨터를 이용한 대규모 수치 탐색으로 수천 개의 아름다운 주기 궤도가 발견됐고, 이 아틀라스는 그 결과를 누구나 브라우저에서 볼 수 있게 정리한 거예요.
여러분은 수치 시뮬레이션을 직접 짜본 경험이 있으신가요? 부동소수점 오차 때문에 고생했던 이야기나, 이런 시각화 프로젝트 아이디어가 있다면 댓글로 공유해 주세요.
🔗 출처: Hacker News