Skip to content

함수

3주차의 함수 해석을 정리한다. 함수의 엄밀한 정의와 성질에서 시작해, 실함수·복소함수·다변수함수를 살펴보고, 함수의 그래프와 이동(평행·대칭·확대축소·회전)으로 마무리한다.

함수의 정의와 성질

  • 집합 X에서 Y로의 함수function f:XY는 각 xX를 유일한 y=f(x)Y로 대응시키는 규칙이다. 이때 yx의 상image, xy의 원상preimage, X는 정의역domain, Y는 공역codomain이라 한다.
  • 엄밀하게는 함수를 순서쌍ordered pair의 집합, 즉 사상mapping으로 본다. 예를 들어 f(x)=x2f={(x,x2)xR}이다.
f={(x,y)xXyY}  s.t.  (x,y)f(x,y)f  y=y
  • 함수의 대응 방식에 따라 다음과 같이 분류한다.

단사 · 전사 · 전단사

  • 일대일one-to-one 또는 단사injective: xixjf(xi)f(xj) (서로 다른 두 점이 같은 상을 갖지 않음).
  • 위로의 함수onto 또는 전사surjective: f(X)=Y (공역의 모든 원소가 상으로 나타남).
  • 일대일 대응one-to-one correspondence 또는 전단사bijective: 단사이면서 전사. 이때 역함수inverse function f1:YX가 유일하게 존재한다.
  • 항등함수identity function iX(x)=x와 합성함수composite function gf는 다음과 같다.
iX(x)=x (xX),(gf)(x)=g(f(x))(f:XY, g:YZ)
  • 정의역의 부분마다 다른 식을 쓰는 것을 조각적 정의piecewise definition라 한다. 절댓값 함수와 부호함수sign function가 그 예이다.
|x|={x(x0)x(그 외),sgn(x)={+1(x>0)0(x=0)1(그 외)
  • 집합 X의 관계relation RX×X의 부분집합이다. 다음 세 성질을 만족하는 관계를 동치 관계equivalence relation라 한다.
반사적: xRx,대칭적: xRyyRx,전이적: xRyyRzxRz
  • 함수의 주요 성질: 연속성continuity(limxaf(x)=f(a)), 미분 가능성differentiability(미분 가능하면 연속), 단조성monotonicity, 주기성periodicity, 대칭성symmetry.
단조 증가: x1<x2f(x1)f(x2),단조 감소: x1<x2f(x1)f(x2)
python
# 유한 집합에서의 단사/전사 판정과 합성함수
X = [1, 2, 3]
Y = [1, 2, 3, 4]
f = {1: 2, 2: 4, 3: 1}            # f: X -> Y

images = list(f.values())
inj = len(set(images)) == len(images)   # 상이 모두 다르면 단사
sur = set(images) == set(Y)             # 공역을 모두 덮으면 전사
print(f"f = {f}")
print(f"단사(injective)? {inj},  전사(surjective)? {sur}")

# 합성함수 g∘f,  g(y) = y^2
g = lambda y: y**2
print("g∘f =", {x: g(f[x]) for x in X})

실함수 · 복소함수 · 다변수함수

  • 실함수real-valued function는 실수 집합의 부분집합을 정의역, 실수 집합을 공역으로 하는 함수이며, 그 그래프 {(x,f(x))xD}는 평면의 부분집합이다.
  • 일차함수linear function f(x)=ax+b는 기울기(도함수) a, x절편 ba, y절편 b를 가지며 단조·일대일 대응이다. 다항함수polynomial function의 한 예로 물리·공학에서 중요한 르장드르 함수Legendre function가 있다.
Pn(x)=12nn!dndxn(x21)n
  • 공역이 연속이 아닌 함수를 이산함수discrete function라 하며, 계단 함수step function u(x)와 디랙-델타 함수Dirac-delta function δn(x)가 그 예이다.
u(x)={1(x0)0(그 외),δn(x)={n2(|x|1n)0(그 외)
  • 복소함수complex-valued function는 정의역과 공역이 복소수 집합으로 확장된 함수이다. 어떤 영역에서 복소 미분 가능하면 그 영역에서 해석성analyticity을 가진다고 하며(실함수의 미분 가능성보다 엄격한 조건), 이러한 함수를 홀로모픽 함수holomorphic function라 한다.
  • 다변수함수multivariate function는 둘 이상의 독립변수로 값이 정해지는 함수로, 편미분partial differentiation을 정의할 수 있다. 예를 들어 z=f(x,y)=x2y2의 편도함수는 다음과 같다.
zx=2x,zy=2y
python
import numpy as np

# 편미분의 수치 근사 (중심 차분).  z = f(x, y) = x^2 - y^2
f = lambda x, y: x**2 - y**2
h = 1e-6
x0, y0 = 3.0, 2.0

df_dx = (f(x0+h, y0) - f(x0-h, y0)) / (2*h)
df_dy = (f(x0, y0+h) - f(x0, y0-h)) / (2*h)

print(f"∂z/∂x at ({x0},{y0}) = {df_dx:.4f}   (해석해 2x = {2*x0})")
print(f"∂z/∂y at ({x0},{y0}) = {df_dy:.4f}  (해석해 -2y = {-2*y0})")

함수의 그래프와 이동

  • 평행 이동translation은 수평·수직 두 방향으로 나뉜다. 수평 이동horizontal shifty=f(xh)로, h>0이면 오른쪽으로 h만큼 이동한다. 수직 이동vertical shifty=f(x)+k로, k>0이면 위로 k만큼 이동한다.
y=f(xh) (수평),y=f(x)+k (수직)
  • 대칭 이동reflection은 축을 기준으로 함수를 뒤집는다. x축 대칭은 치역의 부호를, y축 대칭은 정의역의 부호를 반대로 한다.
y=f(x) (x축 대칭),y=f(x) (y축 대칭)
  • 확대scaling축소dilation는 상수를 곱해 그래프를 늘리거나 줄인다. 수직 방향은 y=af(x), 수평 방향은 y=f(bx)이다.
y=af(x): |a|>1 확대, 0<|a|<1 축소,y=f(bx): |b|>1 수평 축소, 0<|b|<1 수평 확대
  • 회전rotation은 순서쌍 (x,y)를 각도 θ만큼 돌려 (x,y)을 얻으며, 이는 벡터vector에 회전 행렬을 곱한 것과 같다.
(xy)=(cosθsinθsinθcosθ)(xy),x=xcosθysinθy=xsinθ+ycosθ
python
import numpy as np

# 기본 함수 f(x) = x^2 에 각종 이동을 적용
x = np.linspace(-2, 2, 5)
f = lambda t: t**2

print("x        :", x)
print("f(x)=x^2 :", f(x))
print("f(x-1)   :", f(x - 1))   # 오른쪽으로 평행 이동
print("f(x)+1   :", f(x) + 1)   # 위로 평행 이동
print("-f(x)    :", -f(x))      # x축 대칭
print("f(-x)    :", f(-x))      # y축 대칭
print("2*f(x)   :", 2*f(x))     # y축 방향 2배 확대
python
import numpy as np

# 회전 변환: (1, 0) 을 90도 회전하면 (0, 1)
theta = np.pi / 2
R = np.array([[np.cos(theta), -np.sin(theta)],
              [np.sin(theta),  np.cos(theta)]])
v = np.array([1.0, 0.0])

print("회전 행렬 R(90°) =\n", np.round(R, 3))
print("R v =", np.round(R @ v, 3))

# 단위허수 i 의 행렬 표현이 90도 회전과 같음을 확인
i_mat = np.array([[0, -1], [1, 0]])
print("i 의 행렬 표현 == R(90°) ? ", np.allclose(R, i_mat))
PDF