떨어지는 돌, 식어 가는 커피, 불어나는 세균, 줄어드는 방사성 원자. 이들에 대해 우리가 아는 법칙은 "몇 초 뒤에 어디 있다"가 아니라 "지금 이 상태라면 지금 이만큼 변한다"는 꼴입니다. 속도는 지금 받는 힘이 정하고, 식는 빠르기는 지금의 온도 차가 정합니다. 이렇게 미지의 함수와 그 도함수 사이의 관계로 쓴 법칙이 미분방정식입니다. 미분방정식은 지금 상태가 다음 순간을 정하는 규칙이고, 그 해는 규칙을 한 순간 한 순간 따라가며 그린 곡선입니다. 이 장에서는 법칙에서 방정식을 세우고, 풀기 전에 그림(방향장)으로 해를 보고, 접선을 따라 걸어서(오일러 방법) 해를 숫자로 만들고, 데이터와 맞춰 모델을 검증하는 미분방정식의 한 바퀴를 돕니다.
낙하, 인구, 냉각, 방사성 붕괴의 법칙을 "변화율 = 지금 상태의 함수"로 써서 미분방정식을 세운다.
상미분방정식과 편미분방정식, 계수, 선형과 비선형을 구별한다.
해, 일반해와 특수해, 해곡선 족을 설명하고, 후보 함수를 대입해 해인지 확인한다.
초기값 문제를 세우고 적분 상수를 초기 조건으로 정한다.
방향장과 등경사선을 그려, 식을 풀지 않고도 해곡선의 모양을 읽는다.
오일러 방법으로 접선을 따라 걸어 근사해를 만들고, 간격 h와 오차의 관계를 관찰한다.
가정 → 방정식 → 해 → 검증의 모델링 순서를 따라 데이터에 모델을 맞추고 한계를 판단한다.
이 수식이 없었다면계산으로 찾은 행성, 해왕성
뉴턴의 운동 법칙 mx′′=F는 행성이 "어디에 있다"고 말하지 않습니다. 지금의 위치가 힘을 정하고, 힘이 가속도를, 가속도가 다음 순간의 속도와 위치를 정한다고 말할 뿐입니다. 그래서 지금 위치와 속도를 알면 이 규칙을 따라 미래의 궤도를 계산할 수 있습니다.
19세기 천문학자들은 천왕성이 이 계산에서 조금씩 벗어난다는 것을 알았습니다. 프랑스의 르베리에(Urbain Le Verrier)는 이 어긋남을 바깥에 있는 미지의 행성이 끌어당긴 결과로 보고, 운동 방정식을 거꾸로 따져 그 행성의 위치를 계산했습니다. 1846년 9월 베를린 천문대의 갈레(Johann Galle)가 예측된 위치 가까이에서 해왕성을 찾아냈습니다. 망원경보다 먼저 미분방정식이 행성을 본 셈입니다.
지금의 위치·속도→법칙: 변화율 = f(지금 상태)→미분방정식→미래의 궤도
변화율로 쓰는 법칙
3초 뒤의 속도는 공식에 없다
스카이다이버가 비행기에서 뛰어내립니다. 공기 저항이 없다면 v=gt로 끝이지만, 실제로는 빨라질수록 공기가 세게 막아서 속도가 어느 값 이상 늘지 않습니다. 물리학이 주는 것은 v(t)의 공식이 아니라 "지금 속도가 v이면 지금 받는 힘은 mg−cv2"이라는 사실뿐입니다. 이 한 줄에서 어떻게 3초 뒤, 10초 뒤의 속도를 알아낼 수 있을까요?
뉴턴의 제2법칙 F=ma에서 가속도 a는 속도의 변화율 dv/dt입니다. 아래로 향하는 방향을 양수로 잡으면 다이버가 받는 힘은 중력 mg와 위로 미는 공기 저항입니다. 사람처럼 큰 물체가 빠르게 움직일 때 공기 저항은 속도의 제곱에 비례한다고 보는 것이 좋은 근사입니다. 그러면
mdtdv=mg−cv2.
m: 질량(kg), g=9.8 m/s², c: 공기 저항 계수(kg/m, 몸의 크기·자세·공기 밀도에 따라 정해지는 상수).
이 식은 v를 직접 주지 않습니다. 대신 어느 순간이든 그때의 v를 넣으면 그때의 dv/dt를 알려 줍니다. 이 관점이 이 책 전체의 줄기입니다.
그림 1-1. 미분방정식의 관점. 상태를 규칙 f에 넣으면 변화율이 나오고, 변화율이 아주 짧은 시간 뒤의 상태를 정한다. 이 고리를 끝없이 촘촘하게 돌린 결과가 해 y(t)다.
다른 분야의 법칙도 같은 꼴로 쓰입니다. 모두 "변화율이 지금의 양에 따라 정해진다"는 한 문장입니다.
현상
법칙(말)
미분방정식
상수의 뜻
공기 저항 낙하
알짜힘 = 질량 × 가속도
mv′=mg−cv2
c: 저항 계수
인구(세균) 성장
증가율은 지금 개체 수에 비례
P′=kP
k: 1인당 순증가율(1/시간)
뉴턴 냉각
식는 빠르기는 주변과의 온도 차에 비례
T′=−k(T−Ta)
Ta: 주변 온도, k: 열전달 상수
방사성 붕괴
단위 시간에 붕괴하는 원자 수는 남은 원자 수에 비례
N′=−λN
λ: 붕괴 상수
용수철–질량
복원력은 늘어난 길이에 비례(훅)
mx′′=−kx
k: 용수철 상수
표의 식들은 우변이 "지금의 양"으로만 이루어져 있다는 점에서 닮았습니다. 인구 식과 붕괴 식은 부호만 다른 같은 방정식이고, 냉각 식도 u=T−Ta로 놓으면 u′=−ku로 붕괴 식과 같아집니다. 서로 다른 현상이 같은 방정식을 공유한다는 것이 미분방정식을 배우는 가장 큰 이득입니다. 한 번 풀면 여러 분야에서 씁니다. 이 식들을 실제로 푸는 것은 2장에서 하고, 이 장에서는 식을 세우고 읽는 법에 집중합니다.
예제 1.1 (법칙에서 식 세우기) 다음 상황을 미분방정식으로 써라.
(가) 어느 약물은 혈중 농도 C에 비례하는 빠르기로 간에서 분해된다. → C′=−kC (k>0). "줄어든다"는 말이 음의 부호가 된다.
(나) 연못의 물고기 수 P는 kP의 빠르기로 늘고, 낚시로 하루 h마리씩 빠져나간다. → P′=kP−h. 들어오고 나가는 양을 더하고 뺀다. 이런 "들어옴 − 나감" 장부는 혼합 탱크(3장)와 수확 모델(4장)에서 다시 나온다.
(다) 소문은 이미 아는 사람 수 y와 아직 모르는 사람 수 N−y의 곱에 비례해 퍼진다. → y′=ky(N−y). 만남이 일어나려면 두 무리가 모두 있어야 하므로 곱이 된다. 2장의 로지스틱 방정식이다.
이제 위의 낙하 방정식이 실제로 무엇을 예측하는지 봅시다. 다이버가 빨라질수록 cv2가 커지고, 마침내 mg=cv2가 되면 알짜힘이 0이라 더 빨라지지 않습니다. 이 속도가 종단 속도(terminal velocity)입니다.
식을 풀지 않고도 종단 속도를 얻었습니다. "변화율이 0인 상태"를 찾는 이 방법은 4장의 평형점으로 이어집니다. 2장에서 변수를 분리해 풀면 해는 v(t)=vTtanh(gt/vT)이고, vT의 95%에 닿는 데 t=tanh−1(0.95)⋅vT/g≈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)는 위치와 시간에 따라 다르고, 열 방정식 ut=αuxx는 편미분방정식입니다. 이 책의 1–15장은 상미분방정식을, 16장은 편미분방정식을 다룹니다. 편미분방정식도 결국 변수분리로 상미분방정식 여러 개로 쪼개어 풉니다.
정의 1.2 (계수) 방정식에 들어 있는 도함수 가운데 가장 높은 것의 차수를 방정식의 계수(order)라 한다. n계 상미분방정식의 일반형은
F(t,y,y′,…,y(n))=0,정규형: y(n)=f(t,y,y′,…,y(n−1)).
낙하 방정식 mv′=mg−cv2는 1계, 용수철 mx′′=−kx는 2계입니다. 낙하를 속도 대신 위치 x로 쓰면 mx′′=mg−c(x′)2로 2계가 됩니다. 같은 현상이라도 무엇을 미지 함수로 잡느냐에 따라 계수가 바뀝니다. 2계 방정식을 1계 방정식 두 개로 바꾸는 방법은 11장에서 체계적으로 다룹니다.
정의 1.3 (선형과 비선형)n계 방정식이
an(t)y(n)+an−1(t)y(n−1)+⋯+a1(t)y′+a0(t)y=g(t)
꼴로 쓰이면 선형 미분방정식(linear ODE), 아니면 비선형(nonlinear)이라 한다. 즉 y와 그 도함수가 모두 1차로만, 서로 곱해지지 않고, 함수 안에 들어가지 않은 채 나타나야 한다. 계수 ak(t)는 t에 대해서는 아무 함수여도 된다. g≡0이면 동차, 아니면 비동차라 한다.
선형이 특별한 이유는 중첩입니다. 동차 선형 방정식의 두 해를 더하거나 상수배해도 다시 해가 됩니다. 이 성질 하나가 2계 선형 방정식(6장), 라플라스 변환(9장), 푸리에 급수(15장)의 바탕입니다. 비선형 방정식은 중첩이 깨지는 대신 평형점, 한계 순환, 혼돈 같은 훨씬 풍부한 행동을 보입니다(12·13장). 진자의 sinθ를 작은 각에서 θ로 바꾸는 것처럼, 공학에서는 비선형 방정식을 평형점 근처에서 선형화해 쓰는 일이 많습니다.
선형성은 y에 대한 말이다y′=t2y+sint는 t2과 sint가 있어도 선형입니다. 거꾸로 y′=siny는 t가 없어도 비선형입니다. 판정할 때는 t는 잊고 y,y′,y′′,…만 봅니다. 이들을 Y0,Y1,Y2,…로 바꿔 쓴 식이 그 변수들의 1차식이면 선형입니다.
해, 일반해와 특수해, 해곡선 족
답이 하나가 아니다
y′=y−t의 해를 하나 찾아 보면 y=t+1이 됩니다(y′=1, y−t=1). 그런데 y=t+1+et도 해이고, y=t+1−3et도 해입니다. 답이 무수히 많다면 "방정식을 푼다"는 것은 무엇을 찾는 일일까요?
정의 1.4 (해) 구간 I에서 n번 미분 가능한 함수 ϕ가 I의 모든 t에서 F(t,ϕ,ϕ′,…,ϕ(n))=0을 만족하면 ϕ를 구간 I에서 방정식의 해(solution)라 한다. I를 해의 정의 구간이라 한다. 해의 그래프를 해곡선(solution curve, integral curve)이라 한다.
정의에서 구간 I를 빠뜨리면 안 됩니다. y=1/(1−t)는 y′=y2를 만족하지만 t=1에서 정의되지 않으므로, 해로서는 (−∞,1)과 (1,∞) 둘 중 하나에서만 산다고 봅니다. 이 이야기는 2장과 4장에서 이어집니다.
1계 방정식은 보통 임의 상수 하나를 포함한 해의 모임을 가집니다. y′=y−t의 경우
y=t+1+cet(c는임의의상수)
검산: y′=1+cet, y−t=1+cet. 모든 c와 모든 t에서 같다.
정의 1.5 (일반해와 특수해) 임의 상수 c1,…,cn을 포함해 (거의) 모든 해를 나타내는 식을 일반해(general solution), 상수에 특정한 값을 넣어 얻은 하나의 해를 특수해(particular solution)라 한다. 일반해의 상수를 바꿔 가며 그린 해곡선들의 모임을 해곡선 족(family of solution curves)이라 한다. n계 방정식의 일반해는 보통 상수 n개를 갖는다.
1계 방정식에 상수가 하나인 이유는 1계 미분을 한 번 "되돌리려면" 적분을 한 번 해야 하고, 적분할 때마다 상수가 하나 생기기 때문입니다. 가장 단순한 예 y′=f(t)의 일반해 y=∫fdt+C가 이것을 보여 줍니다(CalculusBook 미적분의 기본 정리). 2계 방정식 y′′=−g는 두 번 적분해 y=−21gt2+c1t+c2, 상수가 두 개입니다.
일반해가 모든 해는 아닐 수 있다y′=y2의 해곡선 족은 y=c−t1입니다. 그런데 y≡0도 해이고(0′=0=02), 이것은 어떤 c로도 얻어지지 않습니다. 이처럼 일반해 공식에서 빠지는 해가 있을 수 있어서, 정의 1.5에 "(거의)"를 붙였습니다. 2장에서 변수를 분리할 때 y2으로 나누는 순간 이런 해를 잃는다는 것을 보게 됩니다. 아래 시뮬레이터의 'y′=y2'에서 확인하세요.
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 (대입으로 확인)
(가) y=3e−t2이 y′=−2ty의 해인가? y′=3e−t2⋅(−2t)=−2t⋅3e−t2=−2ty. 모든 t에서 성립하므로 (−∞,∞)에서 해다.
(나) y=c1cos2t+c2sin2t가 y′′+4y=0의 해인가? y′′=−4c1cos2t−4c2sin2t=−4y. 따라서 y′′+4y=0, 모든 c1,c2에 대해 해다. 2계 방정식이라 상수가 두 개다.
(다) y=cos4t는 y′′+4y=0의 해인가? y′′+4y=−16cos4t+4cos4t=−12cos4t. 이것은 항등적으로 0이 아니므로(예: t=0에서 −12) 해가 아니다. 몇몇 점(cos4t=0인 곳)에서 우연히 0이 되는 것은 해가 될 이유가 못 된다. 정의 1.4는 구간 전체에서의 성립을 요구한다.
(라) y=5t2은 ty′=2y의 해인가? ty′=t⋅10t=10t2=2⋅5t2. 해다.
대입 검산을 그래프로 하면 이렇습니다. 방정식의 좌변(예: y′)과 우변(예: f(t,y))을 후보 함수로 계산해 두 곡선으로 그립니다. 해라면 두 곡선이 완전히 겹치고, 둘의 차이인 잔차R(t)=좌변−우변이 구간 전체에서 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)=y0
를 초기값 문제(initial value problem, IVP)라 하고, y(t0)=y0을 초기 조건이라 한다. n계 방정식에서는 y(t0),y′(t0),…,y(n−1)(t0)의 n개 값을 준다.
해곡선 족 그림에서 초기 조건은 "점 (t0,y0)을 지나는 곡선을 골라라"입니다. 일반해에 대입하면 상수가 정해집니다.
(가) 일반해 y=t+1+cet에 t=0을 넣으면 2=0+1+c, c=1. 해는 y=t+1+et. 예를 들어 y(1)=2+e≈4.718. RK4 수치 적분으로도 4.71828이 나온다.
(나) 일반해 y=c1cos2t+c2sin2t, y′=−2c1sin2t+2c2cos2t. y(0)=c1=1, y′(0)=2c2=6이므로 c2=3. 해는 y=cos2t+3sin2t. 2계에는 조건이 두 개(위치와 속도) 필요하다. 용수철을 당긴 거리만으로는 운동이 정해지지 않고, 놓을 때 얼마나 세게 밀었는지도 알아야 한다.
물리적으로 1계 방정식 y′=f(t,y)는 "지금의 y 하나가 지금의 변화율을 정한다"고 말하므로, 처음 y 하나만 알면 그다음 순간, 또 그다음 순간이 차례로 정해집니다. 그래서 초기값 문제의 해는 하나뿐일 것으로 기대합니다. 이 기대는 f가 충분히 매끄러우면 실제로 성립하며, 그것이 4장의 존재·유일성 정리입니다. 미리 결론만 적어 두면:
정리 1.7 (존재와 유일성, 미리 보기)f와 ∂f/∂y가 점 (t0,y0)을 품은 직사각형에서 연속이면, t0을 품은 어떤 구간에서 초기값 문제 y′=f(t,y), y(t0)=y0의 해가 존재하고 오직 하나뿐이다. 따라서 그 영역에서 서로 다른 해곡선은 만나거나 교차하지 않는다. 증명은 피카르 반복으로 4장에서 한다.
해곡선 족 시뮬레이터에서 곡선들이 서로 만나지 않았던 것이 이 정리의 그림입니다. 한편 'ty′=2y'에서는 모든 곡선이 원점에서 만났습니다. 정규형으로 쓰면 f(t,y)=2y/t이고, 이 f는 t=0에서 정의조차 되지 않으므로 정리의 가정이 깨집니다. 원점을 지나는 해가 무수히 많고, t=0, y0=0을 지나는 해는 하나도 없습니다.
방향장: 풀지 않고 해를 보기
공식으로 풀리지 않는 방정식
y′=t−y2처럼 단순해 보이는 방정식도 기본 함수로 쓴 해가 없습니다(리카티 방정식이라 부르는 꼴입니다). 공학에서 만나는 방정식 대부분이 이렇습니다. 그래도 해가 어떻게 생겼는지, 결국 어디로 가는지는 알고 싶습니다. 공식 없이 해를 볼 수 있을까요?
방정식 y′=f(t,y)는 평면의 모든 점 (t,y)에서 "이 점을 지나는 해곡선의 기울기는 f(t,y)다"라고 알려 줍니다. 그러니 평면의 격자점마다 그 기울기를 가진 짧은 선분을 그려 두면, 해곡선은 이 선분들에 접하며 흘러가는 곡선입니다. 바람에 날리는 깃털이 그 자리의 바람 방향을 따라가는 것과 같습니다.
정의 1.8 (방향장) 영역 R의 점들 (t,y)에 기울기 f(t,y)인 짧은 선분을 붙인 그림을 y′=f(t,y)의 방향장(direction field, slope field) 또는 기울기 장이라 한다. 미분 가능한 함수 y=ϕ(t)가 해일 필요충분조건은 그 그래프가 모든 점에서 방향장의 선분에 접하는 것이다.
방향장을 그리는 데에는 미분도 적분도 필요 없고, f를 계산하기만 하면 됩니다. 아래 시뮬레이터에서 빈 곳을 클릭하면 그 점을 초기값으로 하는 해곡선이 앞뒤로 그려지고, 분홍 점을 끌면 굵은 해곡선이 따라 움직입니다.
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로 앞뒤로 적분하고, 화면을 벗어나거나 기울기가 발산하면 멈춥니다.
대칭: f(−t,y)=−f(t,y)이면 방향장이 y축에 대해 거울 대칭이고, 해곡선도 그렇다(y′=−t/y의 원).
끊김: 기울기가 무한대가 되는 곳에서 해가 끝날 수 있다.
등경사선: 손으로 방향장 그리기
컴퓨터가 없다면 격자점 수백 개에서 f를 계산하기는 고됩니다. 손으로 그릴 때는 순서를 뒤집습니다. 점마다 기울기를 구하는 대신, 기울기가 같은 점들을 한꺼번에 찾습니다.
정의 1.9 (등경사선) 상수 m에 대해 곡선 f(t,y)=m을 y′=f(t,y)의 등경사선(isocline)이라 한다. 등경사선 위의 모든 점에서 방향장의 선분은 같은 기울기 m을 가진다. 특히 m=0인 등경사선 f=0은 해곡선이 수평이 되는 곳, 즉 해의 극대·극소가 놓이는 곳이다.
예제 1.4 (등경사선으로 그리기)y′=t−y의 방향장을 등경사선으로 그려라.
등경사선 t−y=m, 즉 y=t−m. 모두 기울기 1인 평행선이다.
m=0: 직선 y=t 위에는 수평 선분. m=1: 직선 y=t−1 위에는 기울기 1인 선분. m=−1: 직선 y=t+1 위에는 기울기 −1인 선분.
m=1인 등경사선 y=t−1의 기울기가 1이고, 그 위의 선분 기울기도 1이다. 선분이 등경사선 자신을 따라 놓이므로 이 직선 자체가 해곡선이다. 검산: y=t−1이면 y′=1, t−y=1. ✓
y=t−1보다 위(m<1)에서는 해가 그 직선보다 완만하게, 아래(m>1)에서는 가파르게 움직여 양쪽 모두 이 직선으로 다가간다. 실제 일반해는 y=t−1+ce−t이고, t→∞이면 모든 해가 t−1에 붙는다.
예제 1.4와 1절의 y′=y−t를 비교해 보세요. 그쪽의 특별한 직선 y=t+1은 해들을 밀어내고, 이쪽의 y=t−1은 끌어당깁니다. 부호 하나 차이가 안정과 불안정을 가릅니다. 아래 시뮬레이터에서 m을 바꾸며 등경사선을 하나씩 그려 보세요.
SIMULATOR
등경사선 f(t, y) = m: 같은 기울기끼리 모으기
등경사선—
해곡선 시작점—
해볼 것: ① 'y′ = t − y'에서 m = 1로 두면 등경사선 위의 짧은 선분이 그 직선과 겹칩니다. 그 직선이 곧 해입니다. ② 'y′ = t² + y²'에서는 m < 0인 등경사선이 없습니다. 기울기가 음수인 곳이 없으니 모든 해는 늘 증가합니다. ③ 해곡선이 m = 0 등경사선을 지나는 곳이 해의 꼭대기나 바닥인지 확인하세요. 모델: 등경사선은 f − m의 영점을 격자에서 찾아(마칭 스퀘어) 그립니다.
오일러 방법: 접선을 따라 걷기
방향장을 숫자로
방향장은 해의 모양을 보여 주지만, "t=1에서 y는 정확히 얼마인가"에는 답하지 못합니다. 그림 1-1의 고리, "지금 상태로 변화율을 구하고, 조금 나아가고, 다시 반복"을 그대로 계산하면 숫자를 얻을 수 있지 않을까요?
지금 점 (tn,yn)에서 해곡선의 기울기는 f(tn,yn)입니다. 짧은 시간 h 동안 기울기가 거의 변하지 않는다고 보고 접선을 따라h만큼 걸어가면
tn+1=tn+h,yn+1=yn+hf(tn,yn).
h: 걸음 크기(간격). 이것이 오일러 방법(Euler's method)이다. 미분의 정의 y′≈hy(t+h)−y(t)를 거꾸로 읽은 것과 같다.
그림 1-2. 오일러 방법. 각 점에서 그 점의 기울기로 h만큼 직선을 긋는다. 참 해가 위로 휘면 접선은 늘 아래로 처지고, 오차가 쌓인다. h를 줄이면 꺾은선이 참 해에 가까워진다.
h=0.25: 걸음마다 1.25배가 되므로 y4=1.254=2.44140625. 오차 ≈0.277.
일반적으로 yn=(1+h)n, n=1/h. h=0.1이면 1.110≈2.59374(오차 0.125), h=0.01이면 ≈2.70481(오차 0.0135). h→0이면 (1+h)1/h→e. 오일러 방법이 e의 정의를 다시 만든다.
관찰: h를 1/10로 줄이면 오차도 거의 1/10이 된다(0.125 → 0.0135). 오차가 h에 비례한다. 이것을 "오일러 방법은 1차 방법"이라 한다.
h
걸음 수
오일러 y(1)
오차 e − y
오차 / h
0.5
2
2.25000
0.46828
0.937
0.25
4
2.44141
0.27688
1.108
0.1
10
2.59374
0.12454
1.245
0.01
100
2.70481
0.01347
1.347
오차/h가 h→0에서 일정한 값(이 문제에서는 e/2≈1.36)으로 다가갑니다. 걸음 하나마다 생기는 오차는 h2 정도이고 걸음 수가 1/h이므로 쌓인 오차가 h 정도가 되는 것입니다. 정확도를 한 자리 올리려면 계산을 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′=kP이고 해는 P=20ekt입니다. 처음 몇 시간의 측정값은 이 곡선에 잘 맞습니다. 그렇다면 하루 뒤에는 20e24k마리가 있을까요?
미분방정식은 현실 그 자체가 아니라 현실에 대한 가정을 식으로 쓴 것입니다. 그래서 수학적 모델링은 한 번에 끝나지 않는 고리입니다.
그림 1-3. 모델링의 고리. 가정이 방정식을, 방정식이 해를, 해가 예측을 낳는다. 예측을 데이터와 비교해 어긋나면 가정으로 돌아간다. 좋은 모델은 정확한 모델이 아니라 쓰려는 범위에서 충분히 맞는 모델이다.
가정: 무엇을 상태 변수로 잡을지(개체 수 P), 무엇에 비례한다고 볼지(증가율 ∝ P), 무엇을 무시할지(먹이 부족, 온도 변화)를 정한다. 무시한 것이 모델의 한계가 된다.
방정식: 가정을 식으로 쓴다. 양변의 단위를 맞춰 본다. P′의 단위가 마리/시간이면 k는 1/시간이다. 부호(늘어나는가, 줄어드는가)를 확인한다.
해: 손으로 풀거나(2·3장), 방향장으로 보거나, 수치로 계산한다. 매개변수(k)는 데이터에서 추정한다.
검증: 맞춤에 쓰지 않은 데이터로 예측을 확인한다. 특히 극단적인 경우를 묻는다. P=20ekt는 영원히 늘어나는데, 배양기는 유한하다.
아래 시뮬레이터의 측정값은 실제 세균 실험의 기록이 아니라, 이런 실험에서 흔히 보이는 모양을 흉내 내어 만든 자료입니다. 처음에는 지수 모형으로 맞춰 보고, 맞춤에 쓴 시간 범위를 넓히며 어디서 모형이 무너지는지 찾아보세요.
SIMULATOR
모델 맞추기: 데이터에 k를 맞추고 예측을 검증하기
모형
맞춤 데이터 오차(RMS)—
검증 데이터 오차(RMS)—
12시간 예측—
해볼 것: ① 지수 모형, 처음 5개 데이터로 '자동 맞춤'을 누르면 맞춤 오차는 작지만, 속이 빈 점(검증 데이터)에서는 예측이 크게 빗나갑니다. ② '로그 눈금'을 켜면 지수 함수는 직선이 됩니다. 데이터가 직선에서 휘어 눕는 곳이 지수 가정이 깨지는 곳입니다. ③ 로지스틱으로 바꾸고 13개 모두로 맞추면 전 구간이 맞습니다. 모델: P(0) = 20 고정, 오차는 상대 오차의 RMS(%), 자동 맞춤은 로그 오차 제곱합을 최소로 하는 격자 탐색입니다. 데이터는 교육용으로 만든 가상 자료입니다.
시뮬레이터가 보여 주는 교훈은 두 가지입니다. 첫째, 맞춤이 잘 된다고 모델이 옳은 것은 아닙니다. 지수 모형은 처음 몇 시간 동안 로지스틱과 구별이 안 되므로, 그 구간의 데이터만으로는 어느 쪽이 맞는지 알 수 없습니다. 둘째, 검증은 맞춤에 쓰지 않은 데이터로 해야 합니다. 로지스틱 방정식 P′=rP(1−P/K)는 "개체 수가 많아지면 1인당 증가율이 줄어든다"는 가정 하나를 더한 것이고, 2장에서 손으로 풉니다.
모델의 정확도는 목적이 정한다 낙하 방정식은 공기 밀도가 고도에 따라 변하는 것을 무시했고, 냉각 법칙은 커피 안의 온도가 고르다고 가정했습니다. 그런데도 이 모델들은 낙하산 설계와 식품 냉장의 첫 계산에 쓰입니다. 질문에 답할 만큼 맞으면 단순한 모델이 좋은 모델입니다. 반대로 모델이 무시한 효과가 질문의 핵심이라면(예: 고고도 낙하에서의 공기 밀도) 모델을 고쳐야 합니다.
이 도구가 쓰이는 곳
"상태와 그 변화율의 규칙"이라는 틀은 공학 시뮬레이션의 공통 언어입니다. 회로 시뮬레이터, 차량 동역학, 화학 반응기, 전염병 예측, 기상 모델이 모두 상태 벡터 y와 규칙 y′=f(t,y)를 정의하고 수치 적분기로 시간을 앞으로 밀어 갑니다.
게임 물리 엔진: 매 프레임이 오일러 걸음 게임이나 애니메이션의 물리 엔진은 화면 한 프레임(예: 1/60초)마다 "지금 위치·속도 → 힘 → 가속도 → 다음 프레임의 속도·위치"를 계산합니다. 이것은 이 장의 오일러 방법(또는 그 변형)을 h = 1/60 s로 돌리는 것과 같습니다. 프레임 간격이 너무 크면 빠른 물체가 벽을 뚫고 지나가거나 용수철이 폭발하듯 흔들리는 문제가 생기는데, 이것이 5장에서 다룰 수치 안정성 문제입니다.