1. 개요
汎函數 / functional[1]함수를 입력받아 스칼라(즉 수 하나)를 내어놓는 함수를 말한다. 즉 함수 집합을 정의역으로, 실수집합 혹은 복소수집합을 공역으로 삼는 경우다. 사실 정의역이 함수의 집합인지는 크게 중요한 요소는 아니며, 오히려 일반적인 벡터공간을 정의역으로 삼는 정의가 더욱 자연스럽다. 함수, 행렬, 수열 등을 모두 벡터로 취급할 수 있기 때문이다. 오히려 공역이 1차원 스칼라인 것이 범함수로서 더 중요한 요건.[2]
일반적인 함수는 수를 입력받아 수가 결과물로 나온다. 예를 들어 [math( f(x) = x^2 - 4x + 5 )] 라는 함수가 있다면 [math( x = 3 )] 을 입력하였을 때 [math( f(x) = 2 )] 라는 결과가 나온다.
여기에서 수 대신 함수를 입력받는 함수[3]를 생각할 수 있는데, 이를 특별히 범함수(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)]를 고정했을 때 다음과 같은 정적분이 단적인 예시이다.[4][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)는 이와 같은 내적의 꼴을 가짐이 알려져 있다.[5] 함수공간에서 내적을 [math(\displaystyle\langle f, g\rangle = \int f(x)g(x) dx)] 등과 같이 정의할 수 있음을 생각해보면, (적절한) 함수공간의 모든 (연속) 선형범함수는 위 문단처럼 정적분의 꼴로 표현된다는 강력한 결과가 도출된다.[6]
반면 미분과 부정적분 등 함수의 변환은 일반적으로 범함수라 이르지 않는다. 함숫값이 스칼라가 아니라 함수이기 때문이다.[7] 단, '특정 점 [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차원 적분으로 표현되는 적절한 액션이다.
4. 관련 문서
[1] 이 단어는 보통 형용사형으로 쓰이지만 범함수를 의미할 때는 명사다.[2] 다만 컴퓨터공학 등에서는 반대로 함수를 입력으로 받는다는 점을 중요시 여기고 출력이 무엇이든 상관하지 않기도 한다. 이는 두 분야가 중요하게 여기는 측면의 차이에 기반한다. 수학에서는 공역이 벡터공간이 기반하고 있는 체(the underlying field)가 될 때 (선형) 범함수가 원 벡터공간과 이루는 쌍대성을 밝히고 그 성질을 규명하는 데 초점이 맞추어진다. 반면 컴퓨터공학에서는 int, float, boolean 등의 일반적인 변수형태가 아닌 "함수"라는 특수한 형태의 변수를 처리하는 또다른 함수를 어떻게 기계상에서 구현할지, 그 때 발생하는 여러 문제(예컨대 클로저 등)를 어떻게 처리할지에 관심을 더 가진다.[3] 함수의 합성 [math(f(g(x)) = (f \circ g) (x))] 과는 다른 개념이다. 합성함수는 함수를 받은 결과 또 다른 함수가 출력되는 반면, 범함수는 아래를 보듯 함수를 받고 수를 출력한다.[4] 참고로 여기서 [math(x \mapsto y)]는 입력 [math(x)]를 출력 [math(y)]로 보내는 함수 자체를 의미한다. 함수의 정의역과 공역을 나타내는 [math(f: X \to Y)] 표기와는 다름에 유의.[5] 무한차원의 경우 몇가지 조건이 추가된다.[6] 물론 함수공간은 일반적으로 무한차원이므로 몇 가지 까다로운 조건이 더 붙는다.[7] 부정적분의 경우 적분상수의 존재 때문에 엄밀하게는 함수의 집합을 내놓는다.