크랭크-니콜슨법

편집 역사 토론
수치해석 시뮬레이션 마지막 수정: 2026-07-13 04:11:20

1. 개요[편집]

크랭크-니콜슨법(Crank-Nicolson method)은 시간에 대한 편미분방정식을 이산화할 때 현재 시간 단계와 다음 시간 단계의 공간 항을 평균(사다리꼴 적분) 하여 시간 전진시키는 반음해(semi-implicit) 시간 적분 도식이다. 1947년 존 크랭크(John Crank)와 필리스 니콜슨(Phyllis Nicolson)이 열전달 해석의 수치 계산을 위해 제안했으며1, 시간에 대해 2차 정확도를 가지면서 무조건 안정(A-안정)이라는 두 마리 토끼를 동시에 잡은 도식으로 확산 문제의 사실상 표준이 되었다.

한마디로 요약하면 “명시적 오일러의 빠름과 음해 오일러의 안정성을 반반씩 섞은 국룰 도식”이다. 물론 세상에 공짜는 없어서, 큰 시간 간격에서는 진동(스퓨리어스 오실레이션)이라는 대가를 치른다.

2. 세타 방법과의 관계[편집]

크랭크-니콜슨법은 더 일반적인 세타(θ) 방법의 특수한 경우다. 확산 방정식 u/t=α2u/x2\partial u/\partial t = \alpha\, \partial^2 u/\partial x^2 을 공간 이산화한 뒤 시간 항을 다음처럼 쓴다.

un+1unΔt=α[(1θ)Lun+θLun+1]\frac{u^{n+1} - u^n}{\Delta t} = \alpha\left[(1-\theta)\,L u^n + \theta\, L u^{n+1}\right]

여기서 LL은 공간 2계 미분 연산자(예: 중심차분)이고 θ[0,1]\theta \in [0,1]가 음해성의 정도를 조절한다.

  • θ=0\theta = 0명시적 오일러(전진 오일러). 1차 정확도, 조건부 안정.
  • θ=1\theta = 1 — 음해 오일러(후진 오일러). 1차 정확도, 무조건 안정.
  • θ=1/2\theta = 1/2크랭크-니콜슨법. 시간 2차 정확도, 무조건 안정.

즉 크랭크-니콜슨법은 현재와 미래의 기울기를 정확히 반씩 신뢰한다. 이 “반반”이 사다리꼴 공식(trapezoidal rule)과 수학적으로 같은 구조이기 때문에 시간 오차가 O(Δt2)O(\Delta t^2)로 떨어지는 것.

3. 정확도와 안정성[편집]

크랭크-니콜슨법의 국소 절단 오차는 공간·시간 모두 2차, 즉 O(Δt2+Δx2)O(\Delta t^2 + \Delta x^2)이다. 명시적/음해 오일러가 시간에 대해 1차인 것과 대비되는 결정적 장점이다.

안정성은 폰 노이만 안정성 해석으로 확인한다. 파수 kk에 대한 증폭 인자(amplification factor)는

G=12rsin2(kΔx/2)1+2rsin2(kΔx/2),r=αΔtΔx2G = \frac{1 - 2r\sin^2(k\Delta x/2)}{1 + 2r\sin^2(k\Delta x/2)}, \qquad r = \frac{\alpha \Delta t}{\Delta x^2}

로 주어진다. 분자·분모를 보면 임의의 r>0r>0에 대해 G1|G| \le 1이 항상 성립한다. 즉 CFL 조건 같은 시간 간격 제약 없이 무조건 안정하다. 선형 안정성 이론에서 실수 음의 고유값 전체에 대해 안정한 성질을 A-안정(A-stability)이라 부르는데, 크랭크-니콜슨은 이를 만족한다.

4. 스퓨리어스 오실레이션[편집]

문제는 여기서 시작된다. “무조건 안정 = 아무 Δt\Delta t나 써도 됨”이 절대 아니다. rr이 커지면(대략 r>1/2r > 1/2) 위 증폭 인자 GG음수가 되어, 매 시간 단계마다 부호가 뒤집히는 톱니 모양 진동이 생긴다. 초기 조건에 급격한 불연속(예: 스텝 함수)이 있을 때 특히 심하다.2

발산하지는 않으니 계산이 폭발하진 않지만, 물리적으로 존재할 수 없는 언더슈트/오버슈트(예: 음의 농도, 절대영도 이하 온도)가 나타난다. 이는 A-안정보다 강한 성질인 **L-안정(L-stability)**을 크랭크-니콜슨이 만족하지 못하기 때문이다. 고주파 성분에 대해 G1|G| \to 1이라 감쇠가 거의 없어서 진동이 오래 살아남는다.

실무적 해결책은 다음과 같다.

  • 진동이 문제되는 초반 몇 스텝만 음해 오일러(θ=1\theta=1)로 돌려 고주파를 죽인 뒤 전환하는 란초스(Rannacher) 시동.
  • θ\theta1/21/2보다 살짝 크게(예: 0.5+ϵ0.5 + \epsilon) 잡아 약간의 수치 감쇠를 도입.
  • 적응 격자 세분화나 시간 간격 축소로 셀 단위 rr을 낮추기.

5. 구현과 활용[편집]

시간 항이 음해이므로 각 시간 단계마다 선형 연립방정식을 풀어야 한다. 1차원 확산 문제에서는 삼중대각(tridiagonal) 희소행렬이 나오고, 이는 토마스 알고리즘(LU 분해의 삼중대각 특수형)으로 O(N)O(N)에 풀린다. 2차원 이상에서는 크리로프 부분공간법이나 다중격자법이 동원된다.

적용 분야는 확산이 지배하는 거의 모든 곳이다. 열전달 해석의 비정상 전도, 대류-확산 방정식의 확산 항, 옵션 가격 결정의 블랙-숄즈 방정식(금융공학에서 크랭크-니콜슨은 사실상 디폴트다), 슈뢰딩거 방정식의 시간 전개(이 경우 유니터리성을 보존하는 성질이 특히 유용하다) 등. 순수 대류 문제에서는 오히려 진동 때문에 별로 인기가 없다는 점은 알아두자.

6. 관련 문서[편집]

7. Footnotes[편집]

  1. Crank, J., & Nicolson, P. (1947). A practical method for numerical evaluation of solutions of partial differential equations of the heat-conduction type. 참고로 필리스 니콜슨은 이 논문 하나로 이름이 영원히 남았다. 수치해석 도식에 자기 이름이 붙는 것만큼 확실한 불멸은 없다.

  2. 급격한 초기 불연속을 “함부로 밟으면 삐걱대는 낡은 마루” 정도로 생각하면 된다. A-안정이라 무너지진 않지만, 밟을 때마다 삐걱삐걱(진동) 소리가 난다.