함수

섬네일|함수는 입력값에 따라 출력값을 만들어 내는 ‘블랙 박스’와 같다.
수학에서 **함수**(函數, ) 또는 **사상**(寫像, )은 어떤 집합의 각 원소를 다른 어떤 집합의 유일한 원소에 대응시키는 이항 관계이다. 대략적으로, 한 변수의 값에 따라 다른 한 변수의 값이 정해질 때, 후자는 전자의 함수가 된다.

## 정의
섬네일|함수 <math>f</math>의 정의역 <math>X</math>, 공역 <math>Y</math>, 치역 <math>f(X)</math>
**함수** f는 다음과 같은 튜플 (X,Y,\operatorname{graph}f)이다.
* X는 집합이며, 이를 f의 **[[정의역]]**이라고 한다.
* Y는 집합이며, 이를 f의 **[[공역]]**이라고 한다.
* \operatorname{graph}f는 곱집합 X\times Y의 부분 집합이며, 이를 f의 **[[함수의 그래프|그래프]]**라고 한다.
이 튜플이 다음 조건을 만족시켜야지만 함수라고 한다.
* 임의의 x\in X에 대하여, (x,y)\in\operatorname{graph}f인 y\in Y가 유일하게 존재한다. 이러한 y를 f(x)라고  쓴다.
다시 말해, 함수는 정의역의 각 원소를 정확히 하나의 공역 원소에 대응시킨다.

표기
:f\colon X\to Y
는 f가 정의역 X, 공역 Y를 갖는 함수라는 뜻이다. 표기
:f\colon x\mapsto y
는 f(x)=y와 같은 뜻이다.

함수를 정의역과 공역을 생략하여 다음과 같이 표기하기도 한다.
:f
:f(x)
:f(x)\qquad(x\in X)
:y=f(x)

## 예
만약 어떤 가족의 각 구성원 x에 대하여, f(x)가 x의 생년월일이라면, f(x)는 x의 함수가 된다. 이는 각 가족 구성원이 일년 중 어느 한 날짜에 태어났고 생일이 두 번인 경우는 없기 때문이다. 이 경우 정의역은 가족 구성원의 집합, 공역은 모든 날짜의 집합으로 취할 수 있다.

함수
:f\colon\{1,2,3\}\to\{\mathrm A,\mathrm B,\mathrm C,\mathrm D\}
:f\colon 1\mapsto\mathrm D
:f\colon 2\mapsto\mathrm A
:f\colon 3\mapsto\mathrm B
는 정의역이 \{1,2,3\}, 공역이 \{\mathrm A,\mathrm B,\mathrm C,\mathrm D\}이며, 1, 2, 3을 각각 \mathrm D, \mathrm A, \mathrm B로 대응시키는 이항 관계를 나타낸다.

\mathbb R가 실수의 집합이라고 하자. 그렇다면
:f\colon\mathbb R\to\mathbb R
:f\colon x\mapsto x^2
는 각 실수를 제곱시키는 함수이다. 반면, 각 실수에 그보다 큰 실수를 대응시키는 이항 관계는 함수가 아니다. 이는 각 실수보다 큰 실수는 무한히 많으므로 유일하지 않기 때문이다.

\{c\}가 하나의 원소만을 갖는 집합이라고 하자. 그렇다면 임의의 집합 X에 대하여, X를 정의역, \{c\}를 공역으로 하는 유일한 함수
:f\colon X\to\{c\}
:f\colon x\mapsto c
가 존재한다.

\varnothing이 공집합이라고 하자. 그렇다면 임의의 집합 Y에 대하여, \varnothing을 정의역, Y를 공역으로 하는 유일한 함수
:f\colon\varnothing\to Y
가 존재한다. Y=\varnothing일 경우 이는 공역이 공집합인 유일한 함수이다.

## 종류
### 단사 함수와 전사 함수


Injection.svg|단사 함수의 예
Surjection.svg|전사 함수의 예
Bijection.svg|전단사 함수의 예

함수 f\colon X\to Y에 대하여, 다음과 같은 성질들을 정의할 수 있다.
* **[[단사 함수]]**: 임의의 정의역 원소 x,y\in X에 대하여, 만약 f(x)=f(y)라면, x=y이다. 즉, 서로 다른 정의역 원소는 서로 다른 공역 원소에 대응한다.
* **[[전사 함수]]**: 임의의 공역 원소 y\in Y에 대하여, y=f(x)인 정의역 원소 x\in X가 존재한다. 즉, f의 치역은 f의 공역과 같다.
* **[[전단사 함수]]**: f는 단사 함수이며, 전사 함수이다. 이는 f가 역함수를 갖는 것과 동치이다.

### 특별한 정의역·공역을 갖는 함수
[섬네일|[감마 함수의 그래프]]
특별한 정의역 또는 공역을 갖는 함수는 특별한 이름이 붙는다.

특별한 정의역을 갖는 함수에 대하여 추가적인 성질들을 정의할 수 있다. 예컨대 두 위상 공간 사이의 함수에 대하여 연속 함수의 개념을 정의할 수 있으며, 두 매끄러운 다양체 사이의 함수의 각종 매끄러움 성질들을 정의할 수 있다. 실변수 실숫값 함수 f\colon U\to\mathbb R (U는 \mathbb R의 열린집합)의 경우 추가로 다음과 같은 성질들을 정의할 수 있다.
* 단조함수
** 증가함수: 임의의 x,y\in U에 대하여, 만약 x\le y라면, f(x)\le f(y). 즉, f의 그래프는 오른쪽으로 갈수록 상승하는 곡선이다. 예를 들어, U=\mathbb R, x\mapsto 2x
** 감소함수: 임의의 x,y\in U에 대하여, 만약 x\le y라면, f(x)\ge f(y). 즉, f의 그래프는 오른쪽으로 갈수록 하강한다. 예를 들어, U=\mathbb R, x\mapsto-2x
* 홀함수와 짝함수
** 홀함수: 임의의 x\in U에 대하여, -x\in U이며 f(-x)=-f(x). 즉, f의 그래프는 원점에 대하여 대칭이다. 예를 들어, U=\mathbb R, x\mapsto x^3
** 짝함수: 임의의 x\in U에 대하여, -x\in U이며 f(-x)=f(x). 즉, f의 그래프는 y축에 대하여 대칭이다. 예를 들어, U=\mathbb R, x\mapsto x^2
* 주기 함수: 임의의 x\in U에 대하여, x+T\in U이며 f(x+T)=f(x). 즉, f의 그래프는 x축 방향의 평행 이동 대칭을 갖는다. 대표적으로 모든 삼각 함수는 주기 함수다.

### 조각마다 정의된 함수
[섬네일|이 함수는 불연속점 <math>x_0</math>을 가지지만 각 구간 <math>[-\infty,x_0)</math>, <math>x_0,\infty)</math>에서 매끄럽다.
두 매끄러운 다양체 X,Y 사이의 함수 f\colon X\to Y에 대하여, 다음 두 조건을 만족시키는 유한 개의 서로소 집합 X_1,\dotsc,X_n\subset X이 존재한다면, f를 **조각마다 〜 함수**라고 한다.
* X=X_1\cup\cdots\cup X_n
* 각 i=1,\dotsc,n에 대하여, D_i\subseteq X_i\subseteq\operatorname{cl}D_i인 영역 D_i\subseteq X가 존재한다.
* 각 i=1,\dotsc,n에 대하여, f\restriction X_i는 〜 함수이다.
특히, 정의역이 실수 구간인 경우, 정의역은 작은 구간들로 분할되어야 한다. 예를 들어, [0,1]\subseteq\mathbb R의 분할의 한 가지 예는 다음과 같다.
:[0,1]=[0,1/4)\sqcup[1/4,1/2)\sqcup\{1/2\}\sqcup[1/2,1]
예를 들어, 실수 절댓값 함수는 조각마다 일차 함수이다. 부호 함수는 조각마다 상수 함수이다. 함수
:f\colon\mathbb R\to\mathbb R
:f\colon x\mapsto\begin{cases}x^2&x
는 조각마다 연속 함수이다.

### 다가 함수

섬네일|다가 함수의 예
다가 함수 f\colon X\to Y의 정의는 함수의 조건을 다음과 같이 약화시켜 얻는다.
* 임의의 x\in X에 대하여, (x,y)\in\operatorname{graph}f인 y\in Y가 적어도 하나 존재한다.
즉, 다가 함수는 정의역의 각 원소를 적어도 하나의 공역 원소에 대응시키지만, 함수와 달리 여러 개의 공역 원소에 대응시킬 수 있다. 다가 함수 f\colon X\to Y는 일반적으로 X에서 Y로 가는 함수가 아니지만 멱집합으로 가는 함수
:f\colon X\to\mathcal P(Y)
와 동치이다.

복소수의 거듭제곱은 대표적인 다가 함수이다. 특히 음이 아닌 실수의 제곱근
:f\colon[0,\infty)\to\mathbb R
:f\colon x\mapsto\pm\sqrt x
은 (양의 실수가 두 개의 제곱근을 가지므로) 다가 함수이다.

일반적인 함수를 다가 함수와 구별하기 위해 **일가 함수**(一價函數, )라고 부르기도 한다.

### 부분 정의 함수

부분 정의 함수 f\colon X\to Y는 다음과 같이 약화된 조건을 사용하여 정의한다.
* 임의의 x\in X 및 y,z\in Y에 대하여, 만약 (x,y),(x,z)\in\operatorname{graph}f라면 y=z이다.
즉, X의 각 원소는 유일한 Y의 원소에 대응하거나, 어떤 Y의 원소에도 대응하지 않는다. 부분 정의 함수 f\colon X\to Y는 일반적으로 X에서 Y로 가는 함수가 아니다. 그러나 이는 다음과 같은 꼴의 함수와 동치이다.
:f\colon X\cup\{\bullet_X\}\to Y\cup\{\bullet_Y\}
:f(\bullet_X)=\bullet_Y
:\bullet_X\not\in X
:\bullet_Y\not\in Y

예를 들어, 역수를 취하는 함수
:f\colon\mathbb R\to\mathbb R
:f\colon x\mapsto\frac 1x
는 (0의 역수가 정의되지 않으므로) \mathbb R 위의 부분 정의 함수이다. 이 부분 정의 함수는 정의역을 0이 아닌 실수로 축소하거나 공역에 (음과 양을 구분하지 않는) 무한대 \widehat\infty를 추가하여 함수로 만들 수 있다.

일반적인 함수를 부분 정의 함수와 구별하기 위해 **전함수**(全函數, )라고 부르기도 한다.

## 연산
### 상과 원상

집합 A\subseteq X 및 함수 f\colon X\to Y에 대하여,
:\{f(a)\colon a\in A\}
를 A의 **상**이라고 하며, f(A)로 쓴다. 집합 B\subseteq Y 및 함수 f\colon X\to Y에 대하여,
:\{x\in X\colon f(x)\in B\}
를 B의 **원상**이라고 하며, f^{-1}(B)로 쓴다. 정의역의 상 f(X)을 **[[치역]]**이라고 한다.

예를 들어, 사인 함수
:\sin\colon\mathbb R\to\mathbb R
의 치역은 [-1,1]이며, \{1\}의 원상은
:\left\{\left(2n+\frac 12\right)\pi\colon n\in\mathbb Z\right\}
이다. 여기서 \mathbb Z는 정수의 집합, \pi는 원주율이다.

### 역함수

함수 f\colon X\to Y에 대하여, 다음 두 조건이 서로 동치이다.
* 임의의 y\in Y에 대하여, y=f(x)인 x\in X가 유일하게 존재한다.
* f는 전단사 함수이다.
이 경우 정의역과 공역이 뒤바뀌고 대응의 방향이 반대로 바뀐 함수
:f^{-1}\colon Y\to X
:f^{-1}\colon f(x)\mapsto x
를 생각할 수 있다. 이를 f의 **[[역함수]]**라고 한다.

예를 들어, 지수 함수
:\exp\colon\mathbb R\to(0,\infty)
는 전단사 함수이며, 그 역함수는 로그 함수
:\ln\colon(0,\infty)\to\mathbb R
이다.

### 합성

첫째 함수의 공역과 둘째 함수의 정의역이 같은 두 함수 f\colon X\to Y 및 g\colon Y\to Z에 대하여, X의 원소를 먼저 f를 통해 Y의 원소에 대응시키고, 다시 g에 따라 Z의 원소로 대응시키는 함수
:g\circ f\colon X\to Z
:g\circ f\colon x\mapsto g(f(x))
를 생각할 수 있다. 이를 f와 g의 **[[함수의 합성|합성]]**이라고 한다.

예를 들어, 만약
:X=Y=Z=\mathbb R
:f\colon x\mapsto 2x
:g\colon y\mapsto y+1
일 경우
:g\circ f\colon x\mapsto 2x+1
이다.

### 제한

함수 f\colon X\to Y의 정의역의 부분 집합 A\subseteq X으로의 **제한**(制限, )은 다음과 같은 함수를 일컫는다.
:f\restriction A\colon A\to Y
:f\restriction A\colon x\mapsto f(x)
즉, f의 대응 규칙을 유지한 채 정의역만 A로 줄인 함수이다.

### 호환되는 함수족으로 유도되는 함수
함수족 (f_i\colon X_i\to Y_i)_{i\in I}가 다음 조건을 만족시킨다고 하자.
* 임의의 i,j\in I 및 x\in X_i\cap X_j에 대하여, f_i(x)=f_j(x)
그렇다면 함수들을 정의역의 합집합에서 공역의 합집합으로 가는 하나의 함수
:f\colon\bigcup_{i\in I}X_i\to\bigcup_{i\in I}Y_i
:f\restriction X_i=f_i
로 합칠 수 있다.

### 점별 연산

정의역이 같은 함수족 (f_i\colon X\to Y_i)_{i\in I}에 대하여, 공역의 곱집합으로 가는 함수
:(f_i)_{i\in I}\colon X\to\prod_{i\in I}Y_i
:(f_i)_{i\in I}\colon x\mapsto(f_i(x))_{i\in I}
를 정의할 수 있다.

특수한 공역을 갖는 함수에 대하여 점별 연산을 정의할 수 있으며, 이는 위 함수와 공역 위 연산의 합성을 통해 나타낼 수 있다. 예를 들어, 두 실숫값 함수 f,g\colon X\to\R에 대하여, (f,g)\colon X\to\mathbb R^2와 실수의 덧셈의 합성을 f와 g의 **점별합**(點別合, ) f+g라고 하며, 실수의 곱셈과의 합성을 f와 g의 **점별곱**(點別-, ) fg라고 한다. 구체적으로 이들은 각각 다음과 같다.
:f+g\colon X\to\mathbb R
:f+g\colon x\mapsto f(x)+g(x)
:fg\colon X\to\mathbb R
:fg\colon x\mapsto f(x)g(x)

## 역사
삼각함수와 같은 특정 함수에 대한 연구는 오래전부터 있어 왔다. 16세기 라이프치히 대학교의 수학 교수이자 코페르니쿠스의 《천구의 회전에 관하여》가 출간되는데 큰 역할을 하였던 레티쿠스는 1596년 《팔라티누스 삼각형 서(書)》()에서 삼각함수표를 정리하여 발표하기도 하였다. 그러나 당시의 연구는 현재의 함수 정의에 확립되어 있는 관계에 대한 개념이 없이 단순히 계산의 편의를 도모하기 위한 것이었다. 한편, 르네 데카르트는 데카르트 좌표계를 이용하여 오늘날 함수의 관계식에 해당하는 방정식을 그래프로 표현하는 방법을 제시하였다.

17세기에 도입한 대부분의 함수는 함수 개념이 충분히 인식되기 이전에는 곡선, 특히 운동 궤적으로서 연구되었다. 1667년, 제임스 그레고리()는 논문 《원과 쌍곡선의 구적법에 대하여》()에서 함수를 다른 양들에 대한 대수 연산 및 극한 연산을 통해 얻는 양으로 정의하였다. 1665년부터, 아이작 뉴턴은 줄곧 “플루언트”()라는 용어로 변수 간 관계를 지칭하였다. 1673년, 고트프리트 빌헬름 라이프니츠는 오늘날 쓰이는 용어인 “함수”()을 곡선 위 점에 따라 변화하는 양으로 정의하였다. 1697년, 요한 베르누이는 함수를 상수와 변수가 대수 연산 및 초월 연산을 통해 구성하는 양으로 정의하였으며, 1698년에 라이프니츠의 용어를 채택하였다. 1714년, 라이프니츠는 저서 《역사》()에서 함수를 변수에 의존하는 양으로 정의하였다. 그러나, 그는 여태 미분 가능한 함수만을 다루었다.

레온하르트 오일러는 1734년에 오늘날 쓰이는 표기법 f(x)를 도입하였다. 또한, 오일러는 1748년에 저서 《무한 해석 입문》()에서 함수를 변수와 상수로 구성된 임의의 해석적 수식으로 정의하였으며, 1775년에 저서 《미분학 입문》()에서 변수에 의존하며 그 변화에 따라 변화하는 또 다른 변수로 정의하였다.

1797년, 실베스트르 프랑수아 라크루아()는 저서 《미분과 적분에 대하여》()에서 수식으로 표현될 필요가 없는, 더 넓은 함수의 개념을 도입하였으며, 5차 방정식의 근이 5차 방정식의 계수의 함수라는 예시를 들었다. 1811~15년, 조제프루이 라그랑주는 저서 《역학 해석》()에서 “함수”라는 용어를 거의 모든 유형의 함수에서 사용하였다.

조제프 푸리에는 함수가 해석적 수식으로 표현될 수 있을 필요가 없다고 주장하였으나, 동시에 모든 함수는 푸리에 급수로 표현될 수 있다고 주장하였다. 그러나 그는 임의의 유한 구간에서 유한 개의 불연속점만을 갖는 함수만을 다루었다.

1837년, 페터 구스타프 르죈 디리클레는 논문 《완전히 임의인 함수의 사인 및 코사인 함수 표현에 대하여》()에서, y가 x의 함수라는 것을 x의 주어진 구간에서의 임의의 값에 y의 유일한 값이 대응하는 것으로 정의하였으며, y가 x에 따라 어떤 법칙을 통해 결정되거나, 수학 공식으로 표현될 필요는 없다고 설명하였다. 이는 오늘날에도 사용되는 정의이다.

함수의 현대적 정의는 게오르크 칸토어가 제기한 집합론에 기반한 것이다. 버트런드 러셀은 집합을 기반으로 수학의 공리를 재서술하면서 함수 역시 이를 기반으로 재정의하였다.

### 어원

17세기 고트프리트 빌헬름 라이프니츠는 수학 저서에서 라틴어 단어 를 주로 ‘기능’이란 뜻으로 썼다. 이후 요한 베르누이 등이 를 기술적인 해석학 용어로 쓰기 시작했다. 이것이 다른 유럽 언어로 전파되었다.

‘함수(函數)’라는 용어를 쓰기 시작한 사람은 이선란과 이다. 그들은 번역서 《대수학(代數學)》(1859)과 《대미적습급(代微積拾級)》(1859)에서 영어 의 번역어로 ‘함수(函數)’라는 단어를 썼다. 드모르간은 《The Elements of Algebra》에서 function을 ‘변수를 담고 있는 식’으로 소개하는데, 이를 ‘상자’·‘담다’라는 뜻을 가진 한자 함(函)을 써서 의역한 것이다.

한편 ‘함수’가 영어 단어 의 발음을 음역한 단어라는 설이 있는데 이를 주장한 사람으로는 나  등 일본의 수학자들이 있다. 그러나 ‘함수’의 중국어 발음이 영어 의 발음과 크게 달라 근거가 희박하다. 또한 이선란이 만든 다른 번역어 상수·변수·계수·지수·급수 중의 그 어떤 것도 음역이 아니다.

## 각주

## 외부 링크

* 
* 
* 
* 


분류:집합론의 기본 개념
분류:초등 수학