14. ๋ณต์†Œํ•ด์„ (Complex Analysis)

14. ๋ณต์†Œํ•ด์„ (Complex Analysis)

ํ•™์Šต ๋ชฉํ‘œ

  • ๋ณต์†Œํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์ฝ”์‹œ-๋ฆฌ๋งŒ ์กฐ๊ฑด์„ ์ดํ•ดํ•œ๋‹ค
  • ์ฝ”์‹œ ์ ๋ถ„ ์ •๋ฆฌ์™€ ์ ๋ถ„ ๊ณต์‹์„ ํ™œ์šฉํ•˜์—ฌ ๋ณต์†Œ ์ ๋ถ„์„ ๊ณ„์‚ฐํ•œ๋‹ค
  • ํ…Œ์ผ๋Ÿฌ ๊ธ‰์ˆ˜์™€ ๋กœ๋ž‘ ๊ธ‰์ˆ˜๋ฅผ ํ†ตํ•ด ๋ณต์†Œํ•จ์ˆ˜๋ฅผ ๊ธ‰์ˆ˜๋กœ ์ „๊ฐœํ•œ๋‹ค
  • ์œ ์ˆ˜ ์ •๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ค์ˆ˜ ์ ๋ถ„ ๋ฌธ์ œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค
  • ๋“ฑ๊ฐ์‚ฌ์ƒ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ๋ฌผ๋ฆฌํ•™ ๋ฌธ์ œ์— ์ ์šฉํ•œ๋‹ค

๋ฌผ๋ฆฌํ•™์—์„œ์˜ ์ค‘์š”์„ฑ: ๋ณต์†Œํ•ด์„์€ ์–‘์ž์—ญํ•™์˜ ์ „ํŒŒํ•จ์ˆ˜, ์ „๊ธฐ์—ญํ•™์˜ ์ „์œ„๋ก , ์œ ์ฒด์—ญํ•™์˜ ํ๋ฆ„ ํ•จ์ˆ˜, ์‹ ํ˜ธ์ฒ˜๋ฆฌ์˜ ์ฃผํŒŒ์ˆ˜ ๋ถ„์„ ๋“ฑ ๋ฌผ๋ฆฌํ•™ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ•ต์‹ฌ ๋„๊ตฌ์ด๋‹ค. ํŠนํžˆ ์œ ์ˆ˜ ์ •๋ฆฌ๋ฅผ ํ†ตํ•œ ์ ๋ถ„ ๊ณ„์‚ฐ์€ ์ด๋ก ๋ฌผ๋ฆฌํ•™์—์„œ ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.


1. ํ•ด์„ํ•จ์ˆ˜ (Analytic Functions)

1.1 ๋ณต์†Œ ๋ฏธ๋ถ„๊ณผ ์ฝ”์‹œ-๋ฆฌ๋งŒ ์กฐ๊ฑด

๋ณต์†Œํ•จ์ˆ˜ $f(z) = u(x, y) + iv(x, y)$๊ฐ€ ์  $z_0$์—์„œ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•˜๋ ค๋ฉด, ๊ทนํ•œ

$$f'(z_0) = \lim_{\Delta z \to 0} \frac{f(z_0 + \Delta z) - f(z_0)}{\Delta z}$$

์ด $\Delta z$๊ฐ€ ์–ด๋–ค ๋ฐฉํ–ฅ์—์„œ ์ ‘๊ทผํ•˜๋“  ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์ˆ˜๋ ดํ•ด์•ผ ํ•œ๋‹ค. ์ด๋กœ๋ถ€ํ„ฐ ์ฝ”์‹œ-๋ฆฌ๋งŒ ๋ฐฉ์ •์‹์ด ๋„์ถœ๋œ๋‹ค:

$$\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}$$

ํ•œ ์˜์—ญ์˜ ๋ชจ๋“  ์ ์—์„œ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋ฅผ ๊ทธ ์˜์—ญ์—์„œ ํ•ด์„์ (analytic)์ด๋ผ ํ•œ๋‹ค.

๊ทน์ขŒํ‘œ ํ˜•ํƒœ ($z = re^{i\theta}$):

$$\frac{\partial u}{\partial r} = \frac{1}{r}\frac{\partial v}{\partial \theta}, \quad \frac{1}{r}\frac{\partial u}{\partial \theta} = -\frac{\partial v}{\partial r}$$

import numpy as np
import matplotlib.pyplot as plt

def check_cauchy_riemann(u_func, v_func, x, y, h=1e-7):
    """์ฝ”์‹œ-๋ฆฌ๋งŒ ์กฐ๊ฑด์„ ์ˆ˜์น˜์ ์œผ๋กœ ๊ฒ€์ฆ"""
    du_dx = (u_func(x + h, y) - u_func(x - h, y)) / (2 * h)
    du_dy = (u_func(x, y + h) - u_func(x, y - h)) / (2 * h)
    dv_dx = (v_func(x + h, y) - v_func(x - h, y)) / (2 * h)
    dv_dy = (v_func(x, y + h) - v_func(x, y - h)) / (2 * h)

    cond1 = np.abs(du_dx - dv_dy)   # โˆ‚u/โˆ‚x = โˆ‚v/โˆ‚y
    cond2 = np.abs(du_dy + dv_dx)   # โˆ‚u/โˆ‚y = -โˆ‚v/โˆ‚x

    print(f"์  ({x}, {y}): |โˆ‚u/โˆ‚x - โˆ‚v/โˆ‚y| = {cond1:.2e}, "
          f"|โˆ‚u/โˆ‚y + โˆ‚v/โˆ‚x| = {cond2:.2e}")
    return cond1 < 1e-5 and cond2 < 1e-5

# f(z) = zยฒ = (xยฒ - yยฒ) + i(2xy)
u = lambda x, y: x**2 - y**2
v = lambda x, y: 2 * x * y

print("=== f(z) = zยฒ ์ฝ”์‹œ-๋ฆฌ๋งŒ ๊ฒ€์ฆ ===")
for pt in [(1, 1), (2, -1), (0.5, 3)]:
    analytic = check_cauchy_riemann(u, v, *pt)
    print(f"  ํ•ด์„์ : {analytic}")

1.2 ์กฐํ™”ํ•จ์ˆ˜ (Harmonic Functions)

ํ•ด์„ํ•จ์ˆ˜์˜ ์‹ค์ˆ˜๋ถ€ $u$์™€ ํ—ˆ์ˆ˜๋ถ€ $v$๋Š” ๊ฐ๊ฐ ๋ผํ”Œ๋ผ์Šค ๋ฐฉ์ •์‹์„ ๋งŒ์กฑํ•œ๋‹ค:

$$\nabla^2 u = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0, \quad \nabla^2 v = 0$$

์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ์กฐํ™”ํ•จ์ˆ˜(harmonic function)๋ผ ํ•˜๋ฉฐ, $u$์™€ $v$๋Š” ์„œ๋กœ์˜ ์กฐํ™” ์ผค๋ ˆ์ด๋‹ค.

๋ฌผ๋ฆฌ์  ์˜๋ฏธ: 2์ฐจ์› ์ •์ „๊ธฐํ•™์—์„œ ์ „์œ„ $\phi(x,y)$๋Š” ๋ผํ”Œ๋ผ์Šค ๋ฐฉ์ •์‹์„ ๋งŒ์กฑํ•˜๋ฏ€๋กœ ์กฐํ™”ํ•จ์ˆ˜์ด๋‹ค. ํ•ด์„ํ•จ์ˆ˜์˜ ์‹ค์ˆ˜๋ถ€๋ฅผ ์ „์œ„๋กœ, ํ—ˆ์ˆ˜๋ถ€๋ฅผ ์ „๊ธฐ๋ ฅ์„  ํ•จ์ˆ˜๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

import sympy as sp

x, y = sp.symbols('x y', real=True)

def is_harmonic(expr):
    """๋ผํ”Œ๋ผ์‹œ์•ˆ์ด 0์ธ์ง€ ํ™•์ธ"""
    lap = sp.simplify(sp.diff(expr, x, 2) + sp.diff(expr, y, 2))
    return lap, lap == 0

# f(z) = zยณ์˜ ์‹ค์ˆ˜๋ถ€/ํ—ˆ์ˆ˜๋ถ€
u_expr = x**3 - 3*x*y**2      # Re(zยณ)
v_expr = 3*x**2*y - y**3      # Im(zยณ)

for name, expr in [("Re(zยณ)", u_expr), ("Im(zยณ)", v_expr)]:
    lap, harmonic = is_harmonic(expr)
    print(f"{name} = {expr}: โˆ‡ยฒ = {lap}, ์กฐํ™”ํ•จ์ˆ˜: {harmonic}")

1.3 ํ•ด์„ ํ•จ์ˆ˜์˜ ์˜ˆ

๋ฌผ๋ฆฌํ•™์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ํ•ด์„ํ•จ์ˆ˜๋“ค:

ํ•จ์ˆ˜ ์‹ค์ˆ˜๋ถ€ $u$ ํ—ˆ์ˆ˜๋ถ€ $v$ ๋ฌผ๋ฆฌ์  ์‘์šฉ
$e^z$ $e^x \cos y$ $e^x \sin y$ ํŒŒ๋™, ๊ฐ์‡ 
$\ln z$ $\ln r$ $\theta$ ์„ ์ „ํ•˜ ์ „์œ„
$z^n$ $r^n \cos n\theta$ $r^n \sin n\theta$ ๋‹ค๊ทน์ž ์ „๊ฐœ
$1/z$ $x/(x^2+y^2)$ $-y/(x^2+y^2)$ ์ ์ „ํ•˜, ์†Œ์Šค/์‹ฑํฌ
from matplotlib.colors import hsv_to_rgb

def domain_coloring(f, xlim=(-2, 2), ylim=(-2, 2), N=500):
    """๋ณต์†Œํ•จ์ˆ˜์˜ ๋„๋ฉ”์ธ ์ปฌ๋Ÿฌ๋ง ์‹œ๊ฐํ™” (์œ„์ƒโ†’์ƒ‰์ƒ, ํฌ๊ธฐโ†’๋ช…๋„)"""
    xv = np.linspace(*xlim, N)
    yv = np.linspace(*ylim, N)
    X, Y = np.meshgrid(xv, yv)
    Z = X + 1j * Y

    with np.errstate(divide='ignore', invalid='ignore'):
        W = f(Z)

    H = (np.angle(W) + np.pi) / (2 * np.pi)
    V = 1 - 1 / (1 + np.abs(W)**0.3)
    HSV = np.stack([H, np.ones_like(H), V], axis=-1)

    fig, ax = plt.subplots(figsize=(6, 6))
    ax.imshow(hsv_to_rgb(HSV), extent=[*xlim, *ylim], origin='lower')
    ax.set_xlabel('Re(z)'); ax.set_ylabel('Im(z)')
    plt.tight_layout(); plt.show()

# domain_coloring(lambda z: z**3)       # zยณ์˜ ๋„๋ฉ”์ธ ์ปฌ๋Ÿฌ๋ง
# domain_coloring(lambda z: np.exp(z))  # e^z์˜ ๋„๋ฉ”์ธ ์ปฌ๋Ÿฌ๋ง

2. ๋ณต์†Œ ์ ๋ถ„

2.1 ๊ฒฝ๋กœ ์ ๋ถ„ (Contour Integrals)

๊ฒฝ๋กœ $C$๋ฅผ ๋”ฐ๋ผ ๋ณต์†Œํ•จ์ˆ˜๋ฅผ ์ ๋ถ„ํ•˜๋Š” ๊ฒƒ์„ ๊ฒฝ๋กœ ์ ๋ถ„์ด๋ผ ํ•œ๋‹ค:

$$\oint_C f(z)\, dz = \int_a^b f(z(t))\, z'(t)\, dt$$

ํ•ต์‹ฌ ๊ฒฐ๊ณผ: $|z - z_0| = r$ ์œ„์˜ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ ์ ๋ถ„์— ๋Œ€ํ•ด:

$$\oint \frac{dz}{(z - z_0)^n} = \begin{cases} 2\pi i & n = 1 \\ 0 & n \neq 1 \end{cases}$$

def contour_integral_circle(f, z0=0, r=1, N=10000):
    """์›ํ˜• ๊ฒฝ๋กœ |z-z0|=r ์œ„์—์„œ์˜ ๊ฒฝ๋กœ ์ ๋ถ„ (์ˆ˜์น˜ ๊ณ„์‚ฐ)"""
    t = np.linspace(0, 2*np.pi, N, endpoint=False)
    dt = 2*np.pi / N
    z = z0 + r * np.exp(1j * t)
    dz_dt = 1j * r * np.exp(1j * t)
    return np.sum(f(z) * dz_dt) * dt

# โˆฎ 1/z dz = 2ฯ€i
I1 = contour_integral_circle(lambda z: 1/z)
print(f"โˆฎ 1/z dz = {I1:.6f}  (์ด๋ก ๊ฐ’: {2*np.pi*1j:.6f})")

# โˆฎ 1/zยฒ dz = 0
I2 = contour_integral_circle(lambda z: 1/z**2)
print(f"โˆฎ 1/zยฒ dz = {I2:.6f}  (์ด๋ก ๊ฐ’: 0)")

# โˆฎ e^z/z dz = 2ฯ€i (์ฝ”์‹œ ๊ณต์‹: f(0)=eโฐ=1)
I3 = contour_integral_circle(lambda z: np.exp(z)/z)
print(f"โˆฎ e^z/z dz = {I3:.6f}  (์ด๋ก ๊ฐ’: {2*np.pi*1j:.6f})")

2.2 ์ฝ”์‹œ ์ ๋ถ„ ์ •๋ฆฌ (Cauchy's Theorem)

$f(z)$๊ฐ€ ๋‹จ์ˆœ ์—ฐ๊ฒฐ ์˜์—ญ $D$ ๋‚ด์—์„œ ํ•ด์„์ ์ด๋ฉด, $D$ ์•ˆ์˜ ์ž„์˜์˜ ํ๊ณก์„  $C$์— ๋Œ€ํ•ด:

$$\oint_C f(z)\, dz = 0$$

๋ฌผ๋ฆฌ์  ์˜๋ฏธ: ๋ณด์กด๋ ฅ์˜ ์ˆœํ™˜์ด 0์ธ ๊ฒƒ๊ณผ ๋™์น˜์ด๋‹ค. ํ•ด์„ํ•จ์ˆ˜์˜ ์ ๋ถ„์€ ๊ฒฝ๋กœ์— ๋ฌด๊ด€ํ•˜๋‹ค.

2.3 ์ฝ”์‹œ ์ ๋ถ„ ๊ณต์‹ (Cauchy's Formula)

$f(z)$๊ฐ€ $C$ ๋‚ด๋ถ€์—์„œ ํ•ด์„์ ์ด๊ณ  $z_0$๊ฐ€ ๋‚ด๋ถ€ ์ ์ด๋ฉด:

$$f(z_0) = \frac{1}{2\pi i} \oint_C \frac{f(z)}{z - z_0}\, dz$$

์ผ๋ฐ˜ํ™” (n์ฐจ ๋„ํ•จ์ˆ˜):

$$f^{(n)}(z_0) = \frac{n!}{2\pi i} \oint_C \frac{f(z)}{(z - z_0)^{n+1}}\, dz$$

์ด ๊ณต์‹์€ ํ•ด์„ํ•จ์ˆ˜๊ฐ€ ๋ฌดํ•œ๋ฒˆ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ฒฝ๊ณ„๊ฐ’์ด ๋‚ด๋ถ€๊ฐ’์„ ๊ฒฐ์ •ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

from math import factorial

def cauchy_derivative(f, z0, n=0, r=1, N=10000):
    """์ฝ”์‹œ ์ ๋ถ„ ๊ณต์‹์œผ๋กœ f^(n)(z0) ๊ณ„์‚ฐ"""
    t = np.linspace(0, 2*np.pi, N, endpoint=False)
    dt = 2*np.pi / N
    z = z0 + r * np.exp(1j * t)
    dz_dt = 1j * r * np.exp(1j * t)
    integrand = f(z) / (z - z0)**(n + 1) * dz_dt
    return np.sum(integrand) * dt * factorial(n) / (2*np.pi*1j)

# ๊ฒ€์ฆ: f(z) = sin(z)
f = lambda z: np.sin(z)
print("์ฝ”์‹œ ๊ณต์‹ ๊ฒ€์ฆ: f(z) = sin(z)")
print(f"  f(0)   = {cauchy_derivative(f, 0, 0):.6f}  (์ •ํ™•๊ฐ’: 0)")
print(f"  f'(0)  = {cauchy_derivative(f, 0, 1):.6f}  (์ •ํ™•๊ฐ’: 1)")
print(f"  f''(0) = {cauchy_derivative(f, 0, 2):.6f}  (์ •ํ™•๊ฐ’: 0)")
print(f"  f'''(0)= {cauchy_derivative(f, 0, 3):.6f}  (์ •ํ™•๊ฐ’: -1)")

3. ๊ธ‰์ˆ˜ ์ „๊ฐœ

3.1 ํ…Œ์ผ๋Ÿฌ ๊ธ‰์ˆ˜

$f(z)$๊ฐ€ $z_0$ ์ค‘์‹ฌ ๋ฐ˜์ง€๋ฆ„ $R$์ธ ์› ๋‚ด์—์„œ ํ•ด์„์ ์ด๋ฉด:

$$f(z) = \sum_{n=0}^{\infty} a_n (z - z_0)^n, \quad a_n = \frac{f^{(n)}(z_0)}{n!}$$

์ˆ˜๋ ด ๋ฐ˜์ง€๋ฆ„ $R$์€ $z_0$์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํŠน์ด์ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ์ด๋‹ค.

์˜ˆ: $f(z) = 1/(1+z^2)$์˜ $z=0$ ์ฃผ์œ„ ํ…Œ์ผ๋Ÿฌ ๊ธ‰์ˆ˜ ์ˆ˜๋ ด ๋ฐ˜์ง€๋ฆ„์€ $R=1$์ด๋‹ค. $z = \pm i$์— ๊ทน์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‹ค์ˆ˜์ถ•์—์„œ๋Š” ํŠน์ด์„ฑ์ด ์—†์ง€๋งŒ, ๋ณต์†Œํ‰๋ฉด์˜ ํŠน์ด์ ์ด ์ˆ˜๋ ด ๋ฐ˜์ง€๋ฆ„์„ ๊ฒฐ์ •ํ•œ๋‹ค.

3.2 ๋กœ๋ž‘ ๊ธ‰์ˆ˜ (Laurent Series)

$f(z)$๊ฐ€ ๊ณ ๋ฆฌํ˜• ์˜์—ญ $r < |z - z_0| < R$์—์„œ ํ•ด์„์ ์ด๋ฉด:

$$f(z) = \sum_{n=-\infty}^{\infty} a_n (z - z_0)^n$$

$n < 0$์ธ ํ•ญ๋“ค์„ ์ฃผ๋ถ€(principal part), ํŠนํžˆ $a_{-1}$์„ ์œ ์ˆ˜(residue)๋ผ ํ•œ๋‹ค.

z = sp.Symbol('z')

# ๋กœ๋ž‘ ๊ธ‰์ˆ˜: e^z / zยณ (z=0 ์ฃผ์œ„)
f1 = sp.exp(z) / z**3
print("e^z/zยณ ์˜ ๋กœ๋ž‘ ๊ธ‰์ˆ˜:")
print(f"  {sp.series(f1, z, 0, n=5)}")
print(f"  ์œ ์ˆ˜ (zโปยน ๊ณ„์ˆ˜) = 1/2\n")

# ๋กœ๋ž‘ ๊ธ‰์ˆ˜: 1/(z(z-1)) (z=0 ์ฃผ์œ„)
f2 = 1 / (z * (z - 1))
print("1/(z(z-1)) ์˜ ๋กœ๋ž‘ ๊ธ‰์ˆ˜ (z=0 ์ฃผ์œ„):")
print(f"  {sp.series(f2, z, 0, n=4)}")

# z=1 ์ฃผ์œ„
w = sp.Symbol('w')
print("\n1/(z(z-1)) ์˜ ๋กœ๋ž‘ ๊ธ‰์ˆ˜ (z=1 ์ฃผ์œ„, w=z-1):")
print(f"  {sp.series(f2.subs(z, w+1), w, 0, n=4)}")

3.3 ํŠน์ด์ ์˜ ๋ถ„๋ฅ˜ (์ œ๊ฑฐ๊ฐ€๋Šฅ, ๊ทน์ , ๋ณธ์งˆ์ )

์ข…๋ฅ˜ ์ฃผ๋ถ€์˜ ํ•ญ ์ˆ˜ ์˜ˆ์‹œ $\lim_{z \to z_0} f(z)$
์ œ๊ฑฐ๊ฐ€๋Šฅ ํŠน์ด์  0๊ฐœ $\sin z / z$ at $z=0$ ์œ ํ•œ๊ฐ’
$m$์ฐจ ๊ทน์  $m$๊ฐœ $1/z^m$ at $z=0$ $\infty$
๋ณธ์งˆ์  ํŠน์ด์  ๋ฌดํ•œ๊ฐœ $e^{1/z}$ at $z=0$ ์กด์žฌ ์•ˆ ํ•จ

์นด์†Œ๋ผํ‹ฐ-๋ฐ”์ด์–ด์ŠˆํŠธ๋ผ์Šค ์ •๋ฆฌ: ๋ณธ์งˆ์  ํŠน์ด์  ๊ทผ๋ฐฉ์—์„œ ํ•จ์ˆ˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ณต์†Œ์ˆ˜ ๊ฐ’์„ ์ทจํ•œ๋‹ค.

# ํŠน์ด์  ๋ถ„๋ฅ˜ ํ™•์ธ
cases = [
    ("sin(z)/z (z=0, ์ œ๊ฑฐ๊ฐ€๋Šฅ)", sp.sin(z)/z, z, 0),
    ("1/(z-1)ยณ (z=1, 3์ฐจ ๊ทน์ )", 1/(z-1)**3, z, 1),
    ("exp(1/z) (z=0, ๋ณธ์งˆ์ )", sp.exp(1/z), z, 0),
]

for name, expr, var, pt in cases:
    if pt != 0:
        w = sp.Symbol('w')
        s = sp.series(expr.subs(var, w + pt), w, 0, n=5)
    else:
        s = sp.series(expr, var, 0, n=5)
    print(f"{name}:\n  {s}\n")

4. ์œ ์ˆ˜ ์ •๋ฆฌ (Residue Theorem)

4.1 ์œ ์ˆ˜์˜ ์ •์˜์™€ ๊ณ„์‚ฐ

์  $z_0$์—์„œ $f(z)$์˜ ์œ ์ˆ˜๋Š” ๋กœ๋ž‘ ๊ธ‰์ˆ˜์˜ $a_{-1}$ ๊ณ„์ˆ˜์ด๋‹ค:

$$\text{Res}_{z=z_0} f(z) = \frac{1}{2\pi i} \oint_C f(z)\, dz$$

์œ ์ˆ˜ ๊ณ„์‚ฐ๋ฒ•:

  1. ๋‹จ์ˆœ ๊ทน์ : $\text{Res}_{z=z_0} f = \lim_{z \to z_0} (z - z_0) f(z)$
  2. $m$์ฐจ ๊ทน์ : $\text{Res}_{z=z_0} f = \frac{1}{(m-1)!} \lim_{z \to z_0} \frac{d^{m-1}}{dz^{m-1}} [(z - z_0)^m f(z)]$
  3. $p/q$ ํ˜•ํƒœ (๋‹จ์ˆœ ๊ทน์ ): $\text{Res}_{z=z_0} \frac{p}{q} = \frac{p(z_0)}{q'(z_0)}$
z = sp.Symbol('z')

examples = [
    ("1/(zยฒ+1)", 1/(z**2+1), sp.I),
    ("1/(zยฒ+1)", 1/(z**2+1), -sp.I),
    ("e^z/zยฒ", sp.exp(z)/z**2, 0),
    ("z/(zยฒ-3z+2)", z/(z**2-3*z+2), 1),
    ("z/(zยฒ-3z+2)", z/(z**2-3*z+2), 2),
]

print("=== ์œ ์ˆ˜ ๊ณ„์‚ฐ ===")
for name, expr, z0 in examples:
    print(f"Res[{name}, z={z0}] = {sp.residue(expr, z, z0)}")

4.2 ์œ ์ˆ˜ ์ •๋ฆฌ

$f(z)$๊ฐ€ ํ๊ณก์„  $C$ ๋‚ด๋ถ€์—์„œ ์œ ํ•œ ๊ฐœ์˜ ํŠน์ด์  $z_1, \ldots, z_n$์„ ์ œ์™ธํ•˜๊ณ  ํ•ด์„์ ์ด๋ฉด:

$$\oint_C f(z)\, dz = 2\pi i \sum_{k=1}^{n} \text{Res}_{z=z_k} f(z)$$

4.3 ์กฐ๋ฅด๋‹น ๋ณด์กฐ์ •๋ฆฌ (Jordan's Lemma)

์œ ์ˆ˜ ์ •๋ฆฌ๋กœ ์‹ค์ˆ˜ ์ ๋ถ„์„ ๊ณ„์‚ฐํ•  ๋•Œ, ๋ฌดํ•œ ๋ฐ˜์› ๊ฒฝ๋กœ์˜ ๊ธฐ์—ฌ๊ฐ€ 0์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ์กฐ๋ฅด๋‹น ๋ณด์กฐ์ •๋ฆฌ๋Š” ์ด๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

์ •๋ฆฌ: $f(z) \to 0$ uniformly as $|z| \to \infty$ (์ƒ๋ฐ˜๋ฉด)์ด๋ฉด, $a > 0$์— ๋Œ€ํ•ด:

$$\lim_{R \to \infty} \int_{C_R} f(z) e^{iaz}\, dz = 0$$

์—ฌ๊ธฐ์„œ $C_R$์€ ์ƒ๋ฐ˜๋ฉด์˜ ๋ฐ˜์ง€๋ฆ„ $R$์ธ ๋ฐ˜์›์ด๋‹ค. ํ•ต์‹ฌ์€ $e^{iaz} = e^{ia(x+iy)} = e^{iax}e^{-ay}$์ด๋ฏ€๋กœ, ์ƒ๋ฐ˜๋ฉด($y > 0$)์—์„œ $e^{-ay}$๊ฐ€ ์ง€์ˆ˜์ ์œผ๋กœ ๊ฐ์†Œํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ฃผ์˜: $a < 0$์ด๋ฉด ํ•˜๋ฐ˜๋ฉด ๋ฐ˜์›์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ ๊ฒฝ๋กœ์˜ ๋ฐฉํ–ฅ์ด ์‹œ๊ณ„๋ฐฉํ–ฅ์ด๋ฏ€๋กœ ์œ ์ˆ˜์— $(-2\pi i)$๊ฐ€ ๊ณฑํ•ด์ง„๋‹ค.

4.4 ์‹ค์ˆ˜ ์ ๋ถ„ ๊ณ„์‚ฐ์˜ 4๊ฐ€์ง€ ์œ ํ˜•

์œ ์ˆ˜ ์ •๋ฆฌ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์‘์šฉ์€ ์‹ค์ˆ˜ ์ ๋ถ„์˜ ๊ณ„์‚ฐ์ด๋‹ค. ์ ๋ถ„์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

์œ ํ˜• 1: ์‚ผ๊ฐํ•จ์ˆ˜ ์œ ๋ฆฌ์‹ โ€” $\int_0^{2\pi} R(\cos\theta, \sin\theta)\, d\theta$

$z = e^{i\theta}$ ์น˜ํ™˜: $\cos\theta = (z + z^{-1})/2$, $\sin\theta = (z - z^{-1})/(2i)$, $d\theta = dz/(iz)$.

์ ๋ถ„์ด ๋‹จ์œ„์› $|z| = 1$ ์œ„์˜ ๊ฒฝ๋กœ ์ ๋ถ„์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ๋‹จ์œ„์› ๋‚ด๋ถ€์˜ ๊ทน์ ์— ๋Œ€ํ•œ ์œ ์ˆ˜๋งŒ ๊ณ„์‚ฐํ•œ๋‹ค.

from scipy.integrate import quad
import sympy as sp
import numpy as np

z = sp.Symbol('z')

# --- ์œ ํ˜• 1: โˆซโ‚€ยฒฯ€ dฮธ/(2 + cosฮธ) ---
print("=== ์œ ํ˜• 1: โˆซโ‚€ยฒฯ€ dฮธ/(2 + cosฮธ) ===")
integrand1 = 2 / (sp.I * (z**2 + 4*z + 1))
inner_pole = -2 + sp.sqrt(3)  # |z| < 1์ธ ๊ทน์ 
res1 = sp.residue(integrand1, z, inner_pole)
result1 = sp.simplify(2 * sp.pi * sp.I * res1)
print(f"์œ ์ˆ˜ ์ •๋ฆฌ: {result1} = {float(result1):.6f}")
num1, _ = quad(lambda t: 1/(2 + np.cos(t)), 0, 2*np.pi)
print(f"์ˆ˜์น˜ ๊ฒ€์ฆ: {num1:.6f}\n")

์œ ํ˜• 2: ์œ ๋ฆฌํ•จ์ˆ˜ โ€” $\int_{-\infty}^{\infty} \frac{P(x)}{Q(x)}\, dx$

์กฐ๊ฑด: $\deg(Q) \geq \deg(P) + 2$ (์ ๋ถ„์ด ์ˆ˜๋ ด), $Q(x) \neq 0$ on ์‹ค์ˆ˜์ถ•.

์ƒ๋ฐ˜๋ฉด ๋ฐ˜์› ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ. $R \to \infty$์—์„œ ๋ฐ˜์› ์œ„์˜ ์ ๋ถ„์ด 0์ด ๋˜๋ฏ€๋กœ ($f(z) \to 0$ sufficiently fast):

$$\int_{-\infty}^{\infty} \frac{P(x)}{Q(x)}\, dx = 2\pi i \sum_{\text{Im}(z_k) > 0} \text{Res}_{z=z_k} \frac{P(z)}{Q(z)}$$

# --- ์œ ํ˜• 2: โˆซโ‚‹โˆž^โˆž dx/(xยฒ+1)ยฒ ---
print("=== ์œ ํ˜• 2: โˆซโ‚‹โˆž^โˆž dx/(xยฒ+1)ยฒ ===")
res2 = sp.residue(1/(z**2+1)**2, z, sp.I)
result2 = sp.simplify(2 * sp.pi * sp.I * res2)
print(f"์œ ์ˆ˜ ์ •๋ฆฌ: {result2} = {float(result2):.6f}")
num2, _ = quad(lambda x: 1/(x**2+1)**2, -100, 100)
print(f"์ˆ˜์น˜ ๊ฒ€์ฆ: {num2:.6f}\n")

์œ ํ˜• 3: ํ‘ธ๋ฆฌ์—ํ˜• ์ ๋ถ„ โ€” $\int_{-\infty}^{\infty} f(x) e^{iax}\, dx$ ($a > 0$)

์กฐ๋ฅด๋‹น ๋ณด์กฐ์ •๋ฆฌ๋ฅผ ์ ์šฉ. $f(z) \to 0$ as $|z| \to \infty$์ด๋ฉด (1์ฐจ ์ถฉ๋ถ„) ์ƒ๋ฐ˜๋ฉด ๋ฐ˜์›์˜ ๊ธฐ์—ฌ๊ฐ€ 0:

$$\int_{-\infty}^{\infty} f(x) e^{iax}\, dx = 2\pi i \sum_{\text{Im}(z_k) > 0} \text{Res}_{z=z_k} f(z) e^{iaz}$$

$\cos(ax)$๋‚˜ $\sin(ax)$๋ฅผ ํฌํ•จํ•˜๋Š” ์ ๋ถ„์€ $e^{iax}$๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ์‹ค์ˆ˜๋ถ€/ํ—ˆ์ˆ˜๋ถ€๋ฅผ ์ทจํ•œ๋‹ค.

# --- ์œ ํ˜• 3: โˆซโ‚‹โˆž^โˆž cos(x)/(xยฒ+1) dx = ฯ€/e ---
print("=== ์œ ํ˜• 3: โˆซโ‚‹โˆž^โˆž cos(x)/(xยฒ+1) dx ===")
f3 = sp.exp(sp.I*z) / (z**2 + 1)
res3 = sp.residue(f3, z, sp.I)
result3 = sp.simplify(2 * sp.pi * sp.I * res3)
print(f"์œ ์ˆ˜ ์ •๋ฆฌ: Re({result3}) = ฯ€/e = {float(sp.pi/sp.E):.6f}")
num3, _ = quad(lambda x: np.cos(x)/(x**2+1), -100, 100)
print(f"์ˆ˜์น˜ ๊ฒ€์ฆ: {num3:.6f}\n")

์œ ํ˜• 4: ๋ถ„์ง€์ ˆ๋‹จ ์ ๋ถ„ โ€” $\int_0^{\infty} x^{a-1} f(x)\, dx$ ($0 < a < 1$)

ํ”ผ์ ๋ถ„ํ•จ์ˆ˜์— $x^a$ ($a$๊ฐ€ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ)๊ฐ€ ํฌํ•จ๋˜๋ฉด ๋ถ„์ง€์ ˆ๋‹จ(branch cut)์ด ํ•„์š”ํ•˜๋‹ค. ์—ด์‡ ๊ตฌ๋ฉ(keyhole) ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋Œ€ํ‘œ ์˜ˆ์ œ: $\int_0^{\infty} \frac{x^{a-1}}{1+x}\, dx = \frac{\pi}{\sin(\pi a)}$ ($0 < a < 1$)

ํ’€์ด ์ „๋žต: 1. $f(z) = z^{a-1}/(1+z)$์—์„œ ์–‘์˜ ์‹ค์ˆ˜์ถ•์„ ๋ถ„์ง€์ ˆ๋‹จ์œผ๋กœ ์„ ํƒ 2. ์—ด์‡ ๊ตฌ๋ฉ ๊ฒฝ๋กœ: ๋ถ„์ง€์ ˆ๋‹จ ์œ„์ชฝ โ†’ ํฐ ์› โ†’ ๋ถ„์ง€์ ˆ๋‹จ ์•„๋ž˜์ชฝ โ†’ ์ž‘์€ ์› 3. ๋ถ„์ง€์ ˆ๋‹จ ์•„๋ž˜์ชฝ์—์„œ $z^{a-1} = |z|^{a-1} e^{2\pi i(a-1)}$ 4. $z = -1$์—์„œ์˜ ์œ ์ˆ˜: $e^{i\pi(a-1)} = -e^{i\pi a}$

$$\int_0^{\infty} \frac{x^{a-1}}{1+x} dx - e^{2\pi i(a-1)} \int_0^{\infty} \frac{x^{a-1}}{1+x} dx = 2\pi i \cdot (-e^{i\pi a})$$

$$(1 - e^{2\pi i(a-1)}) I = -2\pi i e^{i\pi a} \implies I = \frac{\pi}{\sin(\pi a)}$$

# --- ์œ ํ˜• 4: โˆซโ‚€^โˆž x^{a-1}/(1+x) dx = ฯ€/sin(ฯ€a) ---
print("=== ์œ ํ˜• 4: โˆซโ‚€^โˆž x^{a-1}/(1+x) dx ===")
for a in [0.25, 0.5, 0.75]:
    theory = np.pi / np.sin(np.pi * a)
    numerical, _ = quad(lambda x: x**(a-1)/(1+x), 0, np.inf)
    print(f"  a = {a}: ฯ€/sin(ฯ€a) = {theory:.6f}, ์ˆ˜์น˜ = {numerical:.6f}")

5. ๋“ฑ๊ฐ์‚ฌ์ƒ (Conformal Mapping)

5.1 ๋“ฑ๊ฐ์‚ฌ์ƒ์˜ ์ •์˜์™€ ์„ฑ์งˆ

$f'(z_0) \neq 0$์ธ ํ•ด์„ํ•จ์ˆ˜ $w = f(z)$๋Š” $z_0$ ๊ทผ๋ฐฉ์—์„œ ๋“ฑ๊ฐ(conformal)์ด๋‹ค:

  • ๊ฐ๋„ ๋ณด์กด: ๋‘ ๊ณก์„ ์˜ ๊ต์ฐจ ๊ฐ๋„๊ฐ€ ์‚ฌ์ƒ ํ›„์—๋„ ์œ ์ง€
  • ๋ผํ”Œ๋ผ์Šค ๋ฐฉ์ •์‹ ๋ถˆ๋ณ€: ์กฐํ™”ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์ƒ ํ›„์—๋„ ์กฐํ™”ํ•จ์ˆ˜
  • ๊ฒฝ๊ณ„์กฐ๊ฑด ๋ณด์กด: ๋ฌผ๋ฆฌ์  ๊ฒฝ๊ณ„ ์กฐ๊ฑด์ด ์‚ฌ์ƒ ํ›„์—๋„ ์œ ํšจ

5.2 ๋ซผ๋น„์šฐ์Šค ๋ณ€ํ™˜

$$w = \frac{az + b}{cz + d}, \quad ad - bc \neq 0$$

์„ฑ์งˆ: ์›๊ณผ ์ง์„ ์„ ์›๊ณผ ์ง์„ ์œผ๋กœ ์‚ฌ์ƒํ•˜๋ฉฐ, ์„ธ ์ ์œผ๋กœ ์œ ์ผํ•˜๊ฒŒ ๊ฒฐ์ •๋œ๋‹ค.

def mobius_transform(z, a, b, c, d):
    """๋ซผ๋น„์šฐ์Šค ๋ณ€ํ™˜ w = (az+b)/(cz+d)"""
    return (a*z + b) / (c*z + d)

def plot_mobius(a, b, c, d, title="๋ซผ๋น„์šฐ์Šค ๋ณ€ํ™˜"):
    """๊ฒฉ์ž์„ ์˜ ๋ซผ๋น„์šฐ์Šค ๋ณ€ํ™˜ ์‹œ๊ฐํ™”"""
    fig, axes = plt.subplots(1, 2, figsize=(12, 5))
    t = np.linspace(-2, 2, 300)

    for x0 in np.linspace(-2, 2, 9):
        zv = x0 + 1j*t; wv = mobius_transform(zv, a, b, c, d)
        axes[0].plot(zv.real, zv.imag, 'b-', alpha=0.4, lw=0.7)
        m = np.abs(wv) < 10
        axes[1].plot(wv.real[m], wv.imag[m], 'b-', alpha=0.4, lw=0.7)

    for y0 in np.linspace(-2, 2, 9):
        zv = t + 1j*y0; wv = mobius_transform(zv, a, b, c, d)
        axes[0].plot(zv.real, zv.imag, 'r-', alpha=0.4, lw=0.7)
        m = np.abs(wv) < 10
        axes[1].plot(wv.real[m], wv.imag[m], 'r-', alpha=0.4, lw=0.7)

    for ax, lab in zip(axes, ['z-ํ‰๋ฉด', 'w-ํ‰๋ฉด']):
        ax.set_xlim(-4,4); ax.set_ylim(-4,4)
        ax.set_aspect('equal'); ax.grid(True, alpha=0.3); ax.set_title(lab)
    fig.suptitle(f'{title}: w=({a}z+{b})/({c}z+{d})')
    plt.tight_layout(); plt.show()

# ์ผ€์ผ๋ฆฌ ๋ณ€ํ™˜ (์ƒ๋ฐ˜๋ฉดโ†’๋‹จ์œ„์›): w = (z-i)/(z+i)
# plot_mobius(1, -1j, 1, 1j, "์ผ€์ผ๋ฆฌ ๋ณ€ํ™˜")

5.3 ๋ฌผ๋ฆฌํ•™ ์‘์šฉ (์œ ์ฒด ์—ญํ•™, ์ „๊ธฐ์žฅ)

๋ณต์†Œ ํฌํ…์…œ: 2์ฐจ์› ๋น„์••์ถ•์„ฑ ๋น„ํšŒ์ „ ํ๋ฆ„์—์„œ:

$$W(z) = \phi(x, y) + i\psi(x, y), \quad \frac{dW}{dz} = v_x - iv_y$$

$\phi$๋Š” ์†๋„ ํฌํ…์…œ, $\psi$๋Š” ์œ ์„  ํ•จ์ˆ˜์ด๋‹ค.

ํ๋ฆ„ $W(z)$ ๋ฌผ๋ฆฌ์  ์˜๋ฏธ
๊ท ์ผ ํ๋ฆ„ $Uz$ ์†๋„ $U$
์†Œ์Šค/์‹ฑํฌ $(Q/2\pi)\ln z$ ๊ฐ•๋„ $Q$
์™€๋ฅ˜ $(-i\Gamma/2\pi)\ln z$ ์ˆœํ™˜ $\Gamma$
์ด์ค‘๊ทน $\mu/z$ ์Œ๊ทน์ž
์›์ฃผ ์ฃผ์œ„ $U(z + a^2/z)$ ๋ฐ˜์ง€๋ฆ„ $a$
def plot_flow(W_func, xlim=(-3,3), ylim=(-3,3), N=400, title="์œ ์„ ๋„"):
    """๋ณต์†Œ ํฌํ…์…œ๋กœ๋ถ€ํ„ฐ ์œ ์„ ๋„์™€ ๋“ฑํฌํ…์…œ์„  ์‹œ๊ฐํ™”"""
    xv = np.linspace(*xlim, N); yv = np.linspace(*ylim, N)
    X, Y = np.meshgrid(xv, yv); Z = X + 1j*Y

    with np.errstate(divide='ignore', invalid='ignore'):
        W = W_func(Z)
    phi, psi = np.real(W), np.imag(W)
    mask = np.abs(W) > 50; phi[mask] = np.nan; psi[mask] = np.nan

    fig, axes = plt.subplots(1, 2, figsize=(12, 5))
    axes[0].contour(X, Y, psi, levels=30, colors='blue', linewidths=0.8)
    axes[0].set_title(f'{title} - ์œ ์„  (ฯˆ=const)')
    axes[1].contour(X, Y, phi, levels=30, colors='red', linewidths=0.8)
    axes[1].set_title(f'{title} - ๋“ฑํฌํ…์…œ์„  (ฯ†=const)')
    for ax in axes:
        ax.set_aspect('equal'); ax.set_xlabel('x'); ax.set_ylabel('y')
    plt.tight_layout(); plt.show()

# ์ˆœํ™˜ ์žˆ๋Š” ์›์ฃผ ์ฃผ์œ„ ํ๋ฆ„
U, a, Gamma = 1.0, 1.0, 2*np.pi
W_cyl = lambda z: U*(z + a**2/z) - 1j*Gamma/(2*np.pi)*np.log(z)
# plot_flow(W_cyl, title="์ˆœํ™˜ ์žˆ๋Š” ์›์ฃผ ์ฃผ์œ„ ํ๋ฆ„")

# ์ „๊ธฐ ์Œ๊ทน์ž (+q at z=d, -q at z=-d)
W_dipole = lambda z: -1/(2*np.pi) * (np.log(z-0.5) - np.log(z+0.5))
# plot_flow(W_dipole, title="์ „๊ธฐ ์Œ๊ทน์ž ์ „์œ„")

์ฃผ์ฝ”ํ”„์Šคํ‚ค ๋ณ€ํ™˜๊ณผ ์–‘๋ ฅ: $w = z + c^2/z$๋Š” ์›์„ ์—์–ดํฌ์ผ๋กœ ์‚ฌ์ƒํ•œ๋‹ค. ์ฟ ํƒ€-์ฃผ์ฝ”ํ”„์Šคํ‚ค ์ •๋ฆฌ์— ์˜ํ•œ ๋‹จ์œ„ ๊ธธ์ด๋‹น ์–‘๋ ฅ:

$$L = \rho U \Gamma$$

์ด ๊ฒฐ๊ณผ๋Š” ์œ ์ˆ˜ ์ •๋ฆฌ๋กœ๋ถ€ํ„ฐ ์šฐ์•„ํ•˜๊ฒŒ ๋„์ถœ๋œ๋‹ค.

5.4 ์Šˆ๋ฐ”๋ฅด์ธ -ํฌ๋ฆฌ์Šคํ† ํŽ  ์‚ฌ์ƒ (Schwarz-Christoffel Mapping)

๋ฌธ์ œ: ์ƒ๋ฐ˜๋ฉด์„ ๋‹ค๊ฐํ˜• ์˜์—ญ์œผ๋กœ ์‚ฌ์ƒํ•˜๋Š” ๋“ฑ๊ฐ์‚ฌ์ƒ์„ ๊ตฌํ•˜๋ผ.

์Šˆ๋ฐ”๋ฅด์ธ -ํฌ๋ฆฌ์Šคํ† ํŽ  ๊ณต์‹: ์ƒ๋ฐ˜๋ฉด์˜ ์‹ค์ˆ˜์ถ• ์œ„์˜ ์  $x_1, x_2, \ldots, x_n$์ด ๋‹ค๊ฐํ˜•์˜ ๊ผญ์ง“์  $w_1, w_2, \ldots, w_n$์œผ๋กœ ์‚ฌ์ƒ๋˜๊ณ , ๊ฐ ๊ผญ์ง“์ ์˜ ๋‚ด๊ฐ์ด $\alpha_k \pi$์ด๋ฉด:

$$\frac{dw}{dz} = A \prod_{k=1}^{n} (z - x_k)^{\alpha_k - 1}$$

์—ฌ๊ธฐ์„œ $A$๋Š” ๋ณต์†Œ ์ƒ์ˆ˜์ด๋‹ค.

์˜ˆ: ์ƒ๋ฐ˜๋ฉด โ†’ ์ง์‚ฌ๊ฐํ˜• ์‚ฌ์ƒ์€ ํƒ€์› ์ ๋ถ„์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์ •์ „๊ธฐํ•™์—์„œ ํ‰ํ–‰ํŒ ์ถ•์ „๊ธฐ์˜ ๊ฐ€์žฅ์ž๋ฆฌ ํšจ๊ณผ(fringing field) ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋œ๋‹ค.


6. ํ•ด์„์  ์—ฐ์† (Analytic Continuation)

6.1 ๊ธฐ๋ณธ ๊ฐœ๋…

ํ•จ์ˆ˜ $f(z)$๊ฐ€ ์˜์—ญ $D_1$์—์„œ ์ •์˜๋˜์–ด ์žˆ์„ ๋•Œ, ๋” ํฐ ์˜์—ญ $D_2 \supset D_1$์—์„œ ํ•ด์„์ ์ธ ํ•จ์ˆ˜ $g(z)$๊ฐ€ $D_1$์—์„œ $f$์™€ ์ผ์น˜ํ•˜๋ฉด, $g$๋ฅผ $f$์˜ ํ•ด์„์  ์—ฐ์†์ด๋ผ ํ•œ๋‹ค.

์œ ์ผ์„ฑ: ํ•ด์„์  ์—ฐ์†์ด ์กด์žฌํ•˜๋ฉด ์œ ์ผํ•˜๋‹ค (ํ•ญ๋“ฑ ์ •๋ฆฌ์— ์˜ํ•ด).

6.2 ๋ฌผ๋ฆฌํ•™ ์‘์šฉ

๊ฐ๋งˆ ํ•จ์ˆ˜: ์›๋ž˜ $\Gamma(z) = \int_0^{\infty} t^{z-1} e^{-t} dt$๋Š” $\text{Re}(z) > 0$์—์„œ๋งŒ ์ •์˜๋˜์ง€๋งŒ, ์ ํ™”์‹ $\Gamma(z) = \Gamma(z+1)/z$๋ฅผ ์ด์šฉํ•˜๋ฉด ์Œ์˜ ์ •์ˆ˜๋ฅผ ์ œ์™ธํ•œ ์ „์ฒด ๋ณต์†Œ ํ‰๋ฉด์œผ๋กœ ํ•ด์„์  ์—ฐ์†๋œ๋‹ค.

๋ฆฌ๋งŒ ์ œํƒ€ ํ•จ์ˆ˜: $\zeta(s) = \sum_{n=1}^{\infty} n^{-s}$๋Š” $\text{Re}(s) > 1$์—์„œ ์ˆ˜๋ ดํ•˜์ง€๋งŒ, ํ•ด์„์  ์—ฐ์†์„ ํ†ตํ•ด $s = 1$์„ ์ œ์™ธํ•œ ์ „์ฒด ๋ณต์†Œ ํ‰๋ฉด์œผ๋กœ ํ™•์žฅ๋œ๋‹ค. ์ด๋Š” ๋ฌผ๋ฆฌํ•™์—์„œ ์ œํƒ€ ํ•จ์ˆ˜ ์ •๊ทœํ™”(์นด์‹œ๋ฏธ๋ฅด ํšจ๊ณผ ๋“ฑ)์— ์‚ฌ์šฉ๋œ๋‹ค.

# ๊ฐ๋งˆ ํ•จ์ˆ˜์˜ ํ•ด์„์  ์—ฐ์† ์‹œ๊ฐํ™”
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import gamma

x = np.linspace(-4.5, 5, 2000)
y = np.array([gamma(xi) if abs(xi - round(xi)) > 0.02 or xi > 0.5
              else np.nan for xi in x])

plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b-', linewidth=1.5)
plt.ylim(-10, 10)
for n in range(0, -5, -1):
    plt.axvline(x=n, color='red', linewidth=0.5, linestyle='--', alpha=0.5)

plt.xlabel('z')
plt.ylabel('ฮ“(z)')
plt.title('๊ฐ๋งˆ ํ•จ์ˆ˜์˜ ํ•ด์„์  ์—ฐ์† (์Œ์˜ ์ •์ˆ˜์—์„œ ๊ทน์ )')
plt.grid(True, alpha=0.3)
plt.axhline(0, color='k', linewidth=0.5)
plt.tight_layout()
plt.show()

์—ฐ์Šต ๋ฌธ์ œ

๊ธฐ๋ณธ ๋ฌธ์ œ

  1. ๋‹ค์Œ ํ•จ์ˆ˜๊ฐ€ ํ•ด์„์ ์ธ์ง€ ์ฝ”์‹œ-๋ฆฌ๋งŒ ์กฐ๊ฑด์œผ๋กœ ํŒ๋ณ„ํ•˜๋ผ:
  2. (a) $f(z) = z^3$
  3. (b) $f(z) = |z|^2$
  4. (c) $f(z) = \bar{z}$
  5. (d) $f(z) = e^{-z}\sin z$

  6. $u(x, y) = x^3 - 3xy^2 + 2x$์˜ ์กฐํ™” ์ผค๋ ˆ $v(x, y)$๋ฅผ ๊ตฌํ•˜๋ผ.

  7. ๋‹ค์Œ ์ ๋ถ„์„ ๊ณ„์‚ฐํ•˜๋ผ ($C$: ์›์  ์ค‘์‹ฌ ๋ฐ˜์ง€๋ฆ„ 2):

  8. (a) $\oint_C e^z/z^2\, dz$
  9. (b) $\oint_C \cos z/z^3\, dz$
  10. (c) $\oint_C z^2/((z-1)(z+2))\, dz$

์ค‘๊ธ‰ ๋ฌธ์ œ

  1. ์œ ์ˆ˜ ์ •๋ฆฌ๋กœ ๊ณ„์‚ฐํ•˜๋ผ:
  2. (a) $\displaystyle\int_0^{2\pi} \frac{d\theta}{5 + 4\cos\theta}$
  3. (b) $\displaystyle\int_0^{\infty} \frac{x^2}{(x^2+1)(x^2+4)}\, dx$
  4. (c) $\displaystyle\int_0^{\infty} \frac{\cos 3x}{x^2 + 1}\, dx$

  5. $f(z) = z/((z-1)^2(z+2))$์˜ ๋ชจ๋“  ํŠน์ด์ ์—์„œ ์œ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , $|z|=3$ ์œ„์˜ ์ ๋ถ„๊ฐ’์„ ๊ตฌํ•˜๋ผ.

์‹ฌํ™” ๋ฌธ์ œ

  1. ์œ ์ฒด์—ญํ•™: ์†Œ์Šค($z=a$)์™€ ์‹ฑํฌ($z=-a$)๊ฐ€ ์žˆ๊ณ  $x$์ถ•์ด ๋ฒฝ์ผ ๋•Œ, ์˜์ƒ๋ฒ•์œผ๋กœ ์ƒ๋ฐ˜๋ฉด ์œ ์„  ํ•จ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ.

  2. ์–‘์ž์—ญํ•™: ๊ทธ๋ฆฐ ํ•จ์ˆ˜ $G(E) = (E - H + i\epsilon)^{-1}$๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฐ€๋„ $\rho(E) = -\text{Im}\, G(E)/\pi$๋ฅผ ์œ ์ˆ˜ ์ •๋ฆฌ๋กœ ์œ ๋„ํ•˜๋ผ.

  3. ํ’€์ด (๋ฌธ์ œ 4a):

z = sp.Symbol('z')
# โˆซโ‚€ยฒฯ€ dฮธ/(5+4cosฮธ) โ†’ โˆฎ 1/(i(2zยฒ+5z+2)) dz
integrand = 1 / (sp.I * (2*z**2 + 5*z + 2))
poles = sp.solve(2*z**2 + 5*z + 2, z)
print(f"๊ทน์ : {poles}")  # z=-1/2 (๋‚ด๋ถ€), z=-2 (์™ธ๋ถ€)
res = sp.residue(integrand, z, sp.Rational(-1, 2))
print(f"์ ๋ถ„๊ฐ’: {sp.simplify(2*sp.pi*sp.I*res)}")  # 2ฯ€/3

์ฐธ๊ณ  ์ž๋ฃŒ

๊ต์žฌ

  • Boas, M. L. Mathematical Methods in the Physical Sciences, 3rd ed., Ch. 14
  • Arfken, Weber Mathematical Methods for Physicists, Ch. 6-7
  • Churchill, Brown Complex Variables and Applications

๋ณด์ถฉ ์ž๋ฃŒ

  • Needham, T. Visual Complex Analysis - ๊ธฐํ•˜ํ•™์  ์ง๊ด€
  • Ablowitz, Fokas Complex Variables: Introduction and Applications - ๋ฌผ๋ฆฌํ•™ ์‘์šฉ

ํ•ต์‹ฌ ๊ณต์‹ ์š”์•ฝ

๊ณต์‹ ์กฐ๊ฑด
์ฝ”์‹œ-๋ฆฌ๋งŒ: $u_x = v_y$, $u_y = -v_x$ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅ
์ฝ”์‹œ ์ •๋ฆฌ: $\oint_C f\, dz = 0$ ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋‚ด ํ•ด์„์ 
์ฝ”์‹œ ๊ณต์‹: $f(z_0) = \frac{1}{2\pi i}\oint \frac{f}{z-z_0} dz$ $f$ ํ•ด์„์ , $z_0$ ๋‚ด๋ถ€
์œ ์ˆ˜ ์ •๋ฆฌ: $\oint f\, dz = 2\pi i \sum \text{Res}$ ์œ ํ•œ ํŠน์ด์ 

๋‹ค์Œ ๋ ˆ์Šจ

15. ๋ผํ”Œ๋ผ์Šค ๋ณ€ํ™˜ (Laplace Transform)์—์„œ๋Š” ๋ผํ”Œ๋ผ์Šค ๋ณ€ํ™˜์˜ ์ •์˜์™€ ์„ฑ์งˆ, ์—ญ๋ณ€ํ™˜, ๋ฏธ๋ถ„๋ฐฉ์ •์‹์—์˜ ์‘์šฉ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

to navigate between lessons