1. 개요
범함수(汎函數, functional)는 함수를 입력받아 스칼라(즉 수 하나)를 내어놓는 함수를 말한다. 즉 함수 집합을 정의역으로, 실수집합 혹은 복소수집합을 공역으로 삼는다. 사실 정의역이 함수의 집합인지는 크게 중요한 요소는 아니며, 오히려 일반적인 벡터공간을 정의역으로 삼는 정의가 더욱 자연스럽다. 함수, 행렬, 수열 등을 모두 벡터로 취급할 수 있기 때문이다. 오히려 공역이 1차원 스칼라(실수체 혹은 복소수체)인 것이 범함수로서 더 중요한 요건.[1]일반적인 함수는 수를 입력받아 수가 결과물로 나온다. 예를 들어 [math( f(x) = x^2 - 4x + 5 )] 라는 함수가 있다면 [math( x = 3 )] 을 입력하였을 때 [math( f(x) = 2 )] 라는 결과가 나온다.
여기에서 수 대신 함수를 입력받는 함수[2]를 생각할 수 있는데, 이를 특별히 범함수(functional) 라고 이름붙인 것이다. 예를 들어 [math(\displaystyle J [y] = \int_0^1 \left( y(t)^2 - 4ty(t) + 5t^2 \right) dt )] 로 정의하면 [math( y )]가 어떤 함수냐에 따라 [math( J )]의 값이 바뀌게 될 것이다. [math( y:x\mapsto 2x )] 라면 [math(\displaystyle J [y] = \int_0^1 \left( 4t^2 - 8t^2 + 5t^2 \right) dt =\dfrac 13)] 이 된다.
자주 사용되는 범함수들은 위와 같은 형태의 적분 내부에 [math( y )] 만이 아니라 그 일차미분 [math( y' )]가 들어가는 형태, 즉 [math(\displaystyle J = \int_{ x_1 }^{ x_2 } f \{ y, y' ; x\} dx )] 와 같은 형태가 많다.
2. 예시
측도 [math(\mu)]를 고정했을 때 다음과 같은 정적분이 단적인 예시이다.[3][math(\displaystyle f\mapsto \int fd\mu.)]
고등학교 수학의 관점에서는, 함수 [math(g)]를 고정했을 때, 함수 [math(f)]를
[math(\displaystyle\int_{-\infty}^{\infty}f(x)g(x)dx)]
로 보내는 함수를 예로 들 수 있다. 사실 이것이 힐베르트 공간 내 실함수의 내적을 의미한다.
또한 벡터 [math(\mathbf{v})]를 고정했을 때 내적 [math(\mathbf{u}\mapsto \langle \mathbf{u}, \mathbf{v}\rangle)]도 범함수의 일종이다. 특히 리스 표현정리(Riesz representation theorem)에 의해, 내적공간의 모든 선형범함수(linear functional)는 이와 같은 내적의 꼴을 가짐이 알려져 있다.[4] 함수공간에서 내적을 [math(\displaystyle\langle f, g\rangle = \int f(x)g(x) dx)] 등과 같이 정의할 수 있음을 생각해보면, (적절한) 함수공간의 모든 (연속) 선형범함수는 위 문단처럼 정적분의 꼴로 표현된다는 강력한 결과가 도출된다.[5]
반면 미분과 부정적분 등 함수의 변환은 일반적으로 범함수라 이르지 않는다. 함숫값이 스칼라가 아니라 함수이기 때문이다.[6] 단, '특정 점 [math(x_0)]에서의 미분값'을 의미하는 함수
[math(f\mapsto f'(x_0))]
는 그 결과가 스칼라이기 때문에 범함수라 부를 수 있다.
확률 변수의 기댓값 또한 범함수의 일종이다. 이는 확률 변수가 (표본 공간에서 실수로 가는) 함수이기 때문이다. 즉, (확률변수 [math(X)]가 확률분포 [math(P)]를 따를 때) 기댓값 연산 [math(E(\cdot))]는 '함수' [math(X: \omega\mapsto X(\omega))]를 [math(\int X(\omega)dP(\omega))]로 보내는 (선형) 범함수다. 덜 추상적으로 생각하고 싶다면, (연속) 확률 변수 [math(X)]의 확률밀도함수를 [math(f_X)]라 할 때, 기댓값은
[math(\displaystyle E:X\mapsto \int_{\mathbb R} \rm id_{\mathbb R}\,\it f_X)]
로 정의되는 범함수이다.
수능 모의고사에 자주 나오는 "어떤 함수의 불연속점의 개수" 혹은 "미분불가능점의 개수" 또한 범함수이다.
[math( (x_1,y_1) )] 이라는 점과 [math( (x_2,y_2) )] 라는 점을 연결하는 미분 가능한 함수 [math( y(x) )] 를 생각해 보자. 이러한 함수들은 무수히 많이 존재할 것이고, 이 함수로 표현되는 곡선의 전체 길이는 다음과 같다.
[math(\displaystyle J = \int_{x_1}^{x_2} {\sqrt{1+{y^\prime}^2}} dx )]
두 점 사이의 최단경로, 즉 이 곡선의 길이를 최소화시키는 함수가 무엇이냐는 질문의 답이 두 점을 연결한 직선이라는 것은 초등학생도 직관적으로 쉽게 추론할 수 있지만, 그것을 실제로 증명하는 것은 절대로 쉽지 않다. 일반적인 범함수의 최소/최대를 찾는 방법으로 도입된 것이 오일러-라그랑주 방정식이다. 자세한 것은 해당 문서를 참조하기 바란다.
3. 용도
위에서 예로 든 것과 같이 다양한 수학, 물리학에서의 개념과 최소화 문제가 범함수로 표현이 된다.높은 레벨의 고전역학에서 사용되는 라그랑지언의 시간적분인 작용이 범함수의 일종이다. 작용을 최소화하는 경로를 찾는 방정식을 오일러-라그랑주 방정식이라고 부른다. 양자장론에서도 그 출발점은 언제나 라그랑지언 밀도의 4차원 적분으로 표현되는 적절한 작용이다.
해석학 중에서 함수해석학(functional analysis)이라는 영역은 함수 공간과 그 위에서 정의된 작용소를 연구한다. 이 영역에서 중요하게 취급되는 힐베르트 공간, 바나흐 공간 위에서 정의된 노름과 내적이 바로 범함수다. 그렇기 때문에 일각에서는 이처럼 범함수를 다루는 이 영역이 '함수해석학'으로 번역된 것은 잘못이라는 주장을 펼치고 있다. 실제로 중국에서는 "functional"을 명사로 보고 "泛函分析"(범함수 해석학)로 번역했다.
[1] 다만 컴퓨터공학 등에서는 반대로 함수를 입력으로 받는다는 점을 중요시 여기고 출력이 무엇이든 상관하지 않기도 한다. 이는 두 분야가 중요하게 여기는 측면의 차이에 기반한다. 수학에서는 공역이 벡터공간이 기반하고 있는 체(the underlying field)가 될 때 (선형) 범함수가 원 벡터공간과 이루는 쌍대성을 밝히고 그 성질을 규명하는 데 초점이 맞추어진다. 반면 컴퓨터공학에서는 int, float, boolean 등의 일반적인 변수형태가 아닌 "함수"라는 특수한 형태의 변수를 처리하는 또다른 함수를 어떻게 기계상에서 구현할지, 그 때 발생하는 여러 문제(예컨대 클로저 등)를 어떻게 처리할지에 관심을 더 가진다.[2] 함수의 합성 [math(f(g(x)) = (f \circ g) (x))] 과는 다른 개념이다. 합성함수는 함수를 받은 결과 또 다른 함수가 출력되는 반면, 범함수는 아래를 보듯 함수를 받고 수를 출력한다.[3] 참고로 여기서 [math(x \mapsto y)]는 입력 [math(x)]를 출력 [math(y)]로 보내는 함수 자체를 의미한다. 함수의 정의역과 공역을 나타내는 [math(f: X \to Y)] 표기와는 다름에 유의.[4] 무한차원의 경우 몇가지 조건이 추가된다.[5] 물론 함수공간은 일반적으로 무한차원이므로 몇 가지 까다로운 조건이 더 붙는다.[6] 부정적분의 경우 적분상수의 존재 때문에 엄밀하게는 함수의 집합을 내놓는다.