1. 개요
變分法 / calculus of variations변분법은 수학의 한 분야로서 범함수의 최소, 최대를 찾는 방법 등을 가리키는 용어이다. 예를 들어 [math( (x_1,y_1) )] 라는 점과 [math( (x_2,y_2) )] 라는 점을 연결하는 다양한 곡선들의 집합을 생각해 보자. 이들 중 가장 짧은 것, 즉 두 점 사이의 최단경로는 두 점을 연결한 직선이 된다. 직관적으로는 답을 쉽게 알 수 있지만 그것을 실제로 수학적인 엄밀성을 갖춰 증명하는 것은 쉽지 않다. 또 다른 예로, 일정한 길이의 닫힌 곡선으로 만들 수 있는 도형을 생각해 보자. 무수히 많은 가능한 도형들 중 가장 넓이가 큰 것은 원이 될 것이다. 그러나 그 증명을 위해 모든 가능한 도형들을 만들어 넓이를 비교해 볼 수는 없다.
다양한 물리학 문제가 무언가를 최소화하거나 최대화하는 것을 요구하고 있고 고전역학을 기술하기 위해 도입된 페르마의 원리, 해밀턴의 원리 등을 실제로 적용하기 위해서는 최소 경로, 최소 시간, 최소 액션 등을 주는 운동을 찾아야 하므로 물리학자들에게 오히려 더 친숙한 수학적인 도구라고도 할 수 있다.
변분법 문제를 푸는 방법은 최적화 문제의 1계 조건에서 얻어지는 방정식의 해를 구하는 것이다. 이 1계 조건이 오일러-라그랑주 방정식이다. 또한 오일러-라그랑주 방정식은 최적화의 필요조건이므로 그 해가 충분조건도 만족하는지는 2계 조건을 따져 보아야 알 수 있다.
변수분리법과 헷갈리지 않게 주의하자.
2. 역사
1687년 뉴턴은 프린키피아에서 유체 내부에서 운동하는 물체의 저항을 최소로 만드는 표면의 모양에 대해서 논의한다. 이를 변분법의 시초라고 볼 것인지에 대해선 사람마다 의견이 다르다.변분법은 1696년 6월 요한 베르누이가 Acta Eruditorum에 최속 하강 곡선(Brachistochrone curve) 문제를 다른 수학자들에게 난제로 제시하면서 시작되었다. 이 문제에 대해 라이프니츠, 아이작 뉴턴, 요한 베르누이 자신, 야코프 베르누이, 로피탈 등이 답을 제출하였다. 그 중에서 야코프 베르누이가 답을 구한 방식이 변분법의 아이디어의 단초가 되었다.
본격적인 변분법에 대한 연구는 오일러부터 시작되며 변분법이라는 이름도 오일러의 저서에서 비롯된다. 이후에 천재 소년 라그랑주가 오일러의 저서를 보고 연구하여 자신만의 개선점을 오일러에게 편지로 알리자 오일러가 자신의 방법을 버리고 라그랑주의 방법을 받아들였다는 것은 유명한 일화다.[1] 그래서 1계 조건 방정식이 오일러-라그랑주 방정식이라고 불린다.
이후에 야코비, 바이어슈트라스 등의 수학자들이 2계 조건에 관한 연구를 진척시켰다. 특히 힐베르트의 23가지 문제중 마지막 변분법에 대한 문제는 그 문제를 설명하면서 힐베르트가 2계 충분 조건의 기존 성과를 정리하고 자신의 연구결과를 덧붙이는 것을 발표하는 것으로 사실상 문제 아닌 문제가 되어버렸다. 이후 변분법은 좀더 유연한 최적제어론(Optimal control)과 동적 계획법(Dynamic programming)으로 계승되어 발전된다.
3. 변분법의 기본 보조정리
변분법의 기본 보조정리(Fundamental Lemma of Calculus of Variations)는 오일러-라그랑주 방정식의 증명에 있어서 핵심적인 보조정리이다.[math(f\,:\, [a,\,b] \rightarrow \mathbb{R})]이 연속함수이고, 컴팩트 지지이자 매끄러운 임의의 함수 [math(\eta(x))]에 대하여 다음이 성립한다고 하자,
[math(\displaystyle \int_{a}^{b} f(x) \eta(x)\,dx=0 )] |
참고로, 매끄러운 함수는 무한번 미분가능한 함수를 뜻하고, 컴팩트 지지 함수는 [math(\{x\in \mathbb{R}|\eta(x)≠0\})]의 폐포(closure)가 유계인 것을 의미한다.
컴팩트 지지 대신에 좀 더 약한 조건인 [math(c \notin (a,\,b))]인 모든 점 [math(c)]에 관해 [math(\eta(c)=0)]인 조건을 넣기도 한다.
3.1. 증명
[math(f \left( x \right) \not\equiv 0)]이라 가정하자. 편의상 [math(x = \xi)]의 근방 [math(\mathcal{N} = \left\{ x \in \left[ a, b \right] : \xi_1 < x < \xi_2 \right\})]에서 [math(f \left( x \right) > 0)]이라 하자.이때, 위에서 언급하였던 조건보다 약화되어 두 번 미분가능한 함수에 대해 위 명제를 보일 것이다. [math(\eta \left( x \right) = {\left( x - \xi_1 \right)}^4 {\left( x -\xi_2 \right)}^4 {\bold{1}}_{\mathcal{N}} \left( x \right))][2]이라 하자.
그러면,
[math(\displaystyle \int_{a}^{b}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x)]
[math(\displaystyle = \int_{a}^{\xi_1}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x + \int_{\xi_1}^{\xi_2}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x + \int_{\xi_2}^{b}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x)]
[math(\displaystyle = \int_{\xi_1}^{\xi_2}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x)]
여기서 [math(f, \eta)] 모두 [math(\mathcal{N})]에서 양의 부호를 가지므로, 적분의 성질에 의해 [math(\mathcal{N})] 위의 적분 [math(\displaystyle \int_{\xi_1}^{\xi_2}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x)]도 양의 부호를 갖는다.
따라서 [math(\displaystyle \int_{a}^{b}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x > 0)]인데, 이는 가정에서 [math(\displaystyle \int_{a}^{b}{f \left( x \right) \eta \left( x \right)}\mathrm{d}x = 0)]라고 한 것과 모순이다.
같은 논지로 [math(f < 0)]인 경우도 증명할 수 있다.
그러므로 [math(f \left( x \right) \equiv 0)]이다.
4. 오일러 방정식
변수를 하나만 가지는 함수 [math(y\left(x\right))]와 그 도함수 [math(y^\prime \left(x\right))]를 변수로 가지는 어떤 범함수(functional)[math(\displaystyle J = \int_{ x_1 }^{ x_2 }{ f \left\{ y \left( x \right) , y^\prime \left( x \right) ; x \right\} } dx )] |
의 극값(극소 또는 극대)가 될 때, [math( f )]가 만족하는 미분방정식은 다음과 같다.
[math(\displaystyle \frac{ \partial f }{ \partial y } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y' } \right) = 0 )] |
이를 오일러 방정식이라 한다. 증명 및 자세한 내용은 오일러 방정식 문서에 있다.
4.1. 다변수함수의 오일러 방정식
범함수 [math( J )]가 [math( y(x) )]뿐만 아니라 다른 변수 [math( y_1 (x), y_2 (x), y_3 (x), \cdots )] 등을 가질 수도 있다. 이때는 단순히 각 변수에 대해 오일러 방정식을 여러 번 써 주면 된다. 예를 들어[math(\displaystyle J = \int_{ x_1 }^{ x_2 }{ f \left\{ y \left( x \right) , y^\prime \left( x \right) ,z \left( x \right) , z^\prime \left( x \right) ; x \right\} } dx )] |
가 극값이 될 때 [math( f )]가 만족하는 미분방정식은 다음 연립방정식이다.
[math(\displaystyle \frac{ \partial f }{ \partial y } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y' } \right) = 0 , \frac{ \partial f }{ \partial z } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial z' } \right) = 0 )] |
일반적으로 간단히 [math( J = \int_{ x_1 }^{ x_2 }{ f \left\{ y_i \left( x \right) , y_i^\prime \left( x \right) ; x \right\} } dx \quad (i=1,2,\cdots,n) )]가 극값이 되는 [math( f )]는 다음 연립방정식이 성립한다.
[math(\displaystyle \frac{ \partial f }{ \partial y_i } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y_{i}' } \right) = 0 )] |
4.2. 구속 조건이 있는 오일러 방정식
라그랑주 승수법에 의하면, 어떤 조건 [math( g(x,y,z)=0 )]를 만족할 때 [math( f(x,y,z) )]의 극값의 좌표는, 어떤 실수 [math( \lambda )]가 존재하여 다음 식을 만족한다.[math(\displaystyle \boldsymbol{\nabla} f(x,y,z) + \lambda \boldsymbol{\nabla} g(x,y,z) = 0 )] |
그러면 위 식에서 나온 3개의 연립방정식과 구속 조건 [math( g(x,y,z)=0 )]까지 4개의 식을 연립하여 [math( x,y,z,\lambda )]를 구하면 된다. 구속 조건이 있는(contrained) 오일러 방정식도 비슷한 방법으로 풀 수 있다.
4.2.1. 일반 구속 조건
비슷한 원리로, 구속 조건 [math( g(y,x)=0 )]를 만족하는 범함수 [math( J = \int_{ x_1 }^{ x_2 }{ f \left\{ y( x ) , y'( x) ; x \right\} } dx )]가 극값이 될 때, 어떤 함수 [math( \lambda (x) )]가 존재하여 다음 방정식을 만족한다.[math(\displaystyle \frac{ \partial f }{ \partial y } - \frac{ d }{ dx } \frac{ \partial f }{ \partial y' } + \lambda (x) \frac{ \partial g }{ \partial y } = 0 )] |
그런 다음 구속 조건 [math( g=0 )]이랑 연립해서 [math( y )]와 [math( \lambda )]를 둘 다 구할 수 있다.
일반적으로, [math( f )]가 여러 변수 [math( y_1, y_2, \cdots , y_m )]의 함수이고, 구속 조건도 [math( g_1, g_2, \cdots , g_n )]로 여러 개라면, [math( J )]가 극값이 되는 방정식은 다음과 같다. (각각의 [math( i )]마다 성립하는 [math( m )]개의 연립 방정식이고, 서로 다른 어떤 함수 [math( \lambda_1, \lambda_2, \cdots , \lambda_n )]가 존재한다.)
[math(\displaystyle \frac{ \partial f }{ \partial y_i } - \frac{ d }{ dx } \frac{ \partial f }{ \partial {y_i}' } + \lambda_j (x) \frac{ \partial g_j }{ \partial y_i } = 0 )] |
그러면 위 [math( m )]개의 연립 방정식과 [math( n )]개의 구속 조건 [math( g_j = 0 )]를 연립해서 [math( y_1, y_2, \cdots, y_m, \lambda_1, \lambda_2, \cdots , \lambda_n )]를 구할 수 있다. ([math( m+n )]개의 식이 있으므로 [math( m+n )]개의 미지수를 풀 수 있다.)
4.2.2. 적분형 구속 조건
범함수 [math( J )]가 있을 때, 가끔 구속 조건이 단순한 [math( y,x )]에 대한 함수가 아니라 다음과 같은 적분으로 정의된 범함수의 꼴일 수도 있다.[math( \displaystyle K = \int_{ x_1 }^{ x_2 }{ g \left\{ y( x ) , y'( x) ; x \right\} } dx )] |
이런 경우 푸는 방법은 더 쉬워진다. 그냥 어떤 실수 [math( \lambda )]가 존재하여 [math( J + \lambda K )]가 극값이 되면 된다. 즉, [math( \int_{ x_1 }^{ x_2 }{ (f + \lambda g) } dx )]가 극값을 가지면 된다. 이때 만족하는 방정식은 다음과 같이 될 것이다.
[math(\displaystyle \frac{ \partial f }{ \partial y } - \frac{ d }{ dx } \frac{ \partial f }{ \partial y' } + \lambda \left( \frac{ \partial g }{ \partial y } - \frac{ d }{ dx } \frac{ \partial g }{ \partial y' } \right) = 0 )] |
4.2.3. 예제
5. δ 표기법
가끔 변분법에서 [math( J)](범함수,functional)에대해서 [math( \frac{\partial x}{\partial \alpha} d \alpha )]를 간단히 [math( \delta \left(\text{델타} \right) )]를 사용해 [math( \delta x )]로 표시하기도 한다. 설명하자면 [math( \delta )]는 무한소만큼 벗어난 매개변수에 대한 차이이다. 예를 들어, 오일러 방정식의 유도 과정에서 다음 식을 보자. (먼저 오일러 방정식 문서를 읽고 와야 이해하기 쉽다)[math( \displaystyle \frac{ \partial J }{ \partial \alpha } = \int_{ x_1 }^{ x_2 }{ \left[ \frac{\partial f}{\partial y} - \frac{d}{dx} \frac{\partial f}{\partial y'} \right] \eta \left( x \right) dx } )] |
여기서 관계식 [math( \eta (x) = \frac{ \partial y }{ \partial \alpha } )]를 대입하고 양변에 [math( d \alpha )]를 곱하면 다음과 같은 형태로 쓸 수 있다.
[math( \displaystyle \frac{ \partial J }{ \partial \alpha } d \alpha = \int_{ x_1 }^{ x_2 }{ \left[ \frac{\partial f}{\partial y} - \frac{d}{dx} \frac{\partial f}{\partial y'} \right] \frac { \partial y }{ \partial \alpha } d \alpha dx } )] |
이것을 [math( \delta )] 표기법으로 쓰면 다음과 같다.
[math( \displaystyle \delta J = \int_{ x_1 }^{ x_2 }{ \left[ \frac{\partial f}{\partial y} - \frac{d}{dx} \frac{\partial f}{\partial y'} \right] \delta y dx } )] |
이때, [math( \delta y )]를 [math( y )]의 변분이라고 한다. 여기서 [math( \delta y )]가 의미하는 것은 실제 경로 [math( y(0,x) )]에서 무한소만큼 살짝 벗어난 경로와의 차이이다. 오일러 방정식에서와 마찬가지로, 이것은 임의의 [math( \delta y )]에 대하여 0이 되어야 한다. 따라서 [math( J )]가 극값을 가진다는 것은 다시 말하면 [math( \delta J = 0 )]로도 쓸 수 있다. 따라서 다음은 모두 동치이다.
[math( \displaystyle \delta J = 0 \Longleftrightarrow \left[ {\frac{ \partial J }{ \partial \alpha }} \right] _ {\alpha = 0} = 0 \Longleftrightarrow \frac{ \partial f }{ \partial y_i } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y_{i}' } \right) = 0 )] |
그런데 여기까지만 보면 그냥 표기법만 달라진 것인데 굳이 왜 [math( \delta )]를 쓰는지 잘 이해가 되지 않을 수 있다. 지금까지 계속 '무한소만큼 벗어난 매개변수에 대한 차이'라는 표현을 썼는데, 이것이 직관적으로 의미하는 것이 무엇인지 알아보자. 예를 들어 [math( \delta y )]는 다음 그림과 같다.
즉, [math( \delta y )]는 아주아주 살짝 벗어난 경로와의 차이라고 이해하면 된다. 이때 [math( J )]의 차이는 [math( \delta J )]이다. 그런데 [math( J )]의 정의를 보자.
[math(\displaystyle J = \int_{ x_1 }^{ x_2 }{ f \left\{ y \left( x \right) , y^\prime \left( x \right) ; x \right\} } dx )] |
전미분: [math(\displaystyle df =\frac{ \partial f }{ \partial y } dy + \frac{ \partial f }{ \partial y' } dy' + \frac{ \partial f }{ \partial x } dx )] 변분: [math(\displaystyle \delta f =\frac{ \partial f }{ \partial y } \delta y + \frac{ \partial f }{ \partial y' } \delta y' )] |
그러면 [math( \delta )]표기법을 써서 오일러 방정식을 증명할 수도 있다.
[math(\displaystyle \delta J = \int_{x_1}^{x_2}{ \delta f dx } = \int_{x_1}^{x_2}{ \left( \frac{ \partial f }{ \partial y } \delta y + \frac{ \partial f }{ \partial y' } \delta y' \right) dx} )] |
그런데, [math( \delta y' = (\delta y)' )]가 성립한다. 따라서 오일러 방정식에서 했던 것처럼 두 번째 항을 부분적분하면
[math(\displaystyle \delta J = \int_{x_1}^{x_2}{ \left( \frac{ \partial f }{ \partial y } - \frac{ d }{ dx } \frac { \partial f }{ \partial y' } \right) \delta y dx} )] |
따라서 [math( \delta J = 0 )]이 되려면 괄호 안이 0이 되어야 하고 오일러 방정식을 얻는다.
다만 주의할 것은, 이 표기법은 그저 편리를 위해 간단히 줄여 쓴 것일 뿐이지 수학적으로 아주 엄밀한 것은 아니라는 것이다. 그래서 이 표기법은 주로 물리학에서 사용한다.