학교에서 본 미적분 영상에서 최단강하곡선 문제에 대한 이야기를 봐서 이번 글에선 이 내용을 다뤄보려고 합니다. 최단강하곡선은 2차원 상에 주어진 두 점을 잇는 곡선 중에서 두 점 중 높은 곳에 물체를 올려뒀을 때 가장 빨리 낮은 곳으로 내려가는 곡선입니다. 역사적으로 보면 1689년에 요한 베르누이가 유럽의 최고 수학자들에게 보냈다는 문제로 유명하죠. 사실 이 문제는 베르누이가 뉴턴을 시험해보려던 문제였는데, 뉴턴은 퇴근 후 몇 시간 끄적거려서 풀어내고 익명으로 풀이를 보냈죠. 이름 없는 풀이를 본 베르누이는 뉴턴인 것을 알아봤다고 합니다.



(이거 만드느라 2시간 쓴 건 함정) (검정: 선분, 파란색: 사이클로이드, 빨간색: 호)


  위 그림이 최단강하곡선 문제를 시각적으로 나타낸 것입니다. $(0, 1)$에서 $(1, 0)$까지 이은 여러 곡선(곡선의 정의에 따라 선분도 포함됩니다) 중에서 간단히 호, 선분, 그리고 이 글의 주인공인 사이클로이드를 그려봤습니다. 언핏 봤을 땐 직선으로 내려가는게 가장 빠르다고 생각할 수도 있습니다. 하지만 이 직관이라는 것은 생각보다 신뢰도가 떨어지고, 무엇보다 수학은 직관으로 시작할 수는 있어도 직관으로만 결과를 도출해내는 것은 대단히 위험하기 때문에 이제 과연 어떤 곡선이 최단강하곡선인지 유도해낼 것입니다.


  일단 이 최단강하곡선을 유도해내기 전에 이 문제를 통해 새롭게 탄생한 변분법이라는 것을 알아야합니다. 변분법이란 범함수(함수 집합을 정의역으로 하는 함수)의 최대 또는 최소를 구해내는 방법입니다. 이 변분법을 쓰는 예로는 여기서 소개하는 사이클로이드의 유도, 평면에 있는 두 점을 잇는 곡선 유도 등이 있습니다. 이제 저는 변분법에서 쓰이는 오일러-라그랑주 방정식을 통해 이 문제를 해결할 겁니다.




  먼저 중력의 방향을 위 이미지처럼 $+y$ 방향이라고 잡고 어떤 두 점 $A(0, 0),\ B(x_0, y_0)\ (x_0, y_0 > 0)$ (계산의 편의를 위해 간단히 잡았습니다)에서 물체를 놨을 때 최단시간으로 떨어지는 곡선을 구해야하기 때문에 결과값이 시간인 범함수를 만들어야 합니다. 이때 중학교 때부터 알고 있던 간단한 공식을 이용합니다.  $ t = {s \over v}$ 이죠. 이때 우리는 곡선을 다루기 때문에 범함수 $L$에 대해 아래와 같이 공식을 세울 수 있습니다.

$$ L = \int_0^{x_0} {ds \over v} $$


이때 이 곡선에서는 역학적 에너지가 보존되기 때문에 아래와 같이 $v$ 를 구할 수 있습니다.

$$ mgy = {1 \over 2}mv^2 \\[10pt] \therefore v = \sqrt{2gy} $$


$ds$ 는 고등학교 기하와 벡터 과정에서 구하는 곡선의 길이 공식을 통해 유도해낼 수 있습니다.

$$ ds = \sqrt{ dx^2 + dy^2 } = \sqrt{1 + x'^2 }\ dy $$


즉, 범함수 $L$은 아래와 같이 나타낼 수 있습니다.

$$ L = \int_0^{x_0} {\sqrt{1 + x'^2 \over 2gy}\ dy} = {1 \over \sqrt{2g}} \int_0^{x_0} {\sqrt{1 + x'^2 \over y}\ dy} $$


이제 오일러-라그랑주 방정식을 봅시다. 범함수 $J$에 대해서 다음과 같이 나옵니다. 이 방정식의 유도과정은 위키백과에 검색하면 잘 나오니 궁금하시면 검색하시면 됩니다.

$$ J = \int_a^b F(x, f(x), f'(x))\ dx,\ {\partial F \over \partial f} - {d \over dx} {\partial F \over \partial f'} = 0 $$


우리의 범함수 $L$에 대해 변형하면 아래와 같이 나옵니다.

$$ F(y, x, x') = \sqrt{1 + x'^2 \over y},\ {\partial F \over \partial x} - {d \over dy} {\partial F \over \partial x'} = 0 $$


이제 쭉 풀어봅시다.

$$ {\partial F \over \partial x} - {d \over dy} {\partial F \over \partial x'} = 0 \\[15pt] {d \over dy} {\partial F \over \partial x'} = 0 \left(\because {\partial F \over \partial x} = 0\right) \\[15pt] {d \over dy} \left( \sqrt{y \over 1 + x'^2} \cdot {x' \over y} \right) = 0 \\[15pt] \sqrt{y \over 1 + x'^2} \cdot {x' \over y} = C \\[15pt] x' = \pm\sqrt{C^2 y \over 1 - C^2 y} $$


$x'$ 꼴로 나왔으니 이제 적분을 해주면 됩니다. 하지만 루트 안에 $y$ 가 있기에 그냥 적분하기엔 불가능할 정도이므로 치환적분을 써줍니다. 중간에 나오는 $\sin^2 t$는 삼각함수 반각공식(삼각함수 덧셈정리 응용)을 통해 풀어줍니다.

$$ y = {1 \over C^2} \sin^2 t,\ dy = {2 \over C^2} \sin t \cos t\ dt\\[15pt] \begin{align*} x &= \pm \int \sqrt{C^2 y \over 1 - C^2 y}\ dy \\[15pt] &= \pm {2 \over C^2} \int \sin^2 t \ dt \\[15pt] &= \pm {1 \over C^2} \int 1 - \cos 2t \ dt \\[15pt] &= \pm {1 \over C^2}\left(t - {1 \over 2}\sin 2t\right) + C'\end{align*}$$


이때 위에 점 $A$ 를 대입해보면 $C' = 0$ 을 얻을 수 있으며 위에 $y$ 의 $\pm$ 은 양수이므로 사라집니다. 좀 더 깔끔하게 정리하기 위해서 $x$ , $y$ 를 정리해보면 아래와 같습니다.

$$ y = {1 \over C^2} \sin^2 t = {1 \over 2C^2} \left(1 - \cos 2t\right) \\[15pt] 2t\text{를 } \theta\text{로 변환시키면} \\[15pt] \begin{cases} \displaystyle x = {1 \over 2C^2} \left(\theta - \sin \theta\right) \\ \displaystyle y = {1 \over 2C^2} \left(1 - \cos \theta \right)\end{cases}$$


여기까지가 일반적으로 알려져있는 사이클로이드 곡선의 식이며 더 나아가 $A$ , $B$ 를 잇는 사이클로이드 곡선의 식을 유도해보겠습니다. 중력의 방향이 $+y$ 방향으로 정해져있기 때문에 $x$축 대칭을 하고 원래 좌표평면에 맞게 좌표를 바꾼 점 $B(a, b)$를 대입해서 정리하면 됩니다.

$$ \begin{cases} \displaystyle x = {1 \over 2C^2} \left(\theta - \sin \theta\right) \\ \displaystyle y = -{1 \over 2C^2} \left(1 - \cos \theta \right)\end{cases} \\[15pt] x\text{축 대칭한 점 } B(a, b) \text{를 대입하고 이때 성립하는 } \theta \text{를 } \theta_0 \text{라 두면} \\[15pt] \begin{cases} \displaystyle a = {1 \over 2C^2} \left(\theta_0 - \sin \theta_0\right) \\ \displaystyle b = -{1 \over 2C^2} \left(1 - \cos \theta _0 \right)\end{cases} \\[15pt] \text{이때의 } \theta_0\text{을 구하는 방정식은 두 식을 나눠서 정리하면 아래와 같다} \\[15pt] {\theta_0 - \sin \theta_0 \over 1 - \cos \theta_0} = -{a \over b} \quad \left(\text{단, }0 < \theta_0 < 2\pi \right) \\[15pt] \text{따라서 이를 정리하면} \\[15pt] \begin{cases} \displaystyle x = -{b \over 1 - \cos \theta_0} \left(\theta - \sin \theta\right) \\ \displaystyle y = {b \over 1 - \cos \theta_0} \left(1 - \cos \theta \right)\quad \left(\text{단, }0 \leq \theta \leq \theta_0 \right) \end{cases}$$


$\theta_0$  같은 경우엔 일반적 풀이방법이 없기 때문에 수치적으로 풀면 됩니다. 저 같은 경우엔 Mathematica 11의 FindRoot 기능을 통해 구한 후 맨 위 이미지를 그려냈습니다.


... 힘드네요 ㅠㅠ(장장 7시간 정도 걸쳐서 쓴....)


  아무튼 이렇게 사이클로이드 곡선이 유도가 됩니다. 당연히 구한대로 실제로 실험해봐도 사이클로이드 곡선에서 물체를 굴릴 때가 가장 빠르게 도착지점에 도착합니다.


참고 사이트

https://ko.wikipedia.org/wiki/%EB%B3%80%EB%B6%84%EB%B2%95

http://mathworld.wolfram.com/BrachistochroneProblem.html

http://zetablog.tistory.com/33

http://mathsci.kaist.ac.kr/~nipl/am621/lecturenotes/Euler-Lagrange_equation.pdf

'수학, 과학 > 수학 이모저모' 카테고리의 다른 글

최단강하곡선 문제(Brachistochrone Problem)  (0) 2017.06.18
피보나치 수열 일반항 유도  (0) 2017.06.04
회전변환  (0) 2017.06.03
MathJax 사용하기  (0) 2017.05.28

+ Recent posts

티스토리 툴바