수학

MATH / 초급 36번

미분방정식 첫걸음: 변화율을 알 때 함수를 되찾기

미지수가 수가 아니라 함수인 방정식입니다. 변화율만 알 때 함수를 되찾으면 해가 무리로 나오고, 초기조건 하나가 그중 하나를 고릅니다. 지수·냉각·로지스틱 셋을 손으로 풀고 오일러 방법으로 걸어 봅니다.

PALDYN Team18 MIN READ

16번 글에서 2x+3=112x+3=11 을 풀었습니다. 답은 x=4x=4, 수 하나였습니다.

이번에는 물음이 이렇게 생겼습니다. "미분하면 자기 자신이 되는 함수는 무엇인가." 찾는 것이 수가 아니라 함수입니다. 답도 수 하나가 아닙니다.

미지의 함수와 그 도함수가 함께 들어 있는 등식을 미분방정식이라고 합니다. 그리고 그 등식을 참으로 만드는 함수를 그 방정식의 해라고 합니다. 이 글은 그중 손으로 풀 수 있는 것들을 풉니다.

오른쪽에 x만 있으면 그냥 적분이다

가장 쉬운 꼴부터 봅니다.

dydx=2x\frac{dy}{dx} = 2x

"미분해서 2x2x 가 되는 함수는 무엇인가"라는 말입니다. 34번 글에서 이런 함수를 찾는 것을 부정적분이라고 불렀습니다. 양변을 적분하면

y=x2+Cy = x^2 + C

여기서 CC 가 왜 붙는지가 이 글의 첫 수확입니다. 34번 글에서는 "미분하면 상수가 사라지니까"라고만 하고 넘어갔습니다. 미분방정식의 눈으로 보면 뜻이 달라집니다 — CC 가 어떤 수든 x2+Cx^2+C 는 전부 이 방정식의 해입니다. 해가 하나가 아니라 무리로 나오는 것입니다.

C 값에 따라 위아래로 나란히 놓인 해곡선 무리와, 초기조건이 그중 하나를 고르는 그림

그림의 곡선들은 모양이 전부 같고 높이만 다릅니다. CC 만큼 위아래로 옮긴 것이니 당연합니다.

이 무리 전체를 일반해라고 하고, CC 를 하나로 정한 것을 특수해라고 합니다. 정하는 방법은 조건을 하나 주는 것입니다.

y(0)=4y(0) = 4

이렇게 "xx 가 얼마일 때 yy 가 얼마다"를 지정한 것을 초기조건이라고 합니다. x=0x=0 을 일반해에 넣으면 0+C=40+C=4 이므로 C=4C=4, 특수해는 y=x2+4y=x^2+4 하나입니다. 그림에서 점 하나를 찍어 곡선 하나를 고른 셈입니다.

방향장 — 점마다 기울기를 꽂아 둔다

오른쪽에 yy 가 들어오면 그냥 적분할 수 없습니다.

dydx=y\frac{dy}{dx} = y

yy 가 무엇인지 아직 모르는데 오른쪽에 그 yy 가 있으니 적분할 것이 없습니다. 그래도 이 식은 평면의 점마다 기울기를 알려 줍니다. 점 (1, 2)(1,\,2) 를 지나는 해곡선이 있다면 그 점에서의 기울기는 22 입니다. (0, 0.5)(0,\,0.5) 를 지난다면 거기서의 기울기는 0.50.5 고요.

평면의 여러 점에 그 점에서의 기울기만큼 기운 짧은 선분을 꽂아 놓은 그림을 방향장이라고 합니다.

dy/dx = y 의 방향장과, 그 선분들의 흐름을 따라간 해곡선 셋

선분들이 만드는 흐름을 눈으로 따라가면 해곡선이 보입니다. 위쪽에서는 가팔라지고, 가운데 가로줄에서는 평평하고, 아래쪽에서는 아래로 가팔라집니다.

가운데 가로줄 y=0y=0 은 그 자체로 해입니다. 늘 y=0y=0 인 함수는 도함수도 0이고 오른쪽 yy 도 0이라 등식이 성립합니다. 이렇게 변하지 않는 상수 함수인 해를 평형해라고 합니다.

방향장은 식을 못 풀어도 그릴 수 있습니다. 오른쪽에 무엇이 들어 있든 점을 넣으면 기울기가 나오니까요.

변수분리 — x끼리 y끼리 갈라놓는다

이제 실제로 풉니다. 오른쪽이 xx 만 든 것과 yy 만 든 것의 곱으로 갈라지는 경우가 있습니다.

dydx=g(x) h(y)\frac{dy}{dx} = g(x)\,h(y)

이런 꼴을 변수분리형이라고 합니다. 푸는 절차는 셋입니다.

걸음 하는 일
1 h(y)h(y) 를 왼쪽으로, dxdx 를 오른쪽으로 옮겨 xx 끼리 yy 끼리 갈라놓는다
2 양변을 각각 적분한다
3 yy 에 대해 푼다. 상수 CC 는 한쪽에만 남긴다

dydx=y\dfrac{dy}{dx}=y 로 해 봅니다. g(x)=1g(x)=1, h(y)=yh(y)=y 입니다.

dyy=dx\frac{dy}{y} = dx

양변을 적분합니다. 왼쪽은 32번 글에서 ln⁡x\ln x 를 미분하면 1x\dfrac1x 이었으니 ln⁡∣y∣\ln\lvert y\rvert 이고, 오른쪽은 xx 입니다.

ln⁡∣y∣=x+C\ln\lvert y\rvert = x + C

21번 글의 방식대로 양변을 ee 의 지수로 올립니다.

∣y∣=ex+C=eCex\lvert y\rvert = e^{x+C} = e^{C}e^{x}

eCe^{C} 는 어차피 하나의 양수이므로 부호까지 삼켜서 새 상수 AA 로 적습니다.

y=A exy = A\,e^{x}

"미분하면 자기 자신이 되는 함수"의 답이 나왔습니다. AA 는 아무 수나 되고, A=0A=0 이 아까 본 평형해입니다.

손으로 푸는 세 모형

이 꼴이 실제로 자주 나오는 세 자리를 풉니다.

지수 성장·감쇠, 냉각 법칙, 로지스틱 세 모형의 해곡선 모양

하나 — 지수 성장과 감쇠

dydt=k y\frac{dy}{dt} = k\,y

"늘어나는 속도가 지금 있는 양에 비례한다"는 말입니다. 방금 푼 것과 같은 방법이고 kk 만 따라붙습니다.

y=y0 ekty = y_0\,e^{kt}

y0y_0 은 t=0t=0 일 때의 값입니다. k>0k>0 이면 커지고 k<0k<0 이면 줄어듭니다.

절반이 되는 데 걸리는 시간을 반감기라고 합니다. y=y02y=\dfrac{y_0}{2} 로 두고 풉니다.

y02=y0ekt⟹ekt=12⟹kt=ln⁡12=−ln⁡2\frac{y_0}{2} = y_0 e^{kt} \quad\Longrightarrow\quad e^{kt} = \frac12 \quad\Longrightarrow\quad kt = \ln\frac12 = -\ln 2

t=ln⁡2−kt = \frac{\ln 2}{-k}

y0y_0 이 지워진 것이 요점입니다. 처음에 얼마가 있었든 반이 되는 데 걸리는 시간은 같습니다.

탄소-14는 k=−0.000121k=-0.000121 입니다(단위는 1년). ln⁡2=0.6931\ln 2 = 0.6931 이므로

t=0.69310.000121≈5728 년t = \frac{0.6931}{0.000121} \approx 5728\ \text{년}

커지는 쪽에서 두 배가 되는 데 걸리는 시간은 배가시간이라고 합니다. 계산은 똑같아서 t=ln⁡2kt=\dfrac{\ln 2}{k} 입니다. 해마다 7%씩 커지면 k=0.07k=0.07 이므로

t=0.69310.07≈9.9 년t = \frac{0.6931}{0.07} \approx 9.9\ \text{년}

둘 — 냉각 법칙

뜨거운 커피는 어떻게 식을까요. 처음에는 빨리, 방 온도에 가까워질수록 천천히 식습니다.

dydt=−k (y−A)\frac{dy}{dt} = -k\,(y - A)

AA 는 방 온도입니다. 오른쪽이 yy 가 아니라 y−Ay-A 인 것이 전부의 차이입니다. 그래서 u=y−Au = y - A 로 이름만 바꿔 두면 dudt=−k u\dfrac{du}{dt}=-k\,u 라 앞의 것과 똑같아집니다. AA 는 상수라 미분하면 사라지므로 dudt=dydt\dfrac{du}{dt}=\dfrac{dy}{dt} 입니다.

u=u0e−kt⟹y=A+(y0−A) e−ktu = u_0 e^{-kt} \quad\Longrightarrow\quad y = A + (y_0 - A)\,e^{-kt}

e−kte^{-kt} 는 0으로 가므로 yy 는 AA 로 붙습니다. 그림에서 곡선이 점선에 닿을 듯 눕는 자리입니다.

90도짜리 커피를 20도인 방에 두고 k=0.05k=0.05 라 합시다. 10분 뒤의 온도는

y=20+(90−20) e−0.5=20+70×0.6065=20+42.5=62.5 도y = 20 + (90-20)\,e^{-0.5} = 20 + 70 \times 0.6065 = 20 + 42.5 = 62.5\ \text{도}

셋 — 로지스틱

지수 성장은 끝없이 커집니다. 실제로는 자리가 모자라 어느 선에서 멎습니다.

dydt=k y(1−yM)\frac{dy}{dt} = k\,y\left(1 - \frac{y}{M}\right)

MM 은 그 선입니다. yy 가 작으면 괄호가 거의 1이라 지수 성장처럼 굴고, yy 가 MM 에 가까우면 괄호가 0에 가까워져 성장이 멎습니다. 그래서 해곡선이 S자입니다.

이것도 변수분리로 풀리지만 왼쪽 적분이 길어서 결과만 적습니다.

y=M1+Be−kty = \frac{M}{1 + Be^{-kt}}

대신 평형해는 식만 보고 바로 찾을 수 있습니다. 오른쪽 전체가 0이 되는 상수를 찾으면 되니까요.

k y(1−yM)=0⟹y=0 또는 y=Mk\,y\left(1-\frac{y}{M}\right) = 0 \quad\Longrightarrow\quad y = 0 \ \text{또는}\ y = M

y=0y=0 은 아무것도 없으면 늘어날 것도 없다는 뜻이고, y=My=M 은 꽉 차서 더 늘지 않는다는 뜻입니다. 그림의 두 점선입니다.

대개는 풀리지 않는다

지금까지 푼 것들은 운이 좋은 경우입니다. dydx=x2+y2\dfrac{dy}{dx}=x^2+y^2 처럼 조금만 모양을 바꿔도 우리가 아는 함수로는 해를 적을 수 없습니다. 그런 방정식이 오히려 보통입니다.

그래도 답이 있기는 있습니다. 모든 점에서 오른쪽 식이 매끄럽게 이어져 있으면 초기조건 하나마다 해곡선이 정확히 하나 있다는 사실이 알려져 있습니다. 왜 그런지는 이 글에서 다루지 않지만, 방향장 그림을 떠올리면 그럴듯합니다 — 점을 하나 찍으면 흐름을 따라갈 길이 하나로 정해지니까요.

적을 수는 없어도 그릴 수는 있다는 말입니다. 그러면 그 곡선을 숫자로 따라가면 됩니다.

오일러 방법 — 접선을 따라 걷는다

방향장이 알려 주는 것은 점마다의 기울기였습니다. 그러니 이렇게 걸으면 됩니다.

지금 점에서 기울기를 구하고, 그 기울기로 직선을 조금만 따라가서, 새 점에서 기울기를 다시 구한다. 이것을 되풀이하는 것이 오일러 방법입니다. 한 걸음의 폭을 hh 라 하면

yn+1=yn+h⋅f(xn, yn)y_{n+1} = y_n + h \cdot f(x_n,\,y_n)

ff 는 미분방정식의 오른쪽입니다. 걸음마다 접선을 조금 타고 가는 것이라 31번 글의 접선 근사를 이어 붙인 셈입니다.

y′=yy'=y, y(0)=1y(0)=1 을 h=0.2h=0.2 로 다섯 걸음 걸어 봅니다. 오른쪽이 yy 이므로 매번 기울기가 곧 지금 값입니다.

nn xnx_n yny_n 기울기 다음 값 계산
0 0.0 1.0000 1.0000 1+0.2×1=1.21 + 0.2 \times 1 = 1.2
1 0.2 1.2000 1.2000 1.2+0.2×1.2=1.441.2 + 0.2 \times 1.2 = 1.44
2 0.4 1.4400 1.4400 1.44+0.2×1.44=1.7281.44 + 0.2 \times 1.44 = 1.728
3 0.6 1.7280 1.7280 1.728+0.2×1.728=2.07361.728 + 0.2 \times 1.728 = 2.0736
4 0.8 2.0736 2.0736 2.0736+0.2×2.0736=2.488322.0736 + 0.2 \times 2.0736 = 2.48832
5 1.0 2.4883

참값 곡선과 오일러 다섯 걸음의 꺾은선, 그리고 x=1에서 벌어진 간격

이 방정식은 참값을 알고 있습니다. y=exy=e^{x} 이므로 x=1x=1 에서 2.718282.71828 입니다.

2.71828−2.48832=0.229962.71828 - 2.48832 = 0.22996

꽤 벌어졌습니다. 그림에서 꺾은선이 곡선 아래로 처지는 것이 보입니다 — 곡선은 걸음 중에도 계속 가팔라지는데 우리는 걸음 첫머리의 기울기로만 걸었기 때문입니다.

걸음을 절반으로 줄이면 어떻게 될까요. h=0.1h=0.1 이면 매번 1.11.1 배가 되므로 열 걸음 뒤에는 1.110=2.593741.1^{10}=2.59374 입니다.

2.71828−2.59374=0.124542.71828 - 2.59374 = 0.12454

hh 걸음 수 x=1x=1 에서의 값 오차
0.2 5 2.48832 0.22996
0.1 10 2.59374 0.12454

걸음을 절반으로 줄였더니 오차도 대략 절반이 되었습니다. 이 관계에 이름과 기호를 붙이는 것은 47번 · 자릿수와 오차의 몫입니다.

절반짜리 오차를 얻으려고 걸음 수를 두 배로 늘려야 하는 것은 좋은 거래가 아닙니다. 걸음 안에서 기울기를 여러 번 재서 이 낭비를 줄이는 방법들이 있고, 룽게-쿠타 방법이 그중 가장 널리 쓰입니다 — 이름만 적어 둡니다.

연습 문제

연습 1 — 적분하고 초기조건 맞추기

오른쪽에 xx 만 있는 꼴입니다.

  1. dydx=3x2\dfrac{dy}{dx}=3x^2, y(0)=5y(0)=5
    적분하면 y=x3+Cy=x^3+C 입니다. x=0x=0 에서 C=5C=5 이므로 y=x3+5y=x^3+5 입니다.
  2. dydx=cos⁡x\dfrac{dy}{dx}=\cos x, y(0)=2y(0)=2
    미분해서 cos⁡x\cos x 가 되는 것은 sin⁡x\sin x 이므로 y=sin⁡x+Cy=\sin x+C 입니다. sin⁡0=0\sin 0=0 이라 C=2C=2, 답은 y=sin⁡x+2y=\sin x+2 입니다.
  3. dydt=4t+1\dfrac{dy}{dt}=4t+1, y(1)=0y(1)=0
    y=2t2+t+Cy=2t^2+t+C 입니다. t=1t=1 을 넣으면 2+1+C=02+1+C=0 이므로 C=−3C=-3, 답은 y=2t2+t−3y=2t^2+t-3 입니다.

연습 2 — 변수분리와 지수 모형

ln⁡2=0.6931\ln 2 = 0.6931, e0.3=1.3499e^{0.3}=1.3499 를 씁니다.

  1. dydt=0.03 y\dfrac{dy}{dt}=0.03\,y, y(0)=200y(0)=200 일 때 t=10t=10 에서의 값
    y=200e0.03ty=200e^{0.03t} 이고 t=10t=10 이면 지수가 0.30.3 입니다. 200×1.3499=269.98200\times1.3499=269.98 입니다.
  2. 반감기가 8일인 물질의 kk
    8=ln⁡2−k8=\dfrac{\ln2}{-k} 이므로 −k=0.69318=0.0866-k=\dfrac{0.6931}{8}=0.0866, 즉 k=−0.0866k=-0.0866 입니다(단위는 1일).
  3. dydx=x y\dfrac{dy}{dx}=x\,y, y(0)=1y(0)=1
    갈라놓으면 dyy=x dx\dfrac{dy}{y}=x\,dx 입니다. 적분하면 ln⁡∣y∣=x22+C\ln\lvert y\rvert=\dfrac{x^2}{2}+C 이고, 지수로 올리면 y=Aex2/2y=Ae^{x^2/2} 입니다. x=0x=0 에서 y=A=1y=A=1 이므로 y=ex2/2y=e^{x^2/2} 입니다.

연습 3 — 평형해와 오일러

  1. dydt=0.5 y(1−y400)\dfrac{dy}{dt}=0.5\,y\left(1-\dfrac{y}{400}\right) 의 평형해를 모두
    오른쪽이 0이 되는 상수를 찾습니다. y=0y=0 과 y=400y=400 둘입니다.
  2. y′=2yy'=2y, y(0)=1y(0)=1 을 h=0.25h=0.25 로 두 걸음. 참값은 e0.5=1.6487e^{0.5}=1.6487 입니다
    첫 걸음은 기울기가 2×1=22\times1=2 이므로 1+0.25×2=1.51+0.25\times2=1.5 입니다. 둘째 걸음은 기울기가 2×1.5=32\times1.5=3 이므로 1.5+0.25×3=2.251.5+0.25\times3=2.25 입니다. x=0.5x=0.5 에서 참값보다 0.60130.6013 큽니다.
  3. 방 온도 25도, 처음 85도, k=0.1k=0.1 인 냉각에서 5분 뒤의 온도. e−0.5=0.6065e^{-0.5}=0.6065 입니다
    y=25+(85−25)e−0.5=25+60×0.6065=25+36.4=61.4y=25+(85-25)e^{-0.5}=25+60\times0.6065=25+36.4=61.4 도입니다.

정리

  • 미분방정식은 미지의 함수와 그 도함수가 함께 든 등식이고, 그것을 참으로 만드는 함수가 해입니다. 답이 수가 아닙니다.
  • 오른쪽에 xx 만 있으면 그냥 적분입니다. 이때 해는 +C+C 만큼 무리로 나오고(일반해), 초기조건 하나가 그중 하나를 고릅니다(특수해). 34번 글에서 이유 없이 붙였던 적분상수의 정체가 이것입니다.
  • 방향장은 점마다 기울기를 꽂아 둔 그림이라 못 푸는 식에도 그릴 수 있습니다. 변하지 않는 상수 해를 평형해라 하고, 오른쪽을 0으로 두면 찾을 수 있습니다.
  • 변수분리형은 xx 끼리 yy 끼리 갈라 양변을 적분합니다. 이것으로 dydt=ky\dfrac{dy}{dt}=ky 의 해 y0ekty_0e^{kt} 가 나오고, 반감기 ln⁡2−k\dfrac{\ln2}{-k} 는 처음 양과 무관합니다.
  • 냉각 법칙 −k(y−A)-k(y-A) 는 u=y−Au=y-A 로 두면 같은 꼴이 되고 해가 AA 로 붙습니다. 로지스틱은 S자를 그리며 평형해가 y=0y=0 과 y=My=M 둘입니다.
  • 해석해가 없는 것이 오히려 보통입니다. 그럴 때는 오일러 방법으로 접선을 따라 걷습니다 — yn+1=yn+h fy_{n+1}=y_n+h\,f. 걸음을 절반으로 줄이면 오차도 대략 절반이 됩니다.

여기까지가 확실한 세계였습니다. 다음 글부터는 물음이 달라집니다 — 무슨 일이 일어날지 미리 알 수 없을 때, 그래도 무언가를 말할 수 있을까요.


읽어주셔서 감사합니다. 😊

LATEST

수학의 최신 글

수학2026.09.07

양자화 오차: 격자 사상, 오차 분산, 이상치 채널

실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.

중급18 MIN
수학2026.09.07

수치적으로 안정한 계산 패턴 모음

최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.

중급22 MIN
수학2026.09.07

부동소수점은 어디서 새는가: 반올림, 상쇄, 더하는 순서

0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.

중급23 MIN