[include(틀:해석학·미적분학)] [목차] == 개요 == {{{+1 Calculus of Variations · [[變]][[分]][[法]]}}} 변분법은 수학의 한 분야로서 [[범함수]]의 최소, 최대를 찾는 방법 등을 가리키는 용어이다. 예를 들어 [math( (x_1,y_1) )] 라는 점과 [math( (x_2,y_2) )] 라는 점을 연결하는 다양한 곡선들의 집합을 생각해 보자. 이들 중 가장 짧은 것, 즉 두 점 사이의 최단경로는 두 점을 연결한 직선이 된다. 직관적으로는 답을 쉽게 알 수 있지만 그것을 실제로 수학적인 엄밀성을 갖춰 증명하는 것은 쉽지 않다. 또 다른 예로, 일정한 길이의 닫힌 곡선으로 만들 수 있는 도형을 생각해 보자. 무수히 많은 가능한 도형들 중 가장 넓이가 큰 것은 원이 될 것이다. 그러나 그 증명을 위해 모든 가능한 도형들을 만들어 넓이를 비교해 볼 수는 없다. 다양한 물리학 문제가 무언가를 최소화하거나 최대화하는 것을 요구하고 있고 고전역학을 기술하기 위해 도입된 페르마의 원리, 해밀턴의 원리 등을 실제로 적용하기 위해서는 최소 경로, 최소 시간, 최소 [[액션]] 등을 주는 운동을 찾아야 하므로 물리학자들에게 오히려 더 친숙한 수학적인 도구라고도 할 수 있다. 변분법 문제를 푸는 방법은 최적화 문제의 1계 조건에서 얻어지는 방정식의 해를 구하는 것이다. 이 1계 조건이 [[오일러 방정식#s-2|오일러-라그랑주 방정식]]이다. 오일러-라그랑주 방정식은 풀기 쉬운 특수한 경우가 아니면 보통 비선형 2계 미분방정식이므로 풀기가 상당히 까다롭다. 또한 오일러-라그랑주 방정식은 최적화의 필요조건이므로 그 해가 충분조건도 만족하는지는 2계 조건을 따져 보아야 알 수 있다. ~~[[미분방정식/풀이#변수분리형(Separation of variables)|변수분리법]][[자쿠와는 다르다! 자쿠와는!|과는 다르다! 변수분리법과는!]]~~ == 역사 == 변분법은 1696년 6월 요한 베르누이가 ''Acta Eruditorum''에 최속 하강 곡선(Brachistochrone curve) 문제를 다른 수학자들에게 난제로 제시하면서 시작되었다. 이 문제에 대해 [[라이프니츠]], [[아이작 뉴턴]], 요한 베르누이 자신, 야콥 베르누이, 로피탈 등이 답을 제출하였다. 그 중에서 야콥 베르누이가 답을 구한 방식이 변분법의 아이디어의 단초가 되었다. 본격적인 변분법에 대한 연구는 [[오일러]]부터 시작되며 변분법이라는 이름도 오일러의 저서에서 비롯된다. 이후에 천재 소년 [[라그랑주]]가 오일러의 저서를 보고 연구하여 자신만의 개선점을 오일러에게 편지로 알리자 오일러가 자신의 방법을 버리고 라그랑주의 방법을 받아들였다는 것은 유명한 일화다.[* 현재의 변분법 과목에서도 라그랑주의 아이디어를 이용해서 1계 조건을 도출하는 방법을 설명한다.] 그래서 1계 조건 방정식이 오일러-라그랑주 방정식이라고 불린다. 이후에 [[카를 구스타프 야코프 야코비|야코비]], [[바이어슈트라스]] 등의 수학자들이 2계 조건에 관한 연구를 진척시켰다. 특히 [[힐베르트의 23가지 문제]]중 마지막 변분법에 대한 문제는 그 문제를 설명하면서 [[힐베르트]]가 2계 충분 조건의 기존 성과를 정리하고 자신의 연구결과를 덧붙이는 것을 발표하는 것으로 사실상 문제 아닌 문제가 되어버렸다. 이후 변분법은 좀더 유연한 [[최적제어론]](Optimal control)과 [[동적 계획법]](Dynamic programming)으로 계승되어 발전된다. == 변분법의 기본 보조정리 == 변분법의 기본 보조정리(Fundamental Lemma of Calculus of Variations)는 [[오일러-라그랑주 방정식]]의 증명에 있어서 핵심적인 보조정리이다. === 진술 === [math(f\,:\, [a,\,b] \rightarrow \mathbb{R})]이 [[연속함수]]이고, 컴팩트 지지이자 매끄러운 임의의 함수 [math(\eta(x))]에 대하여 다음이 성립한다고 하자, ||<#ffffff><table bordercolor=#ffffff><table width=100%> [math(\displaystyle \int_{a}^{b} f(x) \eta(x)\,dx=0 )] || 그러면, [math(f \left( x \right) = 0)]이다. 참고로, 매끄러운 함수는 무한번 미분가능한 함수를 뜻하고, 컴팩트 지지 함수는 [math(\{x\in \mathbb{R}|\eta(x)≠0\})]의 폐포(closure)가 유계 닫힌집합인것을 의미한다. 컴팩트 지지 대신에 좀 더 약한 조건인 [math(c \notin (a,\,b))]인 모든 점 [math(c)]에 관해 [math(\eta(c)=0)]인 조건을 넣기도 한다. === 증명 === WLOG, 결론의 역을 가정하자. 즉, [math(f \left( x \right) \neq 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)]이라 하자. 이때, compactly supported smooth한 함수 [math(\eta \left( x \right) = {\left( x - \xi_1 \right)}^4 {\left( x -\xi_2 \right)}^4 {\bold{1}}_{\mathcal{N}} \left( x \right))]이라 하자. 그러면, [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) = 0)]이다. == [[오일러 방정식]] == 변수를 하나만 가지는 함수 [math(y\left(x\right))]와 그 도함수 [math(y^\prime \left(x\right))]를 변수로 가지는 어떤 [[범함수]](functional) ||<tablealign=center><#FFFFFF> [math(\displaystyle J = \int_{ x_1 }^{ x_2 }{ f \left\{ y \left( x \right) , y^\prime \left( x \right) ; x \right\} } dx )] || 의 극값(극소 또는 극대)가 될 때, [math( f )]가 만족하는 미분방정식은 다음과 같다. ||<tablealign=center><#FFFFFF> [math(\displaystyle \frac{ \partial f }{ \partial y } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y' } \right) = 0 )] || 이를 [[오일러 방정식]]이라 한다. 증명 및 자세한 내용은 [[오일러 방정식]] 문서에 있다. === [[다변수함수]]의 [[오일러 방정식]] === 범함수 [math( J )]가 [math( y(x) )]뿐만 아니라 다른 변수 [math( y_1 (x), y_2 (x), y_3 (x), \cdots )] 등을 가질 수도 있다. 이때는 단순히 각 변수에 대해 오일러 방정식을 여러 번 써 주면 된다. 예를 들어 ||<tablealign=center><#FFFFFF> [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 )]가 만족하는 미분방정식은 다음 연립방정식이다. ||<tablealign=center><#FFFFFF> [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 )]는 다음 연립방정식이 성립한다. ||<tablealign=center><#FFFFFF> [math(\displaystyle \frac{ \partial f }{ \partial y_i } - \frac{ d }{ dx }\left( \frac{ \partial f }{ \partial y_{i}' } \right) = 0 )] || === 구속 조건이 있는 오일러 방정식 === [[라그랑주 승수법]]에 의하면, 어떤 조건 [math( g(x,y,z)=0 )]를 만족할 때 [math( f(x,y,z) )]의 극값의 좌표는, 어떤 실수 [math( \lambda )]가 존재하여 다음 식을 만족한다. ||<tablealign=center><#FFFFFF> [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 )]를 구하면 된다. 구속 조건이 있는 오일러 방정식도 비슷한 방법으로 풀 수 있다. ==== 일반 구속 조건 ==== 비슷한 원리로, 구속 조건 [math( g(y,x)=0 )]를 만족하는 범함수 [math( J = \int_{ x_1 }^{ x_2 }{ f \left\{ y( x ) , y'( x) ; x \right\} } dx )]가 극값이 될 때, 어떤 함수 [math( \lambda (x) )]가 존재하여 다음 방정식을 만족한다. ||<tablealign=center><#FFFFFF> [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 )]가 존재한다.) ||<tablealign=center><#FFFFFF> [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 )]개의 미지수를 풀 수 있다.) ==== 적분형 구속 조건 ==== 범함수 [math( J )]가 있을 때, 가끔 구속 조건이 단순한 [math( y,x )]에 대한 함수가 아니라 다음과 같은 적분으로 정의된 범함수의 꼴일 수도 있다. ||<tablealign=center><#FFFFFF> [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 )]가 극값을 가지면 된다. 이때 만족하는 방정식은 다음과 같이 될 것이다. ||<tablealign=center><#FFFFFF> [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 )] || ==== 예제 ==== == δ 표기법 == 가끔 변분법에서 [math( \frac{\partial x}{\partial \alpha} d \alpha )]를 간단히 [math( \delta x )]로 표시하기도 한다. 설명하자면 [math( \delta )]는 무한소만큼 벗어난 매개변수에 대한 차이이다. 예를 들어, [[오일러 방정식#s-2.2|오일러 방정식의 유도 과정]]에서 다음 식을 보자. (먼저 [[오일러 방정식]] 문서를 읽고 와야 이해하기 쉽다) ||<tablealign=center><#FFFFFF>[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 )]를 곱하면 다음과 같은 형태로 쓸 수 있다. ||<tablealign=center><#FFFFFF>[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 )] 표기법으로 쓰면 다음과 같다. ||<tablealign=center><#FFFFFF>[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 )]로도 쓸 수 있다. 따라서 다음은 모두 동치이다. ||<tablealign=center><#FFFFFF>[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 )]는 다음 그림과 같다. [[파일:변분법_2.png|width=240&align=center]] 즉, [math( \delta y )]는 아주아주 살짝 벗어난 경로와의 차이라고 이해하면 된다. 이때 [math( J )]의 차이는 [math( \delta J )]이다. 그런데 [math( J )]의 정의를 보자. ||<tablealign=center><#FFFFFF> [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( y(x), y'(x), x )]의 함수이다. 그런데 [math( y(x), y'(x) )]는 또 [math( x )]의 함수이다. 이때, [math( y(x), y'(x) )]를 '''variable'''이라 하고, [math( x )]를 '''parameter'''라고 한다. 그런데 변분이란 [math( \alpha )]에 대한 작은 변화를 보는 것이다. 알다시피 [math( y, y' )]만이 [math( \alpha )]의 함수이고 [math( x )]는 독립이다. 즉 parameter인 [math( x )]는 제외하고 variable인 [math( y )]와 [math( y' )]의 변화만 보겠다는 것이다. 즉 변분은 일종의 variable만 고려하는 [[전미분]]과 비슷하다. 그래서 변분법을 영어로 calculus of '''variations'''라고 하는 것이다. 따라서 전미분과의 차이는 다음과 같다. ||<tablealign=center><#FFFFFF> 전미분: [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 )]표기법을 써서 오일러 방정식을 증명할 수도 있다. ||<tablealign=center><#FFFFFF> [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)' )]가 성립한다. 따라서 오일러 방정식에서 했던 것처럼 두 번째 항을 부분적분하면 ||<tablealign=center><#FFFFFF> [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이 되어야 하고 오일러 방정식을 얻는다. 다만 주의할 것은, 이 표기법은 그저 편리를 위해 간단히 줄여 쓴 것일 뿐이지 수학적으로 아주 엄밀한 것은 아니라는 것이다. 그래서 이 표기법은 주로 [[물리학]]에서 사용한다. [[분류:한자어]][[분류:해석학(수학)]]