대부분의 미분방정식은 식으로 풀리지 않습니다. 날씨 예보, 로켓의 궤도, 단백질의 움직임, 신경 ODE는 모두 컴퓨터로 조금씩 앞으로 나아가며 근사해를 계산합니다. 이 장에서는 가장 단순한 오일러 방법에서 시작해, 오차가 간격에 따라 얼마나 빨리 줄어드는지(정확도의 차수)를 따지고, 실제로 가장 많이 쓰이는 RK4까지 갑니다. 간격을 너무 크게 잡으면 해가 폭발하는 안정성 문제도 다룹니다.
7.1 오일러 방법
y′=f(t,y), y(t0)=y0를 간격 h로 풉니다. 현재 점에서의 기울기 f(tn,yn)로 직선을 따라 h만큼 갑니다.
정의 7.1 (오일러 방법).yn+1=yn+hf(tn,yn), tn+1=tn+h.
1장의 기울기장에서 선분을 따라 한 걸음씩 걷는 것과 같습니다. 연립계 y′=f(t,y)도 같은 식을 벡터로 씁니다.
예제 7.2.y′=y, y(0)=1, h=0.5로 y(1)을 어림합니다. y1=1+0.5=1.5, y2=1.5+0.75=2.25. 정확한 값 e≈2.718보다 작습니다. 일반적으로 h=1/n이면 yn=(1+n1)n이고, n→∞에서 e로 갑니다.
7.2 오차와 차수
국소 오차(local error): 한 걸음에서 생기는 오차. 테일러 전개 y(t+h)=y+hy′+2h2y′′+⋯와 비교하면 오일러 방법은 2h2y′′부터 버리므로 국소 오차가 O(h2)입니다.
전역 오차(global error): 끝 시각 T까지 T/h걸음 동안 쌓인 오차. 대략 (T/h)⋅O(h2)=O(h).
정의 7.3. 전역 오차가 O(hp)인 방법을 p차 방법이라 합니다.
오일러 방법은 1차입니다. 간격을 절반으로 하면 오차가 절반, 정확도 한 자리를 얻으려면 계산이 10배입니다. p차 방법은 간격을 절반으로 하면 오차가 2p분의 1이 됩니다.
7.3 룽게–쿠타 방법
한 걸음 안에서 기울기를 여러 번 재어 평균합니다.
개선된 오일러(호인) 방법: 오일러로 끝점을 미리 가 보고, 시작점과 끝점의 기울기를 평균합니다.
4차 방법입니다. 가중치 1,2,2,1은 f가 t만의 함수일 때 심프슨 공식이 됩니다. 한 걸음에 f를 네 번 계산하지만, 같은 정확도를 얻는 데 오일러보다 훨씬 적은 걸음이 듭니다.
예제 7.5.y′=y, y(0)=1, h=1로 RK4 한 걸음: k1=1, k2=1.5, k3=1.75, k4=2.75, y1=1+61(1+3+3.5+2.75)=2.7083. 걸음 하나로 e와 0.01 차이입니다. (오일러는 같은 간격에서 2.)
간격 h를 줄이면 두 방법 모두 정확한 해(점선)에 가까워지지만, 오일러(빨강)는 오차가 h에 비례해 천천히, RK4(파랑)는 h⁴에 비례해 빠르게 줄어듭니다. 진동 문제에서 오일러는 진폭이 점점 커지는(에너지가 생기는) 잘못된 해를 줍니다
이 위젯은 JavaScript가 필요합니다
7.4 안정성과 강성
예제 7.6.y′=−λy(λ>0)에 오일러 방법을 쓰면 yn+1=(1−hλ)yn. 참 해는 0으로 줄어들지만, ∣1−hλ∣>1, 곧 h>2/λ이면 수치해는 부호를 바꾸며 폭발합니다. 최적화 3장에서 학습률이 2/L을 넘으면 경사하강법이 발산하는 것과 같은 현상입니다.
강성(stiffness): 빠르게 감쇠하는 성분(λ가 큼)과 느리게 변하는 성분이 섞여 있으면, 빠른 성분은 금방 사라지는데도 안정성 때문에 간격을 2/λmax보다 작게 해야 합니다. 화학 반응, 회로 시뮬레이션에서 흔합니다.
후진 오일러 방법(backward Euler): yn+1=yn+hf(tn+1,yn+1). 끝점의 기울기를 쓰므로 yn+1에 대한 방정식을 풀어야 합니다(음함수 방법, implicit method). 대신 y′=−λy에서 yn+1=1+hλyn로 어떤 h에서도 안정합니다. 강성 방정식에는 이런 음함수 방법을 씁니다.
7.5 실제 풀이기
적응 간격(adaptive step size): 4차와 5차 근사를 함께 계산해(예: RK45, 도르만–프린스 방법) 차이로 오차를 어림하고, 오차가 크면 간격을 줄이고 작으면 키웁니다. SciPy의 solve_ivp, MATLAB의 ode45가 기본으로 씁니다.
에너지 보존: 행성 궤도처럼 오래 계산할 때는 RK4도 에너지가 천천히 새어 나갑니다. 보존 구조를 지키는 심플렉틱 방법(예: 립프로그·베를레 방법)을 씁니다.
신경 ODE. 잔차 신경망 hk+1=hk+fθ(hk)는 h′=fθ(h)를 간격 1의 오일러 방법으로 푼 것으로 볼 수 있습니다. 신경 ODE(neural ODE)는 거꾸로 연속 방정식을 모델로 삼고 적응 간격 풀이기로 계산합니다. 확산 모델의 샘플링 단계 수를 줄이는 연구(DDIM, DPM-Solver)도 이 장의 고차 수치 방법을 쓰는 것입니다.
7.6 이 장의 요약
오일러 yn+1=yn+hf: 1차(전역 오차 O(h)).
개선된 오일러 2차, RK4 4차: 간격을 절반으로 하면 오차가 1/16.
안정성: 오일러는 h<2/λ. 강성 방정식에는 후진 오일러 같은 음함수 방법.
실제로는 적응 간격(RK45). 잔차망 = 오일러 방법, 신경 ODE.
쓰이는 곳. 물리 시뮬레이션(분자 동역학, 천체 역학, 게임 물리 엔진), 회로 시뮬레이터(SPICE), 기후 모형, 제어 시스템 시뮬레이션, 신경 ODE와 연속 정규화 흐름, 확산 모델의 고속 샘플러, 경사하강법의 해석(오일러 방법으로서의 경사하강법)이 이 장의 방법입니다.
문제
7.1 [계산] · 확인 문제
y′=t+y, y(0)=1에 h=0.1로 오일러 방법을 두 번 쓰면 y2는?
정답
1.22
풀이
y1=1+0.1(0+1)=1.1, y2=1.1+0.1(0.1+1.1)=1.22입니다.
7.2 [계산] · 확인 문제
y′=y, y(0)=1에 h=1로 개선된 오일러 방법을 한 번 쓰면 y1은?
정답
2.5
풀이
k1=1, k2=f(1,2)=2, y1=1+21(1+2)=2.5입니다.
7.3 [계산] · 확인 문제
4차 방법에서 간격을 1/10로 줄이면 전역 오차는 대략 몇 분의 1이 되나요?
정답
10000
풀이
104=10000분의 1입니다.
7.4 [계산] · 확인 문제
y′=−50y에 오일러 방법을 쓸 때 수치해가 폭발하지 않는 간격의 상한은?
정답
0.04
풀이
∣1−50h∣≤1에서 h≤2/50=0.04입니다.
7.5 [증명]
y′=−λy(λ>0)에 후진 오일러 방법을 쓰면 모든 h>0에서 수치해가 0으로 감을 보입니다.