Chapter 01

미분방정식과 모델링

떨어지는 돌, 식어 가는 커피, 불어나는 세균, 줄어드는 방사성 원자. 이들에 대해 우리가 아는 법칙은 "몇 초 뒤에 어디 있다"가 아니라 "지금 이 상태라면 지금 이만큼 변한다"는 꼴입니다. 속도는 지금 받는 힘이 정하고, 식는 빠르기는 지금의 온도 차가 정합니다. 이렇게 미지의 함수와 그 도함수 사이의 관계로 쓴 법칙이 미분방정식입니다. 미분방정식은 지금 상태가 다음 순간을 정하는 규칙이고, 그 해는 규칙을 한 순간 한 순간 따라가며 그린 곡선입니다. 이 장에서는 법칙에서 방정식을 세우고, 풀기 전에 그림(방향장)으로 해를 보고, 접선을 따라 걸어서(오일러 방법) 해를 숫자로 만들고, 데이터와 맞춰 모델을 검증하는 미분방정식의 한 바퀴를 돕니다.

이 수식이 없었다면계산으로 찾은 행성, 해왕성

뉴턴의 운동 법칙 m x′′=Fm\,\mathbf{x}'' = \mathbf{F}는 행성이 "어디에 있다"고 말하지 않습니다. 지금의 위치가 힘을 정하고, 힘이 가속도를, 가속도가 다음 순간의 속도와 위치를 정한다고 말할 뿐입니다. 그래서 지금 위치와 속도를 알면 이 규칙을 따라 미래의 궤도를 계산할 수 있습니다.

19세기 천문학자들은 천왕성이 이 계산에서 조금씩 벗어난다는 것을 알았습니다. 프랑스의 르베리에(Urbain Le Verrier)는 이 어긋남을 바깥에 있는 미지의 행성이 끌어당긴 결과로 보고, 운동 방정식을 거꾸로 따져 그 행성의 위치를 계산했습니다. 1846년 9월 베를린 천문대의 갈레(Johann Galle)가 예측된 위치 가까이에서 해왕성을 찾아냈습니다. 망원경보다 먼저 미분방정식이 행성을 본 셈입니다.

지금의 위치·속도→법칙: 변화율 = f(지금 상태)→미분방정식→미래의 궤도

변화율로 쓰는 법칙

3초 뒤의 속도는 공식에 없다

스카이다이버가 비행기에서 뛰어내립니다. 공기 저항이 없다면 v=gtv = gt로 끝이지만, 실제로는 빨라질수록 공기가 세게 막아서 속도가 어느 값 이상 늘지 않습니다. 물리학이 주는 것은 v(t)v(t)의 공식이 아니라 "지금 속도가 vv이면 지금 받는 힘은 mg−cv2mg - cv^2"이라는 사실뿐입니다. 이 한 줄에서 어떻게 3초 뒤, 10초 뒤의 속도를 알아낼 수 있을까요?

뉴턴의 제2법칙 F=maF = ma에서 가속도 aa는 속도의 변화율 dv/dtdv/dt입니다. 아래로 향하는 방향을 양수로 잡으면 다이버가 받는 힘은 중력 mgmg와 위로 미는 공기 저항입니다. 사람처럼 큰 물체가 빠르게 움직일 때 공기 저항은 속도의 제곱에 비례한다고 보는 것이 좋은 근사입니다. 그러면

mdvdt=mg−cv2.m\frac{dv}{dt} = mg - cv^2.
mm: 질량(kg), g=9.8g = 9.8 m/s², cc: 공기 저항 계수(kg/m, 몸의 크기·자세·공기 밀도에 따라 정해지는 상수).

이 식은 vv를 직접 주지 않습니다. 대신 어느 순간이든 그때의 vv를 넣으면 그때의 dv/dtdv/dt를 알려 줍니다. 이 관점이 이 책 전체의 줄기입니다.

지금 상태 y(t)속도, 온도, 개체 수… 규칙 fy′ = f(t, y) 다음 순간 y(t + Δt)≈ y + f·Δt 다음 순간이 다시 "지금"이 되어 규칙을 반복한다 → 해곡선 대입변화율 미분방정식 = 지금 상태가 다음 순간을 정하는 규칙
그림 1-1. 미분방정식의 관점. 상태를 규칙 f에 넣으면 변화율이 나오고, 변화율이 아주 짧은 시간 뒤의 상태를 정한다. 이 고리를 끝없이 촘촘하게 돌린 결과가 해 y(t)다.

다른 분야의 법칙도 같은 꼴로 쓰입니다. 모두 "변화율이 지금의 양에 따라 정해진다"는 한 문장입니다.

현상법칙(말)미분방정식상수의 뜻
공기 저항 낙하알짜힘 = 질량 × 가속도mv′=mg−cv2mv' = mg - cv^2cc: 저항 계수
인구(세균) 성장증가율은 지금 개체 수에 비례P′=kPP' = kPkk: 1인당 순증가율(1/시간)
뉴턴 냉각식는 빠르기는 주변과의 온도 차에 비례T′=−k(T−Ta)T' = -k(T - T_a)TaT_a: 주변 온도, kk: 열전달 상수
방사성 붕괴단위 시간에 붕괴하는 원자 수는 남은 원자 수에 비례N′=−λNN' = -\lambda Nλ\lambda: 붕괴 상수
용수철–질량복원력은 늘어난 길이에 비례(훅)mx′′=−kxmx'' = -kxkk: 용수철 상수

표의 식들은 우변이 "지금의 양"으로만 이루어져 있다는 점에서 닮았습니다. 인구 식과 붕괴 식은 부호만 다른 같은 방정식이고, 냉각 식도 u=T−Tau = T - T_a로 놓으면 u′=−kuu' = -ku로 붕괴 식과 같아집니다. 서로 다른 현상이 같은 방정식을 공유한다는 것이 미분방정식을 배우는 가장 큰 이득입니다. 한 번 풀면 여러 분야에서 씁니다. 이 식들을 실제로 푸는 것은 2장에서 하고, 이 장에서는 식을 세우고 읽는 법에 집중합니다.

예제 1.1 (법칙에서 식 세우기) 다음 상황을 미분방정식으로 써라.
  1. (가) 어느 약물은 혈중 농도 CC에 비례하는 빠르기로 간에서 분해된다. → C′=−kCC' = -kC (k>0k > 0). "줄어든다"는 말이 음의 부호가 된다.
  2. (나) 연못의 물고기 수 PP는 kPkP의 빠르기로 늘고, 낚시로 하루 hh마리씩 빠져나간다. → P′=kP−hP' = kP - h. 들어오고 나가는 양을 더하고 뺀다. 이런 "들어옴 − 나감" 장부는 혼합 탱크(3장)와 수확 모델(4장)에서 다시 나온다.
  3. (다) 소문은 이미 아는 사람 수 yy와 아직 모르는 사람 수 N−yN - y의 곱에 비례해 퍼진다. → y′=ky(N−y)y' = ky(N - y). 만남이 일어나려면 두 무리가 모두 있어야 하므로 곱이 된다. 2장의 로지스틱 방정식이다.

이제 위의 낙하 방정식이 실제로 무엇을 예측하는지 봅시다. 다이버가 빨라질수록 cv2cv^2가 커지고, 마침내 mg=cv2mg = cv^2가 되면 알짜힘이 0이라 더 빨라지지 않습니다. 이 속도가 종단 속도(terminal velocity)입니다.

v′=0  ⟺  mg=cvT2  ⟺  vT=mgc.v' = 0 \iff mg = cv_T^2 \iff v_T = \sqrt{\frac{mg}{c}}.
m=80m = 80 kg, c=0.25c = 0.25 kg/m이면 vT=80⋅9.8/0.25=3136=56v_T = \sqrt{80\cdot 9.8/0.25} = \sqrt{3136} = 56 m/s(약 200 km/h).

식을 풀지 않고도 종단 속도를 얻었습니다. "변화율이 0인 상태"를 찾는 이 방법은 4장의 평형점으로 이어집니다. 2장에서 변수를 분리해 풀면 해는 v(t)=vTtanh⁡(gt/vT)v(t) = v_T\tanh(gt/v_T)이고, vTv_T의 95%에 닿는 데 t=tanh⁡−1(0.95)⋅vT/g≈10.5t = \tanh^{-1}(0.95)\cdot v_T/g \approx 10.5 s가 걸립니다. 아래 시뮬레이터로 확인해 보세요.

SIMULATOR

스카이다이빙: 힘의 균형과 종단 속도

힘: 중력 mg(아래) · 저항 cv²(위)
v(t) (m/s)
t—
v—
vT = √(mg/c)—
가속도 a = g − cv²/m—
해볼 것: ① ▶를 누르고 위·아래 화살표의 길이가 같아지는 순간을 보세요. 그때 가속도가 0이 되고 v가 vT에 멈춥니다. ② 질량을 늘리면 vT가 √m에 비례해 커집니다. 무거운 사람이 더 빨리 떨어집니다(공기 저항이 있을 때만). ③ 종단 속도에 닿은 뒤 '낙하산 펴기'를 누르면 c가 3초에 걸쳐 30 kg/m로 커지고 v가 새 종단 속도 약 5 m/s로 떨어집니다. 모델: mv′ = mg − cv², 아래 방향이 양수, RK4 적분. 선형 모형은 v′ = g(1 − v/vT)입니다.

미분방정식의 분류: 상미분·편미분, 계수, 선형성

풀이법은 방정식의 꼴에 따라 달라지므로, 먼저 이름을 붙이는 법을 익힙니다.

정의 1.1 (미분방정식) 미지 함수와 그 도함수(들) 사이의 관계식을 미분방정식(differential equation)이라 한다. 미지 함수가 변수 하나의 함수이면 상미분방정식(ordinary differential equation, ODE), 변수 여럿의 함수이고 편도함수가 들어 있으면 편미분방정식(partial differential equation, PDE)이라 한다.

떨어지는 다이버의 속도는 시간만의 함수이므로 상미분방정식입니다. 반면 쇠막대의 온도 u(x,t)u(x, t)는 위치와 시간에 따라 다르고, 열 방정식 ut=αuxxu_t = \alpha u_{xx}는 편미분방정식입니다. 이 책의 1–15장은 상미분방정식을, 16장은 편미분방정식을 다룹니다. 편미분방정식도 결국 변수분리로 상미분방정식 여러 개로 쪼개어 풉니다.

정의 1.2 (계수) 방정식에 들어 있는 도함수 가운데 가장 높은 것의 차수를 방정식의 계수(order)라 한다. nn계 상미분방정식의 일반형은
F(t,y,y′,…,y(n))=0,정규형: y(n)=f(t,y,y′,…,y(n−1)).F\bigl(t, y, y', \ldots, y^{(n)}\bigr) = 0,\qquad\text{정규형: } y^{(n)} = f\bigl(t, y, y', \ldots, y^{(n-1)}\bigr).

낙하 방정식 mv′=mg−cv2mv' = mg - cv^2는 1계, 용수철 mx′′=−kxmx'' = -kx는 2계입니다. 낙하를 속도 대신 위치 xx로 쓰면 mx′′=mg−c(x′)2mx'' = mg - c(x')^2로 2계가 됩니다. 같은 현상이라도 무엇을 미지 함수로 잡느냐에 따라 계수가 바뀝니다. 2계 방정식을 1계 방정식 두 개로 바꾸는 방법은 11장에서 체계적으로 다룹니다.

정의 1.3 (선형과 비선형) nn계 방정식이
an(t) y(n)+an−1(t) y(n−1)+⋯+a1(t) y′+a0(t) y=g(t)a_n(t)\,y^{(n)} + a_{n-1}(t)\,y^{(n-1)} + \cdots + a_1(t)\,y' + a_0(t)\,y = g(t)
꼴로 쓰이면 선형 미분방정식(linear ODE), 아니면 비선형(nonlinear)이라 한다. 즉 yy와 그 도함수가 모두 1차로만, 서로 곱해지지 않고, 함수 안에 들어가지 않은 채 나타나야 한다. 계수 ak(t)a_k(t)는 tt에 대해서는 아무 함수여도 된다. g≡0g \equiv 0이면 동차, 아니면 비동차라 한다.
방정식종류계수선형?이유
y′=−2tyy' = -2tyODE1선형(동차)계수 −2t-2t는 tt만의 함수라 괜찮다
mv′=mg−cv2mv' = mg - cv^2ODE1비선형v2v^2
y′′+4y=cos⁡3ty'' + 4y = \cos 3tODE2선형(비동차)우변 g(t)=cos⁡3tg(t) = \cos 3t
θ′′+gLsin⁡θ=0\theta'' + \frac{g}{L}\sin\theta = 0ODE2비선형sin⁡θ\sin\theta (진자, 12장)
yy′=tyy' = tODE1비선형yy와 y′y'의 곱
t2y′′′−ety′+y=ln⁡tt^2y''' - e^ty' + y = \ln tODE3선형모든 계수가 tt만의 함수
ut=αuxxu_t = \alpha u_{xx}PDE2선형열 방정식(16장)

선형이 특별한 이유는 중첩입니다. 동차 선형 방정식의 두 해를 더하거나 상수배해도 다시 해가 됩니다. 이 성질 하나가 2계 선형 방정식(6장), 라플라스 변환(9장), 푸리에 급수(15장)의 바탕입니다. 비선형 방정식은 중첩이 깨지는 대신 평형점, 한계 순환, 혼돈 같은 훨씬 풍부한 행동을 보입니다(12·13장). 진자의 sin⁡θ\sin\theta를 작은 각에서 θ\theta로 바꾸는 것처럼, 공학에서는 비선형 방정식을 평형점 근처에서 선형화해 쓰는 일이 많습니다.

선형성은 yy에 대한 말이다 y′=t2y+sin⁡ty' = t^2y + \sin t는 t2t^2과 sin⁡t\sin t가 있어도 선형입니다. 거꾸로 y′=sin⁡yy' = \sin y는 tt가 없어도 비선형입니다. 판정할 때는 tt는 잊고 y,y′,y′′,…y, y', y'', \ldots만 봅니다. 이들을 Y0,Y1,Y2,…Y_0, Y_1, Y_2, \ldots로 바꿔 쓴 식이 그 변수들의 1차식이면 선형입니다.

해, 일반해와 특수해, 해곡선 족

답이 하나가 아니다

y′=y−ty' = y - t의 해를 하나 찾아 보면 y=t+1y = t + 1이 됩니다(y′=1y' = 1, y−t=1y - t = 1). 그런데 y=t+1+ety = t + 1 + e^t도 해이고, y=t+1−3ety = t + 1 - 3e^t도 해입니다. 답이 무수히 많다면 "방정식을 푼다"는 것은 무엇을 찾는 일일까요?

정의 1.4 (해) 구간 II에서 nn번 미분 가능한 함수 ϕ\phi가 II의 모든 tt에서 F(t,ϕ,ϕ′,…,ϕ(n))=0F\bigl(t, \phi, \phi', \ldots, \phi^{(n)}\bigr) = 0을 만족하면 ϕ\phi를 구간 II에서 방정식의 해(solution)라 한다. II를 해의 정의 구간이라 한다. 해의 그래프를 해곡선(solution curve, integral curve)이라 한다.

정의에서 구간 II를 빠뜨리면 안 됩니다. y=1/(1−t)y = 1/(1 - t)는 y′=y2y' = y^2를 만족하지만 t=1t = 1에서 정의되지 않으므로, 해로서는 (−∞,1)(-\infty, 1)과 (1,∞)(1, \infty) 둘 중 하나에서만 산다고 봅니다. 이 이야기는 2장과 4장에서 이어집니다.

1계 방정식은 보통 임의 상수 하나를 포함한 해의 모임을 가집니다. y′=y−ty' = y - t의 경우

y=t+1+c et(c는 임의의 상수)y = t + 1 + c\,e^{t}\qquad (c\text{는 임의의 상수})
검산: y′=1+cety' = 1 + ce^t, y−t=1+cety - t = 1 + ce^t. 모든 cc와 모든 tt에서 같다.
정의 1.5 (일반해와 특수해) 임의 상수 c1,…,cnc_1, \ldots, c_n을 포함해 (거의) 모든 해를 나타내는 식을 일반해(general solution), 상수에 특정한 값을 넣어 얻은 하나의 해를 특수해(particular solution)라 한다. 일반해의 상수를 바꿔 가며 그린 해곡선들의 모임을 해곡선 족(family of solution curves)이라 한다. nn계 방정식의 일반해는 보통 상수 nn개를 갖는다.

1계 방정식에 상수가 하나인 이유는 1계 미분을 한 번 "되돌리려면" 적분을 한 번 해야 하고, 적분할 때마다 상수가 하나 생기기 때문입니다. 가장 단순한 예 y′=f(t)y' = f(t)의 일반해 y=∫f dt+Cy = \int f\,dt + C가 이것을 보여 줍니다(CalculusBook 미적분의 기본 정리). 2계 방정식 y′′=−gy'' = -g는 두 번 적분해 y=−12gt2+c1t+c2y = -\tfrac12 gt^2 + c_1t + c_2, 상수가 두 개입니다.

일반해가 모든 해는 아닐 수 있다 y′=y2y' = y^2의 해곡선 족은 y=1c−ty = \dfrac{1}{c - t}입니다. 그런데 y≡0y \equiv 0도 해이고(0′=0=020' = 0 = 0^2), 이것은 어떤 cc로도 얻어지지 않습니다. 이처럼 일반해 공식에서 빠지는 해가 있을 수 있어서, 정의 1.5에 "(거의)"를 붙였습니다. 2장에서 변수를 분리할 때 y2y^2으로 나누는 순간 이런 해를 잃는다는 것을 보게 됩니다. 아래 시뮬레이터의 'y′=y2y' = y^2'에서 확인하세요.
SIMULATOR

해곡선 족과 매개변수 c: 한 점을 지나는 해 고르기

고른 해—
지나는 점 (t₀, y₀)—
그 점의 기울기 f(t₀, y₀)—
해볼 것: ① 분홍 점을 끌면 그 점을 지나는 해곡선 하나와 그 c가 정해집니다. 곡선끼리 서로 만나지 않는 것을 보세요. ② 'y′ = y − t'에서 c = 0이면 직선 y = t + 1입니다. c > 0이면 위로, c < 0이면 아래로 떠나 버립니다. ③ 'ty′ = 2y'에서는 모든 곡선이 원점을 지납니다. t = 0에서 방정식이 y′을 정해 주지 못하기 때문입니다(4장의 존재·유일성 정리가 깨지는 경우). ④ 'y′ = y²'에서 점을 y = 0 위에 놓아 보세요. 모델: 각 방정식의 정확한 일반해.

해를 대입해 확인하기

미분방정식을 푸는 일은 어렵지만, 주어진 함수가 해인지 확인하는 일은 언제나 쉽습니다. 미분해서 대입해 보면 됩니다. 손으로 푼 답, 교재의 답, 컴퓨터가 준 답을 믿기 전에 항상 이 검산을 하는 습관이 중요합니다.

예제 1.2 (대입으로 확인)
  1. (가) y=3e−t2y = 3e^{-t^2}이 y′=−2tyy' = -2ty의 해인가? y′=3e−t2⋅(−2t)=−2t⋅3e−t2=−2tyy' = 3e^{-t^2}\cdot(-2t) = -2t\cdot 3e^{-t^2} = -2ty. 모든 tt에서 성립하므로 (−∞,∞)(-\infty, \infty)에서 해다.
  2. (나) y=c1cos⁡2t+c2sin⁡2ty = c_1\cos 2t + c_2\sin 2t가 y′′+4y=0y'' + 4y = 0의 해인가? y′′=−4c1cos⁡2t−4c2sin⁡2t=−4yy'' = -4c_1\cos 2t - 4c_2\sin 2t = -4y. 따라서 y′′+4y=0y'' + 4y = 0, 모든 c1,c2c_1, c_2에 대해 해다. 2계 방정식이라 상수가 두 개다.
  3. (다) y=cos⁡4ty = \cos 4t는 y′′+4y=0y'' + 4y = 0의 해인가? y′′+4y=−16cos⁡4t+4cos⁡4t=−12cos⁡4ty'' + 4y = -16\cos 4t + 4\cos 4t = -12\cos 4t. 이것은 항등적으로 0이 아니므로(예: t=0t = 0에서 −12-12) 해가 아니다. 몇몇 점(cos⁡4t=0\cos 4t = 0인 곳)에서 우연히 0이 되는 것은 해가 될 이유가 못 된다. 정의 1.4는 구간 전체에서의 성립을 요구한다.
  4. (라) y=5t2y = 5t^2은 ty′=2yty' = 2y의 해인가? ty′=t⋅10t=10t2=2⋅5t2ty' = t\cdot 10t = 10t^2 = 2\cdot 5t^2. 해다.

대입 검산을 그래프로 하면 이렇습니다. 방정식의 좌변(예: y′y')과 우변(예: f(t,y)f(t, y))을 후보 함수로 계산해 두 곡선으로 그립니다. 해라면 두 곡선이 완전히 겹치고, 둘의 차이인 잔차 R(t)=좌변−우변R(t) = \text{좌변} - \text{우변}이 구간 전체에서 0입니다.

SIMULATOR

대입 검산기: 좌변과 우변이 겹치는가

후보 함수
좌변—
우변—
max |R(t)|—
해볼 것: ① y″ + 4y = 0에서 cos 4t를 고르면 두 곡선이 몇 점에서만 만납니다. 그 점들에서 잔차가 0이어도 해가 아닙니다. ② y′ = y²의 1/(1 − t)는 t = 1에서 끊깁니다. 해의 정의 구간은 t < 1 쪽 한 조각입니다. ③ ty′ = 2y의 t² + 1은 잔차가 상수 −2입니다. 모델: 후보 함수와 그 도함수의 정확한 식으로 좌변·우변을 계산합니다.

초기값 문제: 지금 상태 하나로 미래가 정해진다

해곡선 족에서 하나를 고르는 정보

다이버가 비행기 문을 나설 때 속도는 0입니다. 커피는 처음 90°C에서 식기 시작합니다. 세균 배양은 100마리로 시작합니다. 법칙(미분방정식)은 같아도 출발점이 다르면 이야기가 다릅니다. 출발점 하나만 알면 해가 정해질까요?

정의 1.6 (초기값 문제) 1계 방정식과 한 시각에서의 값을 함께 준 문제
y′=f(t,y),y(t0)=y0y' = f(t, y),\qquad y(t_0) = y_0
를 초기값 문제(initial value problem, IVP)라 하고, y(t0)=y0y(t_0) = y_0을 초기 조건이라 한다. nn계 방정식에서는 y(t0),y′(t0),…,y(n−1)(t0)y(t_0), y'(t_0), \ldots, y^{(n-1)}(t_0)의 nn개 값을 준다.

해곡선 족 그림에서 초기 조건은 "점 (t0,y0)(t_0, y_0)을 지나는 곡선을 골라라"입니다. 일반해에 대입하면 상수가 정해집니다.

예제 1.3 (초기 조건으로 상수 정하기) (가) y′=y−ty' = y - t, y(0)=2y(0) = 2. (나) y′′+4y=0y'' + 4y = 0, y(0)=1y(0) = 1, y′(0)=6y'(0) = 6.
  1. (가) 일반해 y=t+1+cety = t + 1 + ce^t에 t=0t = 0을 넣으면 2=0+1+c2 = 0 + 1 + c, c=1c = 1. 해는 y=t+1+ety = t + 1 + e^t. 예를 들어 y(1)=2+e≈4.718y(1) = 2 + e \approx 4.718. RK4 수치 적분으로도 4.71828이 나온다.
  2. (나) 일반해 y=c1cos⁡2t+c2sin⁡2ty = c_1\cos 2t + c_2\sin 2t, y′=−2c1sin⁡2t+2c2cos⁡2ty' = -2c_1\sin 2t + 2c_2\cos 2t. y(0)=c1=1y(0) = c_1 = 1, y′(0)=2c2=6y'(0) = 2c_2 = 6이므로 c2=3c_2 = 3. 해는 y=cos⁡2t+3sin⁡2ty = \cos 2t + 3\sin 2t. 2계에는 조건이 두 개(위치와 속도) 필요하다. 용수철을 당긴 거리만으로는 운동이 정해지지 않고, 놓을 때 얼마나 세게 밀었는지도 알아야 한다.

물리적으로 1계 방정식 y′=f(t,y)y' = f(t, y)는 "지금의 yy 하나가 지금의 변화율을 정한다"고 말하므로, 처음 yy 하나만 알면 그다음 순간, 또 그다음 순간이 차례로 정해집니다. 그래서 초기값 문제의 해는 하나뿐일 것으로 기대합니다. 이 기대는 ff가 충분히 매끄러우면 실제로 성립하며, 그것이 4장의 존재·유일성 정리입니다. 미리 결론만 적어 두면:

정리 1.7 (존재와 유일성, 미리 보기) ff와 ∂f/∂y\partial f/\partial y가 점 (t0,y0)(t_0, y_0)을 품은 직사각형에서 연속이면, t0t_0을 품은 어떤 구간에서 초기값 문제 y′=f(t,y)y' = f(t, y), y(t0)=y0y(t_0) = y_0의 해가 존재하고 오직 하나뿐이다. 따라서 그 영역에서 서로 다른 해곡선은 만나거나 교차하지 않는다. 증명은 피카르 반복으로 4장에서 한다.

해곡선 족 시뮬레이터에서 곡선들이 서로 만나지 않았던 것이 이 정리의 그림입니다. 한편 'ty′=2yty' = 2y'에서는 모든 곡선이 원점에서 만났습니다. 정규형으로 쓰면 f(t,y)=2y/tf(t, y) = 2y/t이고, 이 ff는 t=0t = 0에서 정의조차 되지 않으므로 정리의 가정이 깨집니다. 원점을 지나는 해가 무수히 많고, t=0t = 0, y0≠0y_0 \ne 0을 지나는 해는 하나도 없습니다.

방향장: 풀지 않고 해를 보기

공식으로 풀리지 않는 방정식

y′=t−y2y' = t - y^2처럼 단순해 보이는 방정식도 기본 함수로 쓴 해가 없습니다(리카티 방정식이라 부르는 꼴입니다). 공학에서 만나는 방정식 대부분이 이렇습니다. 그래도 해가 어떻게 생겼는지, 결국 어디로 가는지는 알고 싶습니다. 공식 없이 해를 볼 수 있을까요?

방정식 y′=f(t,y)y' = f(t, y)는 평면의 모든 점 (t,y)(t, y)에서 "이 점을 지나는 해곡선의 기울기는 f(t,y)f(t, y)다"라고 알려 줍니다. 그러니 평면의 격자점마다 그 기울기를 가진 짧은 선분을 그려 두면, 해곡선은 이 선분들에 접하며 흘러가는 곡선입니다. 바람에 날리는 깃털이 그 자리의 바람 방향을 따라가는 것과 같습니다.

정의 1.8 (방향장) 영역 RR의 점들 (t,y)(t, y)에 기울기 f(t,y)f(t, y)인 짧은 선분을 붙인 그림을 y′=f(t,y)y' = f(t, y)의 방향장(direction field, slope field) 또는 기울기 장이라 한다. 미분 가능한 함수 y=ϕ(t)y = \phi(t)가 해일 필요충분조건은 그 그래프가 모든 점에서 방향장의 선분에 접하는 것이다.

방향장을 그리는 데에는 미분도 적분도 필요 없고, ff를 계산하기만 하면 됩니다. 아래 시뮬레이터에서 빈 곳을 클릭하면 그 점을 초기값으로 하는 해곡선이 앞뒤로 그려지고, 분홍 점을 끌면 굵은 해곡선이 따라 움직입니다.

SIMULATOR

방향장 위에 초기값 놓기: 해곡선이 흐름을 따라간다

y′ = y − t
초기값 (t₀, y₀)—
기울기 f(t₀, y₀)—
y(t₀ + 1)—
해볼 것: ① 'y′ = y − t'에서 직선 y = t + 1 근처에 점을 놓아 보세요. 조금만 위면 위로, 조금만 아래면 아래로 벌어집니다. 불안정한 해입니다. ② 'y′ = t − y²'에서 왼쪽 끝에서 뿌리면, 위쪽 곡선들이 오른쪽에서 한 줄기(대략 y ≈ √t)로 모입니다. 공식 없이도 장기 거동이 보입니다. ③ 'y′ = −t/y'의 해곡선은 원이고, y = 0에서 기울기가 무한대가 되어 끊깁니다. 모델: 해곡선은 RK4로 앞뒤로 적분하고, 화면을 벗어나거나 기울기가 발산하면 멈춥니다.

방향장에서 읽을 수 있는 정보를 정리하면 다음과 같습니다.

등경사선: 손으로 방향장 그리기

컴퓨터가 없다면 격자점 수백 개에서 ff를 계산하기는 고됩니다. 손으로 그릴 때는 순서를 뒤집습니다. 점마다 기울기를 구하는 대신, 기울기가 같은 점들을 한꺼번에 찾습니다.

정의 1.9 (등경사선) 상수 mm에 대해 곡선 f(t,y)=mf(t, y) = m을 y′=f(t,y)y' = f(t, y)의 등경사선(isocline)이라 한다. 등경사선 위의 모든 점에서 방향장의 선분은 같은 기울기 mm을 가진다. 특히 m=0m = 0인 등경사선 f=0f = 0은 해곡선이 수평이 되는 곳, 즉 해의 극대·극소가 놓이는 곳이다.
예제 1.4 (등경사선으로 그리기) y′=t−yy' = t - y의 방향장을 등경사선으로 그려라.
  1. 등경사선 t−y=mt - y = m, 즉 y=t−my = t - m. 모두 기울기 1인 평행선이다.
  2. m=0m = 0: 직선 y=ty = t 위에는 수평 선분. m=1m = 1: 직선 y=t−1y = t - 1 위에는 기울기 1인 선분. m=−1m = -1: 직선 y=t+1y = t + 1 위에는 기울기 −1인 선분.
  3. m=1m = 1인 등경사선 y=t−1y = t - 1의 기울기가 1이고, 그 위의 선분 기울기도 1이다. 선분이 등경사선 자신을 따라 놓이므로 이 직선 자체가 해곡선이다. 검산: y=t−1y = t - 1이면 y′=1y' = 1, t−y=1t - y = 1. ✓
  4. y=t−1y = t - 1보다 위(m<1m \lt 1)에서는 해가 그 직선보다 완만하게, 아래(m>1m > 1)에서는 가파르게 움직여 양쪽 모두 이 직선으로 다가간다. 실제 일반해는 y=t−1+ce−ty = t - 1 + ce^{-t}이고, t→∞t \to \infty이면 모든 해가 t−1t - 1에 붙는다.

예제 1.4와 1절의 y′=y−ty' = y - t를 비교해 보세요. 그쪽의 특별한 직선 y=t+1y = t + 1은 해들을 밀어내고, 이쪽의 y=t−1y = t - 1은 끌어당깁니다. 부호 하나 차이가 안정과 불안정을 가릅니다. 아래 시뮬레이터에서 mm을 바꾸며 등경사선을 하나씩 그려 보세요.

SIMULATOR

등경사선 f(t, y) = m: 같은 기울기끼리 모으기

등경사선—
해곡선 시작점—
해볼 것: ① 'y′ = t − y'에서 m = 1로 두면 등경사선 위의 짧은 선분이 그 직선과 겹칩니다. 그 직선이 곧 해입니다. ② 'y′ = t² + y²'에서는 m < 0인 등경사선이 없습니다. 기울기가 음수인 곳이 없으니 모든 해는 늘 증가합니다. ③ 해곡선이 m = 0 등경사선을 지나는 곳이 해의 꼭대기나 바닥인지 확인하세요. 모델: 등경사선은 f − m의 영점을 격자에서 찾아(마칭 스퀘어) 그립니다.

오일러 방법: 접선을 따라 걷기

방향장을 숫자로

방향장은 해의 모양을 보여 주지만, "t=1t = 1에서 yy는 정확히 얼마인가"에는 답하지 못합니다. 그림 1-1의 고리, "지금 상태로 변화율을 구하고, 조금 나아가고, 다시 반복"을 그대로 계산하면 숫자를 얻을 수 있지 않을까요?

지금 점 (tn,yn)(t_n, y_n)에서 해곡선의 기울기는 f(tn,yn)f(t_n, y_n)입니다. 짧은 시간 hh 동안 기울기가 거의 변하지 않는다고 보고 접선을 따라 hh만큼 걸어가면

tn+1=tn+h,yn+1=yn+h f(tn,yn).t_{n+1} = t_n + h,\qquad y_{n+1} = y_n + h\,f(t_n, y_n).
hh: 걸음 크기(간격). 이것이 오일러 방법(Euler's method)이다. 미분의 정의 y′≈y(t+h)−y(t)hy' \approx \frac{y(t + h) - y(t)}{h}를 거꾸로 읽은 것과 같다.
t₀t₁t₂t₃ h y₀y₁y₂y₃ 참 해 y(t) 전역 오차 한 걸음 기울기 sₙ = f(tₙ, yₙ) yₙ₊₁ = yₙ + h·sₙ 접선은 곡선이 휘는 것을 모른다 → 걸음마다 조금씩 벗어나고, 벗어난 곳의 기울기로 다음 걸음을 걷는다.
그림 1-2. 오일러 방법. 각 점에서 그 점의 기울기로 h만큼 직선을 긋는다. 참 해가 위로 휘면 접선은 늘 아래로 처지고, 오차가 쌓인다. h를 줄이면 꺾은선이 참 해에 가까워진다.
예제 1.5 (손으로 오일러 방법) y′=yy' = y, y(0)=1y(0) = 1의 y(1)y(1)을 h=0.5h = 0.5, 0.250.25로 근사하라. 참값은 e≈2.71828e \approx 2.71828이다.
  1. h=0.5h = 0.5: y1=1+0.5⋅1=1.5y_1 = 1 + 0.5\cdot 1 = 1.5, y2=1.5+0.5⋅1.5=2.25y_2 = 1.5 + 0.5\cdot 1.5 = 2.25. 오차 e−2.25≈0.468e - 2.25 \approx 0.468.
  2. h=0.25h = 0.25: 걸음마다 1.251.25배가 되므로 y4=1.254=2.44140625y_4 = 1.25^4 = 2.44140625. 오차 ≈0.277\approx 0.277.
  3. 일반적으로 yn=(1+h)ny_n = (1 + h)^n, n=1/hn = 1/h. h=0.1h = 0.1이면 1.110≈2.593741.1^{10} \approx 2.59374(오차 0.125), h=0.01h = 0.01이면 ≈2.70481\approx 2.70481(오차 0.0135). h→0h \to 0이면 (1+h)1/h→e(1 + h)^{1/h} \to e. 오일러 방법이 ee의 정의를 다시 만든다.
  4. 관찰: hh를 1/10로 줄이면 오차도 거의 1/10이 된다(0.125 → 0.0135). 오차가 hh에 비례한다. 이것을 "오일러 방법은 1차 방법"이라 한다.
h걸음 수오일러 y(1)오차 e − y오차 / h
0.522.250000.468280.937
0.2542.441410.276881.108
0.1102.593740.124541.245
0.011002.704810.013471.347

오차/hh가 h→0h \to 0에서 일정한 값(이 문제에서는 e/2≈1.36e/2 \approx 1.36)으로 다가갑니다. 걸음 하나마다 생기는 오차는 h2h^2 정도이고 걸음 수가 1/h1/h이므로 쌓인 오차가 hh 정도가 되는 것입니다. 정확도를 한 자리 올리려면 계산을 10배 해야 하니 효율이 나쁩니다. 그래서 실제로는 기울기를 여러 번 재어 평균하는 룽게–쿠타 4차 방법(RK4)을 씁니다. 이 책의 시뮬레이터 해곡선도 RK4로 그립니다. 오차 분석, 개선된 방법, 강성 문제는 5장의 주제입니다.

SIMULATOR

오일러 걸음: h를 바꾸면 꺾은선이 해에 붙는다

걸음 n / N—
오일러 yₙ—
참값 y(tₙ)—
오차 / h (끝점)—
해볼 것: ① 'y′ = y'에서 h = 0.5, 0.25, 0.1을 차례로 고르고 끝점 오차를 위의 표와 비교하세요. ② 'y′ = y − t'의 오차가 'y′ = y'와 똑같습니다. y − t − 1 = w로 놓으면 w′ = w가 되기 때문입니다. ③ 'y′ = −2ty'에서 h = 1이면 첫 걸음은 기울기 0이라 수평으로 가고, 두 번째 걸음에서 y가 0 아래로 내려갑니다. 큰 걸음은 질적으로 틀린 답을 줄 수 있습니다. 모델: yₙ₊₁ = yₙ + h·f(tₙ, yₙ), 참값은 정확한 해.

모델링의 순서: 가정 → 방정식 → 해 → 검증

세균은 정말 지수적으로 늘까

배양기에 세균 20마리를 넣고 한 시간마다 수를 셉니다. "증가율은 지금 수에 비례한다"고 가정하면 P′=kPP' = kP이고 해는 P=20ektP = 20e^{kt}입니다. 처음 몇 시간의 측정값은 이 곡선에 잘 맞습니다. 그렇다면 하루 뒤에는 20e24k20e^{24k}마리가 있을까요?

미분방정식은 현실 그 자체가 아니라 현실에 대한 가정을 식으로 쓴 것입니다. 그래서 수학적 모델링은 한 번에 끝나지 않는 고리입니다.

① 가정무엇을 상태로?무엇을 무시? ② 방정식P′ = kP단위·부호 확인 ③ 해P = P₀e^(kt)손·그림·수치 ④ 검증데이터와 비교예측이 맞나? 안 맞으면 가정을 고친다: P′ = kP → P′ = rP(1 − P/K) 맞으면: 모델의 범위(어떤 조건에서 믿을 수 있는지)를 적어 두고 쓴다
그림 1-3. 모델링의 고리. 가정이 방정식을, 방정식이 해를, 해가 예측을 낳는다. 예측을 데이터와 비교해 어긋나면 가정으로 돌아간다. 좋은 모델은 정확한 모델이 아니라 쓰려는 범위에서 충분히 맞는 모델이다.
  1. 가정: 무엇을 상태 변수로 잡을지(개체 수 PP), 무엇에 비례한다고 볼지(증가율 ∝ PP), 무엇을 무시할지(먹이 부족, 온도 변화)를 정한다. 무시한 것이 모델의 한계가 된다.
  2. 방정식: 가정을 식으로 쓴다. 양변의 단위를 맞춰 본다. P′P'의 단위가 마리/시간이면 kk는 1/시간이다. 부호(늘어나는가, 줄어드는가)를 확인한다.
  3. 해: 손으로 풀거나(2·3장), 방향장으로 보거나, 수치로 계산한다. 매개변수(kk)는 데이터에서 추정한다.
  4. 검증: 맞춤에 쓰지 않은 데이터로 예측을 확인한다. 특히 극단적인 경우를 묻는다. P=20ektP = 20e^{kt}는 영원히 늘어나는데, 배양기는 유한하다.

아래 시뮬레이터의 측정값은 실제 세균 실험의 기록이 아니라, 이런 실험에서 흔히 보이는 모양을 흉내 내어 만든 자료입니다. 처음에는 지수 모형으로 맞춰 보고, 맞춤에 쓴 시간 범위를 넓히며 어디서 모형이 무너지는지 찾아보세요.

SIMULATOR

모델 맞추기: 데이터에 k를 맞추고 예측을 검증하기

모형
맞춤 데이터 오차(RMS)—
검증 데이터 오차(RMS)—
12시간 예측—
해볼 것: ① 지수 모형, 처음 5개 데이터로 '자동 맞춤'을 누르면 맞춤 오차는 작지만, 속이 빈 점(검증 데이터)에서는 예측이 크게 빗나갑니다. ② '로그 눈금'을 켜면 지수 함수는 직선이 됩니다. 데이터가 직선에서 휘어 눕는 곳이 지수 가정이 깨지는 곳입니다. ③ 로지스틱으로 바꾸고 13개 모두로 맞추면 전 구간이 맞습니다. 모델: P(0) = 20 고정, 오차는 상대 오차의 RMS(%), 자동 맞춤은 로그 오차 제곱합을 최소로 하는 격자 탐색입니다. 데이터는 교육용으로 만든 가상 자료입니다.

시뮬레이터가 보여 주는 교훈은 두 가지입니다. 첫째, 맞춤이 잘 된다고 모델이 옳은 것은 아닙니다. 지수 모형은 처음 몇 시간 동안 로지스틱과 구별이 안 되므로, 그 구간의 데이터만으로는 어느 쪽이 맞는지 알 수 없습니다. 둘째, 검증은 맞춤에 쓰지 않은 데이터로 해야 합니다. 로지스틱 방정식 P′=rP(1−P/K)P' = rP(1 - P/K)는 "개체 수가 많아지면 1인당 증가율이 줄어든다"는 가정 하나를 더한 것이고, 2장에서 손으로 풉니다.

모델의 정확도는 목적이 정한다 낙하 방정식은 공기 밀도가 고도에 따라 변하는 것을 무시했고, 냉각 법칙은 커피 안의 온도가 고르다고 가정했습니다. 그런데도 이 모델들은 낙하산 설계와 식품 냉장의 첫 계산에 쓰입니다. 질문에 답할 만큼 맞으면 단순한 모델이 좋은 모델입니다. 반대로 모델이 무시한 효과가 질문의 핵심이라면(예: 고고도 낙하에서의 공기 밀도) 모델을 고쳐야 합니다.

이 도구가 쓰이는 곳

"상태와 그 변화율의 규칙"이라는 틀은 공학 시뮬레이션의 공통 언어입니다. 회로 시뮬레이터, 차량 동역학, 화학 반응기, 전염병 예측, 기상 모델이 모두 상태 벡터 y\mathbf{y}와 규칙 y′=f(t,y)\mathbf{y}' = \mathbf{f}(t, \mathbf{y})를 정의하고 수치 적분기로 시간을 앞으로 밀어 갑니다.

게임 물리 엔진: 매 프레임이 오일러 걸음 게임이나 애니메이션의 물리 엔진은 화면 한 프레임(예: 1/60초)마다 "지금 위치·속도 → 힘 → 가속도 → 다음 프레임의 속도·위치"를 계산합니다. 이것은 이 장의 오일러 방법(또는 그 변형)을 h = 1/60 s로 돌리는 것과 같습니다. 프레임 간격이 너무 크면 빠른 물체가 벽을 뚫고 지나가거나 용수철이 폭발하듯 흔들리는 문제가 생기는데, 이것이 5장에서 다룰 수치 안정성 문제입니다.

핵심 정리

  1. 미분방정식은 미지 함수와 도함수의 관계식이고, 물리적으로는 지금 상태가 지금의 변화율을 정하는 규칙이다. 낙하 mv′=mg−cv2mv' = mg - cv^2, 성장 P′=kPP' = kP, 냉각 T′=−k(T−Ta)T' = -k(T - T_a), 붕괴 N′=−λNN' = -\lambda N.
  2. 변수가 하나면 상미분, 여럿이면 편미분방정식. 가장 높은 도함수의 차수가 계수. yy와 도함수들에 대해 1차식이면 선형이고, 선형이면 중첩이 성립한다.
  3. 해는 구간 위에서 방정식을 만족하는 함수다. 1계 방정식의 일반해는 상수 하나를 가진 해곡선 족이며, 일반해에 들지 않는 해(y′=y2y' = y^2의 y=0y = 0)가 있을 수 있다.
  4. 해인지 확인하려면 미분해 대입한다. 좌변 − 우변(잔차)이 구간 전체에서 0이어야 한다. 몇 점에서만 0인 것은 해가 아니다.
  5. 초기값 문제 y′=f(t,y)y' = f(t, y), y(t0)=y0y(t_0) = y_0은 해곡선 족에서 한 점을 지나는 곡선을 고른다. ff와 fyf_y가 연속이면 해가 하나뿐이고 해곡선은 교차하지 않는다(4장).
  6. 방향장은 점마다 기울기 f(t,y)f(t, y)인 선분을 그린 그림이고, 해곡선은 선분에 접해 흐른다. 등경사선 f=mf = m으로 손쉽게 그리며, f=0f = 0은 극값이 놓이는 곳이다.
  7. 오일러 방법 yn+1=yn+hf(tn,yn)y_{n+1} = y_n + hf(t_n, y_n)은 접선을 따라 걷는다. 전역 오차는 hh에 비례한다(1차 방법).
  8. 모델링은 가정 → 방정식 → 해 → 검증의 고리다. 맞춤에 쓰지 않은 데이터로 검증하고, 어긋나면 가정을 고친다.

확인 퀴즈

Q1. 다음 중 선형 미분방정식은?

선형성은 yy와 그 도함수에 대해서만 따진다. t2t^2, ete^t, cos⁡t\cos t는 tt의 함수이므로 상관없다. 나머지는 각각 y2y^2, sin⁡y\sin y, yy′yy' 때문에 비선형이다.

Q2. 방정식 x′′+3(x′)2−x=0x'' + 3(x')^2 - x = 0의 계수와 선형성은?

가장 높은 도함수가 x′′x''이므로 2계다. (x′)2(x')^2은 도함수의 제곱이라 비선형이다. 제곱 기호의 2와 도함수의 차수를 헷갈리지 말자.

Q3. y=c e3ty = c\,e^{3t}이 일반해인 1계 방정식에서 y(0)=4y(0) = 4인 해의 y(1)y(1)은?

t=0t = 0을 넣으면 c=4c = 4. 따라서 y=4e3ty = 4e^{3t}, y(1)=4e3≈4×20.09=80.3y(1) = 4e^3 \approx 4 \times 20.09 = 80.3.

Q4. 다음 중 y′′+9y=0y'' + 9y = 0의 해가 아닌 것은?

y=cos⁡9ty = \cos 9t이면 y′′+9y=−81cos⁡9t+9cos⁡9t=−72cos⁡9t≠0y'' + 9y = -81\cos 9t + 9\cos 9t = -72\cos 9t \ne 0. 나머지는 모두 y′′=−9yy'' = -9y를 만족한다. y=0y = 0도 (자명한) 해다.

Q5. y′=y−ty' = y - t의 방향장에서 점 (2,1)(2, 1)에 그려지는 선분의 기울기는?

f(t,y)=y−tf(t, y) = y - t에 t=2t = 2, y=1y = 1을 넣으면 1−2=−11 - 2 = -1. 방향장은 ff를 계산하기만 하면 그릴 수 있다.

Q6. y′=t2+y2y' = t^2 + y^2의 등경사선은 어떤 모양이고, 해곡선에 대해 무엇을 알려 주는가?

t2+y2=mt^2 + y^2 = m은 반지름 m\sqrt m인 원이고 m≥0m \ge 0일 때만 있다. y′≥0y' \ge 0이므로 해는 결코 감소하지 않으며, 원점에서 멀어질수록 가팔라진다.

Q7. y′=2yy' = 2y, y(0)=1y(0) = 1에 오일러 방법을 h=0.25h = 0.25로 두 걸음 쓰면 y(0.5)y(0.5)의 근삿값은?

걸음마다 y←y+0.25⋅2y=1.5yy \leftarrow y + 0.25\cdot 2y = 1.5y. 두 걸음이면 1.52=2.251.5^2 = 2.25. 참값은 e1≈2.718e^{1} \approx 2.718이며, 해가 위로 휘므로 오일러 근삿값은 참값보다 작다.

Q8. 처음 5시간의 세균 수 데이터에 P=P0ektP = P_0e^{kt}가 아주 잘 맞았다. 가장 올바른 결론은?

로지스틱 성장의 초기는 지수 성장과 구별되지 않는다. 맞춤이 잘 되는 것은 모델이 그 구간을 설명한다는 뜻일 뿐, 수용력 같은 무시된 효과가 나타나는 범위에서의 예측을 보장하지 않는다. 모델링 고리의 ④ 검증 단계다.