복소해석

편집 역사 토론
수치해석 계산물리 마지막 수정: 2026-08-23 04:31:05

1. 개요[편집]

복소해석
Complex Analysis
대상복소변수 함수의 미분·적분·급수
중심 개념정칙성(holomorphy) — 복소미분 가능
기둥 정리코시 적분정리 · 코시 적분공식 · 유수 정리
대표 도구로랑 급수 · 편각 원리 · 해석적 연속 · 등각사상
수치해석에서실수 문제의 수렴 속도를 복소평면의 특이점이 정한다

실수축에서 답이 안 나오면 허수축으로 우회한다. 그런데 우회한 쪽이 더 빠른 경우가 너무 많아서, 이젠 그게 정공법이다.

복소해석(complex analysis)은 복소수를 변수로 갖는 함수의 미분·적분·급수를 다루는 해석학 분야이며, 그 중심에는 정칙함수(holomorphic function) — 어떤 영역의 모든 점에서 복소미분이 가능한 함수 — 라는 단 하나의 개념이 있다.

복소미분 가능이라는 조건이 실함수의 미분 가능과 비교할 수 없을 만큼 강하다는 점이 이 분야의 전부다. 실수에서는 한 번 미분되면서 두 번은 안 되는 함수를 얼마든지 만들 수 있지만, 복소평면에서는 한 번 미분되는 순간 무한히 미분되고 수렴하는 멱급수로 전개되며, 한 점 근방에서의 값이 영역 전체를 결정한다. 조건 하나 붙였다고 이렇게까지 강해지는 이유는 극한 limh0(f(z+h)f(z))/h\lim_{h\to0}(f(z+h)-f(z))/h 에서 hh모든 방향에서 다가올 수 있고, 그 모든 방향이 같은 답을 내라고 요구하기 때문이다.

수치해석 하는 사람에게 이 문서가 필요한 이유는 낭만이 아니다. 실수 구간에서 도는 알고리즘의 수렴 속도가 복소평면의 특이점 위치로 결정되는 경우가 지긋지긋할 만큼 많다. 체비쇼프 급수의 수렴률, 사다리꼴 공식이 왜 주기함수에서만 기하급수적으로 좋아지는지, 파데 근사의 극점이 무엇을 흉내 내는지, 행렬함수를 등고선 적분으로 어떻게 계산하는지 — 전부 여기서 나온다.

2. 코시-리만 방정식과 정칙성[편집]

f(z)=u(x,y)+iv(x,y)f(z)=u(x,y)+iv(x,y), z=x+iyz=x+iy 로 놓고 hh 를 실축 방향과 허축 방향으로 각각 보내 두 극한이 같기를 요구하면 즉시 나오는 것이 코시-리만 방정식이다.

ux=vy,uy=vx\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \qquad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}

u,vu,v 가 연속 편도함수를 가지면서 이것을 만족하면 ff 는 정칙이다. 한 번 더 미분해서 더하면 Δu=Δv=0\Delta u = \Delta v = 0정칙함수의 실부와 허부는 자동으로 조화함수다. 2차원 라플라스 방정식 문제 전체가 복소해석의 사정거리에 들어오는 것이 이 두 줄 때문이고, 포텐셜 유동에서 속도포텐셜과 유동함수가 짝을 이루는 것도 이것이다.

기억할 만한 요약은 **”zˉ\bar z 에 의존하지 않는 함수”**다. 비어팅어 미분 zˉ=12(x+iy)\partial_{\bar z}=\tfrac12(\partial_x+i\partial_y) 로 쓰면 코시-리만은 zˉf=0\partial_{\bar z}f=0 한 줄이 되고, 그래서 zˉ\bar z, z|z|, Rez\mathrm{Re}\,z 는 어디서도 정칙이 아니다. 코드에서 켤레를 취하는 연산이 들어가는 순간 정칙성이 깨진다는 이 사실은 아래 복소 스텝 미분에서 다시 발목을 잡는다.

3. 코시 적분정리와 적분공식[편집]

ff 가 단순연결 영역에서 정칙이면 그 안의 어떤 닫힌 경로에 대해서도

γf(z)dz=0\oint_\gamma f(z)\,dz = 0

이다(코시 1825, 구르사 1900이 ff' 의 연속성 가정을 제거). 실용적 번역은 적분 경로를 특이점을 넘지 않는 한 마음대로 주물러도 값이 안 변한다는 것 — 이 자유가 아래 탈봇 등고선의 근거 전부다.

여기서 한 걸음 더 가면 코시 적분공식이 나온다.

f(n)(z0)=n!2πiγf(z)(zz0)n+1dzf^{(n)}(z_0) = \frac{n!}{2\pi i}\oint_\gamma \frac{f(z)}{(z-z_0)^{n+1}}\,dz

경계에서의 값만 알면 내부의 값과 모든 계 도함수가 결정된다. 여기서 정칙함수의 해석성(멱급수 전개), 코시 부등식 f(n)(z0)n!M/rn|f^{(n)}(z_0)|\le n!M/r^n, 유계 전해석함수는 상수라는 리우빌 정리, 그리고 리우빌에서 대수학의 기본정리가 줄줄이 딸려 나온다.1 최대 모듈러스 원리(“정칙함수의 절댓값은 내부에서 최대가 되지 않는다”)도 같은 뿌리이며, 이것의 조화함수판이 라플라스 방정식 이산 해법의 최대 원리와 정확히 같은 성질이다.

4. 로랑 급수와 유수[편집]

특이점을 품은 고리 모양 영역에서는 테일러 대신 로랑 급수를 쓴다(로랑 1843).

f(z)=n=cn(zz0)n,cn=12πiγf(z)(zz0)n+1dzf(z) = \sum_{n=-\infty}^{\infty} c_n (z-z_0)^n, \qquad c_n = \frac{1}{2\pi i}\oint_\gamma \frac{f(z)}{(z-z_0)^{n+1}}\,dz

음의 지수 부분(주요부, principal part)이 특이점의 정체를 말해 준다 — 없으면 제거가능, 유한개면 극점, 무한개면 진성특이점이다.2 그리고 계수 하나가 유독 특별하다.

c1=Res(f,z0),γf(z)dz=2πikRes(f,zk)c_{-1} = \mathrm{Res}(f,z_0), \qquad \oint_\gamma f(z)\,dz = 2\pi i \sum_k \mathrm{Res}(f, z_k)

유수 정리다. 적분이 “안에 든 극점에서 c1c_{-1} 을 긁어모으는 일”로 환원된다. 학부에서는 dx1+x4\int_{-\infty}^{\infty}\frac{dx}{1+x^4} 같은 실적분을 반원 경로로 푸는 도구로 배우지만, 공학적 값어치는 다른 데 있다.

  • 부분분수의 정체. 유리함수의 라플라스 역변환이 극점마다의 지수항 합이 되는 것은 유수 계산 그 자체다. 전달함수의 극점이 곧 시간응답의 모드라는 제어공학의 상식이 여기서 나온다.
  • 분산 관계. 인과성(응답함수가 상반평면에서 정칙)에 코시 공식을 적용하면 실부와 허부를 잇는 크라메르스-크로니히 관계가 나온다. 유전율의 실부와 흡수를 따로 측정할 필요가 없다는 실험적 결론이 순전히 복소해석의 산물이다.
  • 격자합·급수합. πcot(πz)\pi\cot(\pi z) 처럼 정수마다 유수 1인 함수를 곱해 적분하면 무한급수가 유수 합으로 바뀐다. 1/n2=π2/6\sum 1/n^2 = \pi^2/6 을 이 방법으로 얻는다.

5. 편각 원리 — 근을 세는 적분[편집]

ff 가 경로 γ\gamma 안에서 유리형(meromorphic)이고 경로 위에서 0도 극점도 아니면

12πiγf(z)f(z)dz=ZP\frac{1}{2\pi i}\oint_\gamma \frac{f'(z)}{f(z)}\,dz = Z - P

이다. Z,PZ,P 는 중복도까지 센 영점·극점의 개수. 좌변은 argf\arg f 가 경로를 한 바퀴 도는 동안 감은 횟수와 같아서 편각 원리라 부른다. 여기서 루셰 정리(”g<f|g|<|f| 이면 fff+gf+g 의 영점 개수가 같다”)가 따라오고, 이것이 근의 위치를 섭동에 대해 안정적으로 세는 표준 도구가 된다.

공학에서 이 정리는 두 갈래로 현금화된다.

나이퀴스트 안정성 판별법. 나이퀴스트(1932)가 편각 원리를 1+L(s)1+L(s) 에 적용해 얻은 것이 Z=N+PZ=N+P — 우반평면 폐루프 극점 수는 나이퀴스트 궤적이 1-1 을 감은 횟수에 개루프 우반평면 극점 수를 더한 것이다. 특성방정식을 풀지 않고 주파수응답 그림만 보고 안정성을 판정할 수 있게 만든 것이 이 정리의 공학사적 의의다. 자세한 것은 해당 문서에 있다.

② 등고선 적분에 의한 근 세기와 고유값 계산. 델브스와 라이네스(1967)가 제안한 방법은 정직하다 — 관심 영역을 경로로 감싸고 위 적분을 수치구적하면 그 안에 근이 몇 개 있는지를 정수로 얻는다. 한 걸음 더 가서 모멘트

sk=12πiγzkf(z)f(z)dz=jzjks_k = \frac{1}{2\pi i}\oint_\gamma z^k\,\frac{f'(z)}{f(z)}\,dz = \sum_{j} z_j^k

를 여러 kk 에 대해 계산하면 뉴턴 항등식으로 근들의 대칭다항식이 나오고, 결국 근 자체를 복원할 수 있다. 이 아이디어의 현대판이 부분공간 고유값 솔버다 — 사쿠라이-스기우라(2003)와 폴리치의 FEAST(2009)는 레졸번트 (zIA)1(zI-A)^{-1} 를 관심 구간을 감싸는 경로에서 구적해 원하는 구간의 고유쌍만 골라 뽑는다. 구적점마다의 이동된 선형계가 서로 독립이라 완벽히 병렬화된다는 것이 이 계열의 최대 장점이고, 베인(2012)이 같은 틀을 비선형 고유값 문제로 확장했다. “근을 찾는다”는 문제가 “적분한다”는 문제로 바뀌면 병렬화와 국소화가 공짜로 따라온다는 것이 요점.

6. 등각사상과 해석적 연속[편집]

f(z0)0f'(z_0)\ne0 인 정칙함수는 국소적으로 각도를 보존한다. 이 성질을 형상 문제에 써먹는 이야기 — 리만 사상 정리, 슈바르츠-크리스토펠, 주코프스키 익형, 3차원에서 왜 안 되는지 — 는 등각사상 문서가 통째로 다루므로 여기서는 넘긴다. 뫼비우스 변환리만 사상 정리도 각각 독립 문서가 있다.

대신 여기서 짚을 것은 해석적 연속(analytic continuation)이다. 정칙함수는 한 점 근방의 값만으로 확장이 유일하게 결정된다(일치 정리). n0zn\sum_{n\ge0}z^nz<1|z|<1 에서만 수렴하지만 그것이 정의하는 함수 1/(1z)1/(1-z)z=1z=1 만 빼고 온 평면에 산다. 급수는 함수를 담는 그릇 중 하나일 뿐이고, 그릇이 깨져도 함수는 남는다는 것.

문제는 확장이 한 바퀴 돌면 제자리로 안 돌아올 수 있다는 것이다. z\sqrt zlogz\log z 를 원점 주위로 연속시키면 값이 바뀐다. 이 다가성을 “가지 자르기(branch cut)로 잘라내는” 대신 정의역 자체를 여러 겹으로 만들어 함수를 일가로 되돌리는 것이 리만의 발상이고, 그 여러 겹 정의역이 **리만 곡면**이다. z\sqrt z 의 리만 곡면은 두 장을 갈래점에서 이어 붙인 것이고, logz\log z 는 무한 나선이다. 계산공학에서 이 구조가 실제로 문제가 되는 자리는 행렬함수의 가지 선택(행렬 제곱근·로그가 여러 개인 이유), 그리고 광선 추적에서 갈래점 주위를 도는 광선의 위상 관리다.

수치적으로는 한 가지 경고가 붙는다. 해석적 연속은 비정칙(ill-posed) 문제다. 구간의 데이터에 아무리 작은 노이즈를 얹어도 먼 곳으로의 연속은 임의로 크게 흔들릴 수 있다. 파데 근사가 수렴반경 너머로 나가는 실용적 도구인 것은 맞지만, 그 대가로 노이즈가 극-영점 쌍(프루아사르 이중항)으로 나타나는 것도 같은 이유다. 공짜로 얻는 정보는 없다.

7. 수치해석은 왜 복소평면으로 나가는가[편집]

이제 본론이다. 실수 알고리즘의 성능이 복소평면의 기하학으로 설명되는 대표 사례들.

7.1. 특이점의 위치가 수렴 속도를 정한다[편집]

[1,1][-1,1] 에서 함수를 체비쇼프 다항식으로 전개할 때, 수렴률은 매끄러움이 아니라 베른슈타인 타원으로 결정된다. 초점이 ±1\pm1 인 타원 EρE_\rho (ρ>1\rho>1 은 반축의 합) 안에서 ff 가 정칙이고 fM|f|\le M 이면

ak2Mρk,ffn2Mρnρ1|a_k| \le 2M\rho^{-k}, \qquad \|f - f_n\|_\infty \le \frac{2M\rho^{-n}}{\rho-1}

가장 가까운 복소 특이점을 감싸는 최대 타원이 곧 수렴률이다. 룽게 함수 1/(1+25x2)1/(1+25x^2) 가 실축에서 완벽히 매끄러운데도 다항식 근사가 애를 먹는 이유는 x=±i/5x=\pm i/5 에 극점이 있어서 타원이 납작하게 눌리기 때문이다. 실수축만 보면 절대 안 보이는 사정이라, 스펙트럴 방법의 수렴 진단은 늘 복소평면에서 한다.

주기함수의 사다리꼴 공식도 같은 이야기다. 폭 2a2a 의 띠에서 정칙이면 nn 점 사다리꼴 공식의 오차가 O(ean)O(e^{-an}) 로 떨어진다 — 사다리꼴이 2차 정확도라는 상식이 주기·해석함수에서만 기하급수로 승격되는 것이고, 트레페텐과 바이데만(2014)이 이 현상을 한 편의 리뷰로 정리했다. 푸리에 변환 기반 방법들이 부드러운 주기 문제에서 기괴하게 잘 도는 근거가 이것이다.

7.2. 코시 적분으로 미분하기 — 복소 스텝 미분과는 다른 물건이다[편집]

라이네스와 몰러(1967)가 제안한 것은 코시 적분공식을 그대로 구적하는 것이다. z0z_0 중심 반지름 rr 인 원 위에 NN 점을 등간격으로 잡으면 (사다리꼴 = 고속 푸리에 변환 한 번)

f(n)(z0)n!Nrnj=0N1f(z0+rωj)ωjn,ω=e2πi/Nf^{(n)}(z_0) \approx \frac{n!}{N r^n}\sum_{j=0}^{N-1} f\bigl(z_0 + r\,\omega^j\bigr)\,\omega^{-jn}, \qquad \omega = e^{2\pi i/N}

이 된다. 오차는 뺄셈이 아니라 앨리어싱에서 온다 — 정확히는 n!k1an+kNrkNn!\sum_{k\ge1}a_{n+kN}r^{kN} 이라, rr 을 고정하고 표본 수 NN 을 키우면 테일러 계수의 감쇠 속도만큼 기하급수적으로 줄어든다. 한편 반올림은 대략 n!ϵmaxf/rnn!\,\epsilon\max|f|/r^n 로 들어와 rr작을수록 커진다. 그래서 유한차분처럼 h0h\to0 으로 짜내는 것이 아니라 두 오차가 균형을 이루는 적당한 크기의 반지름을 고르는 것이 정답이라는 점이 이 방법의 반직관적 매력이다. 실축 위에서 자릿수 소실로 죽던 계산이 원 위에서는 그 문제 자체를 만나지 않는다.3 지수 적분기φ\varphi 함수를 복소 원 위 평균으로 계산하는 관행이 정확히 이 기법이다.

여기서 반드시 구별해야 할 것이 복소 스텝 미분(complex-step derivative)이다. 이름이 비슷하고 둘 다 복소수를 쓰지만 원리가 다르다.

f(x)Imf(x+ih)h+O(h2)f'(x) \approx \frac{\mathrm{Im}\,f(x+ih)}{h} + O(h^2)

이것은 등고선 적분이 아니다. ff 가 실축에서 실수값이고 테일러 계수가 실수라는 성질을 이용해 허부를 뽑으면 짝수차 항이 통째로 사라진다는 대칭성 트릭이다. 구적점이 하나뿐이고, 뺄셈이 없어 h=10200h=10^{-200} 도 안전하며, 2차 정확도다. 대신 제약이 뚜렷하다 — 1계 도함수 전용이고(2계는 실부를 쓰는데 거기엔 뺄셈이 돌아온다), 함수가 실축에서 실수여야 하며, 코드 안에 abs·max·비교문·켤레 연산이 있으면 정칙성이 깨져 조용히 틀린 값이 나온다. 원리를 한 줄로 대비하면: 라이네스-몰러는 코시 공식을 구적한 것이고, 복소 스텝은 대칭성으로 짝수항을 지운 것이다. 자세한 실무 팁은 수치미분 문서에 있다.4

7.3. 라플라스 역변환 — 브롬위치 적분과 탈봇 곡선[편집]

라플라스 역변환은 정의부터 등고선 적분이다.

f(t)=12πicic+iF(s)estdsf(t) = \frac{1}{2\pi i}\int_{c-i\infty}^{c+i\infty} F(s)\,e^{st}\,ds

FF 가 유리함수면 경로를 왼쪽으로 닫아 유수를 걷으면 끝이고, 그것이 부분분수 전개다. 문제는 FF 가 유리함수가 아닐 때 — 예컨대 확산 문제의 exse^{-x\sqrt s} 같은 것 — 인데, 세로선 위에서 직접 구적하면 este^{st} 가 진동만 하고 감쇠하지 않아 수렴이 처참하다.

탈봇(1979)의 아이디어는 코시 정리의 “경로를 주물러도 된다”를 극한까지 밀어붙인 것이다. 특이점(대개 음의 실축상의 가지 자르기)을 넘지 않으면서 경로를 왼쪽으로 열린 곡선으로 변형하면, 곡선의 양끝이 Res\mathrm{Re}\,s\to-\infty 로 가므로 este^{st} 가 지수적으로 죽어 피적분함수가 급격히 작아진다. 그 위에서 사다리꼴 공식을 쓰면 앞 절의 논리에 의해 구적점 수에 대해 기하급수 수렴이 나온다. 트레페텐·바이데만·슈멜처(2006)가 탈봇 곡선·포물선·쌍곡선 경로를 최적화한 결과, 실무에서는 N20N\approx203030 점이면 배정밀도 한계에 닿는다.

주의사항도 분명하다. 최적 경로는 tt 에 의존하므로 넓은 시간 범위를 한 경로로 덮으면 정확도가 무너진다. FF 의 특이점이 허수축에 늘어선 진동 문제(감쇠 없는 파동)에서는 경로를 왼쪽으로 열 수가 없어 이 계열이 통째로 실패한다. 그리고 반올림 증폭 때문에 얻을 수 있는 자릿수에 상한이 있어서, 정확도를 더 원한다고 NN 을 무작정 키우면 오히려 나빠진다.

7.4. 행렬함수와 유리 근사[편집]

같은 논리가 행렬로 올라가면 f(A)=12πiΓf(z)(zIA)1dzf(A)=\frac{1}{2\pi i}\oint_\Gamma f(z)(zI-A)^{-1}dz 가 되고, 구적하면 이동된 선형계 (zjIA)x=b(z_jI-A)x=b 몇 개로 환원된다. 이 계열의 알고리즘과 경로 설계는 행렬함수 문서가 다룬다.

경로 적분을 유리함수 근사로 “압축”한 것이 파데 근사와 그 사촌들이다. 유리함수의 극점 배치가 곧 근사가 흉내 내는 특이점 구조이므로, eze^z 의 파데 근사가 A-안정 룽게-쿠타 도식과 대응하는 것도, AAA 알고리즘이 극점을 코너 특이성 근처에 몰아 배치해 라플라스 문제를 푸는 것도 결국 같은 문장의 변주다 — 좋은 근사란 원함수의 특이점을 잘 흉내 내는 근사다.

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 대수학의 기본정리(”nn 차 복소다항식은 중복도까지 세어 근이 정확히 nn 개”)를 순수 대수로 증명하는 것은 의외로 어렵고, 표준 증명은 전부 해석학을 빌린다. 리우빌 정리로 세 줄, 편각 원리로 다섯 줄. 대수학의 기본정리를 대수학이 못 증명하는 상황을 두고 수학자들도 민망해한다.

  2. 진성특이점 근처에서 정칙함수가 어떻게 되는지를 말해 주는 것이 피카르의 큰 정리다 — 많아야 한 개의 예외값을 빼고 모든 복소수를 무한히 자주 취한다. e1/ze^{1/z} 가 원점 근방에서 0만 빼고 온 세상 값을 무한 번씩 찍는다는 뜻인데, 이런 함수를 수치적으로 다뤄야 하는 상황이 오면 그냥 도망가는 것이 맞다.

  3. 오일러 항등식 eiπ+1=0e^{i\pi}+1=0 이 “가장 아름다운 식”으로 뽑히는 것에 이견은 없지만, 수치해석자에게 실무적으로 더 중요한 것은 eiθe^{i\theta} 가 단위원을 등속으로 돈다는 사실 쪽이다. 고속 푸리에 변환의 회전인자, 위 라이네스-몰러 공식의 ωj\omega^j, 탈봇 경로의 매개화가 전부 이 한 줄에 얹혀 있다.

  4. 복소 스텝 미분을 처음 쓰는 사람이 겪는 국룰 사고가 있다. 잘 돌던 코드에 if (x > 0) 하나가 들어 있었고, 복소수 비교가 실부만 보게 구현돼 있어서 미분값이 정확히 0이 나온다. 값 자체는 멀쩡하니 버그를 찾는 데 반나절이 간다. 검증은 항상 해석해가 있는 함수 하나로 먼저 하자.