2011년 10월 15일 토요일

두 개의 대전된 진자

울프램 사에선 Wolfram Demonstrations Project를 운영하고 있다. 이 홈페이지에선 매스매티카로 만든 다양한 프로그램을 만날 수 있는데, 이름에서 볼 수 있듯이 여기 있는 프로그램의 목적은 보여주기 위한 것이다. 예를 들어, 과학 책에 등장하던 고정된 그림과 그래프를 다양하게 변화시켜 가며 체험해 볼 수 있다. 여기에 등록할 프로그램은 유료 프로그램인 매스매티카로 만들어야 하지만, 실행해 보는 데에는 무료 프로그램인 Wolfram CDF Player만 있으면 되므로 누구나 프로그램을 실행해 볼 수 있다.

2차원 진자의 운동
최근에 이 프로젝트에 2차원 진자를 전산 모의 실험해 볼 수 있는 프로그램을 하나 올렸다. 진자(pendulum, 흔들이)란 어떤 물체를 줄에 매달아 흔들리게 둔 장치를 말하는데, 쉽게 괘종시계의 추를 생각하면 된다. 이 간단한 동역학 모델은 생각과 달리 정확한 해를 구할 수 없는데, 꽤 정확한 근사는 할 할 수 있다. 물리학도가 처음으로 만나는 진동계로써 교육적으로 중요한 모델일 뿐만 아니라, 물리학자로 살아가는 동안 계속 만나게 되는 진동계로써 과학에 이바지하는 바도 크다.

내가 만든 프로그램에 나오는 진자는 평면상에서 움직이는 2차원 진자이다. 보통 진자의 움직임을 계산할 때 진자의 움직임 폭이 줄의 길이에 비해 짧다는 가정을 하는데, 이렇게 하면 원래 비선형 움직임을 보이는 진자를 선형계로 근사할 수 있다. 하지만, 내 프로그램은 이 근사를 사용하지 않고 더 정확한 계산을 시도한다. 하지만 이 프로그램도 현실과 다른 사항을 몇 개 가정한다. 추를 매단 줄에 관한 건데, 이 줄의 형태는 변하지 않으며 무게가 0이라고 가정한다. 이 밖에 다른 근사도 사용하지만, 이건 아래에서 다루기로 하자.

Two Charged Conducting Pendulums의 실행 화면
프로그램에는 진자가 한 개가 아닌 두 개가 나온다. 프로그램을 실행해 보면 알겠지만, 이 두 개의 진자는 서로 연결되어 있다. 눈에 보이는 장치에 의해 연결된 건 아니고, 전기력에 의해 연결되어 있다. 바로 진자의 추에 대전 된 전하량을 설정할 수 있게 되어 있기 때문이다. 그리고 두 개의 추는 완전 도체로 만들어진 구라고 가정한다. 물체 근처에 전하를 가져가면 전하와 물체 사이엔 서로 끌어당기는 힘이 작용하게 되는데, 이 물체가 완전 도체로 이루어진 구라면, 이 힘을 쉽게 계산할 수 있다. 다만, 여기에서 문제는 어느 한 쪽의 전하가 공기 중에 있지 않고 양쪽 모두 도체 구에 분포한다는 점이다. 이렇게 되면, 무한수열을 계산해야 하고, 정확한 계산을 위해선 시간이 좀 걸린다. 이 프로그램은 실시간으로 미분방정식을 풀어서 움직임을 보여줘야 하는데, 이래서는 사용자가 좀 지루할 것 같다. 그래서 다시 근사를 한다. 이 수열의 각 항은 크기가 급격히 감소하므로, 수열 중 첫 번째 항만을 이용해서 계산한다. 사실 이렇게 해도 꽤 그럴싸한 값을 얻을 수 있기 때문이다.

이 프로그램에선 거의 모든 값을 사용자가 변경해 볼 수 있다. 또한, 전산 모의 실험에선 일반적으로 이러한 매개 변수의 단위를 없애지만, 이 프로그램의 조정 패널에선 실제 단위를 사용하게 하였다. 덕분에 왼편의 조정 패널에 나타나는 숫자가 조금 지저분해 보이긴 하지만, 사용자가 실제 수치에 조금 더 사실적은 감을 얻을 수 있을 거라 여긴다.