본문 바로가기
유도항법제어/최적제어

브라키스토크론 문제와 변분법

by 세인트 워터멜론 2021. 1. 8.

같은 평면에 높이가 다른 두 지점 \(A\)와 \(B\)가 있다. 지점 \(A\)는 지점 \(B\)보다 높은 곳에 위치해 있다. 이 때 상단 지점 \(A\)에 정지해 있던 물체가 마찰없이 중력의 영향으로만 미끄러져서 가장 짧은 시간에 하단 지점 \(B\)까지 도착할 수 있는 경로는 무엇일까?

 

 

지점 \(A\)와 \(B\)를 잇는 경로는 무수히 많다. 언뜻 생각하면 두 지점을 직선으로 연결한 경로(위 그림에서 녹색 경로)가 두 지점 \(A\)와 \(B\)를 연결하는 최단 경로이기 때문에 최단 시간에 이동할 수 있는 경로도 되지 않을까 싶지만, 그렇지 않다. 중력 때문에 생기는 물체의 속도도 고려해야 한다.

 

 

>수평 방향을 \(x\)축, 수직 방향을 \(y\)축으로 한다면, 경로는 \(x\)를 변수로 하는 함수 \(y(x)\)로 표현할 수 있다. 따라서 이 문제는 미지의 함수 \(y(x)\)를 찾는 문제다.

일단 풀어야 할 방정식부터 만들어 보자. 중력만 작용하고 마찰이 없으므로 이 문제는 보존계(conservative system)의 문제다. 따라서 운동 에너지와 위치 에너지의 합이 일정하므로 임의의 높이 \(y\)에서의 속도는 다음과 같이 계산할 수 있다.

 

\[ \begin{align} & \frac{1}{2} mv^2 = mgy \\ \\ & \to v =\sqrt{2gy} \end{align} \]

 

한편 미지의 경로를 따라 측정하는 미소(infinitesimal) 거리 \(ds\)는 다음과 같으므로,

 

\[ ds=\sqrt{dx^2+dy^2} = \sqrt{ 1+ \left( \frac{dy}{dx} \right) ^2} dx \]

 

 

 

거리 \(ds\)만큼 속도 \(v\)로 이동하는데 걸리는 시간 \(dt\)는 다음과 같다.

 

\[ dt= \frac{ds}{v} = \frac{ \sqrt{ 1+ \left( \frac{dy}{dx} \right) ^2} dx }{ \sqrt{2gy} } \]

 

따라서 지점 \((0,0)\)에서 \((x_f,y_f)\)까지 물체가 경로 \(y(x)\)를 따라 이동하는데 걸리는 시간은 다음과 같이 계산된다.

 

\[ t= \int_0^{x_f} \frac{ \sqrt{ 1+ \left( \frac{dy}{dx} \right) ^2} }{ \sqrt{2gy} } dx \]

 

이제 시간 \(t\)를 최소로 만드는 경로 함수 \(y(x)\)를 계산하면 된다.

 

 

이 문제는 1696년에 베르누이가 제안한 것으로서 Brachistochrone(최단시간) 문제라고 한다. 최단 시간 경로를 찾는 문제이기 때문에 최적화 문제이긴 하지만 일반 최적화 문제와는 다른 점이 있다. 일반 최적화 문제는 어떤 함수가 최소값 또는 최대값을 갖게 하는 변수의 값 (또는 그때의 함수 값)을 찾는 문제라면, Brachistochrone 문제는 지점 \(A\)와 \(B\)를 잇는 모든 경로 중에서 최소의 이동 시간을 갖는 경로, 즉 최적 함수를 찾는 문제이기 때문이다. 최적 변수 값을 찾는 게 아니라 최적 함수를 찾는 문제라는 차이가 있다.

베르누이가 제안한 이 문제는 6개월 동안 유럽의 수학자들을 당혹스럽게 만들었다고 한다. 많은 솔루션이 베르누이에게 제출되었는데 그 중에는 뉴턴이 단 하루만에 풀어서 익명으로 보낸 것도 있다고 한다.

베르누이의 브라키스토크론 문제는 당시에 새로운 유형의 최적화 문제였으며 변분법(calculus of variation)이라고 하는 수학 분야로 이어졌다. 변분법은 일반 미적분학과는 달리, 어떤 함수의 값을 최소화하거나 최대화하는 함수가 어떤 것인지를 다룬다. 즉 '함수의 함수'가 최소값 또는 최대값을 갖도록 하는 함수를 다룬다.

제어의 한 분야인 최적제어(optimal control)도 변분법을 이용한다. 최적제어의 목적은 성능지수 (또는 목적함수)라고 일컫는 '함수의 함수'를 최소화하는 함수를 찾는 것이다. 위성을 궤도에 올릴 때 가장 짧은 시간에 궤도로 진입할 수 있는 궤적을 구하는 문제를 예로 들 수 있겠다.

일반 함수가 변수에 의존(dependent)한다면, '함수의 함수'는 함수에 의존하는 함수로서 이를 'functional'이라고 한다. functional을 '범함수'로 번역하는 모양이다. 보다 일반적인 함수라는 뜻인지는 알겠는데, 웬지 죄를 지은 함수같아서 마음에 들지는 않는다. 함수는 function을 한자로 번역한 것이다. 여기서 '함'은 상자라는 뜻이고 '수'는 숫자다. 함수를 수를 담은 상자라는 뜻으로 번역했으므로 '함수의 함수'인 functional은 함함수로 번역하면 되지 않을까? 😊

 

 

댓글