분자가 cos2x+sin2x 로 모이는 순간 25번 글의 피타고라스 항등식이 그것을 1로 만듭니다. 표의 마지막 줄이 이 두 줄입니다.
이 규칙은 셋 중 가장 지저분하므로 쓰기 전에 나눠 적을 수 있는지 먼저 봅니다. 분자를 항마다 나누면 나눗셈이 없어지는 경우가 많습니다.
xx2+1=x+x1=x+x−1⟹(xx2+1)′=1−x−2=1−x21
몫의 규칙으로 풀면 x22x⋅x−(x2+1)=x2x2−1 이라 같은 답인데 줄이 하나 더 들고 약분이 남습니다. 분모가 한 항일 때는 나눠 적는 쪽이 늘 빠릅니다.
합성함수와 연쇄법칙
겉과 속
마지막 규칙은 함수 안에 함수가 든 경우입니다. 그 모양에 먼저 이름을 붙여야 합니다.
함수 f 에 넣어 나온 값을 다시 g 에 넣는 것을 합성이라고 하고 g(f(x)) 또는 g∘f 로 적습니다. "지 서클 에프"라고 읽고, 오른쪽 것을 먼저 먹입니다.
f(x)=x2 과 g(x)=x+1 로 확인합니다.
g(f(x))=g(x2)=x2+1f(g(x))=f(x+1)=(x+1)2
x=2 를 넣으면 앞은 4+1=5, 뒤는 32=9 입니다. 순서를 바꾸면 다른 함수입니다. 그래서 합성식을 볼 때 어느 쪽이 먼저인지를 반드시 갈라야 합니다.
가르는 이름도 정해 둡니다. 나중에 먹이는 바깥쪽을 겉이라 하고, 먼저 먹이는 안쪽을 속이라고 합니다.
식
겉
속
(2x+1)5
다섯제곱
2x+1
sin(x2)
sin
x2
e−x2
e 의 거듭제곱
−x2
ln(1+x2)
ln
1+x2
괄호 안에 든 것이 속입니다. 이 한 줄이면 대부분 갈립니다.
연쇄법칙
합성함수의 도함수는 이렇습니다.
(g(f(x)))′=g′(f(x))⋅f′(x)
말로 하면 겉을 미분하고, 속을 미분해서, 곱합니다. 겉을 미분할 때 속은 통째로 하나의 덩어리로 두고, 미분이 끝난 뒤 그 자리에 속을 도로 넣습니다.
(2x+1)5 로 단계를 밟습니다.
겉은 다섯제곱, 속은 2x+1
겉을 미분하면 5u4, 속을 도로 넣어 5(2x+1)4
속을 미분하면 2
곱하면 10(2x+1)4
ln(1+x2) 도 같습니다. 겉은 ln 이라 미분하면 □1 이고 속을 넣으면 1+x21, 속을 미분하면 2x 이므로
(ln(1+x2))′=1+x22x
이제 앞 절에서 미뤄 둔 몫의 규칙을 갚습니다. 나눗셈을 음의 지수로 고쳐 적으면 곱의 규칙과 연쇄법칙만으로 두 줄입니다.
gf=f⋅g−1
곱의 규칙을 쓰면 f′g−1+f⋅(g−1)′ 이고, (g−1)′ 은 겉이 □−1 이고 속이 g 인 합성이라 연쇄법칙으로 −g−2g′ 입니다.
(gf)′=gf′−g2fg′=g2f′g−fg′
통분 한 번으로 외워 둔 그 모양이 나옵니다. 몫의 규칙은 새 규칙이 아니라 앞의 둘에서 따라 나오는 것이고, 그래서 셋 중 잊어버려도 되는 유일한 규칙입니다.
배율의 곱
연쇄법칙이 왜 더하기가 아니라 곱하기인지를 그림으로 봅니다. 눈금자 셋을 나란히 놓습니다 — 맨 위가 x, 가운데가 속의 값 u, 맨 아래가 최종값 y 입니다.
u=2x+1 이고 y=u2 인 경우를 x=1 근처에서 봅니다. 이때 u=3 이고 y=9 입니다.
x 를 1칸 움직이면 u 는 2칸 움직입니다. u 를 1칸 움직이면 y 는 2u=6 칸 움직입니다. 그러면 x 가 1칸 움직일 때 y 는 몇 칸 움직일까요. u 가 2칸 움직이고 그 1칸마다 y 가 6칸이니 2×6=12 칸입니다.
배율이 이어 붙을 때는 더하는 것이 아니라 곱하는 것입니다. 변화량의 비로 적으면 한 줄로 보입니다.
ΔxΔy=ΔuΔy⋅ΔxΔu
오른쪽에서 Δu 가 약분되는 것처럼 보이고, 실제로 이것이 h→0 에서 연쇄법칙이 됩니다. 검산도 됩니다 — y=(2x+1)2 을 펼치면 4x2+4x+1 이고 y′=8x+4 이니 x=1 에서 12입니다.
라이프니츠 표기로 적으면 약분이 더 그럴듯해 보입니다.
dxdy=dudy⋅dxdu
그런데 이것은 증명이 아닙니다. dy 나 du 는 따로 떼어 나눌 수 있는 수가 아니고, dudy 전체가 하나의 기호입니다. 게다가 Δu 가 0이 되는 자리에서는 위의 분수식이 아예 성립하지 않아서 진짜 증명은 그 경우를 따로 다뤄야 합니다. 기억을 돕는 모양이지 근거는 아니라고 갈라 두세요.
세 겹의 합성
껍질이 셋이면 안쪽으로 한 겹씩 벗기며 곱을 하나씩 더 붙입니다. esin(x2) 을 봅니다 — 겉은 e 의 거듭제곱, 그 속은 sin, 그 속은 x2 입니다.
(esin(x2))′=esin(x2)⋅cos(x2)⋅2x
벗긴 껍질의 수만큼 곱이 붙습니다. 두 겹이면 둘, 세 겹이면 셋입니다. 눈금자로 읽으면 자가 넷이 되고 배율이 셋 곱해지는 것뿐입니다.
고계도함수와 볼록
이계도함수
f′ 도 함수이므로 다시 미분할 수 있습니다. 그렇게 얻은 것을 이계도함수 라 하고 f′′ 로 적습니다. "에프 투 프라임"이라고 읽습니다. 더 가면 f′′′, 그 뒤로는 작대기 대신 숫자를 괄호에 넣어 f(4) 로 적습니다.
f(x)=x4 로 끝까지 가 봅니다.
식
f
x4
f′
4x3
f′′
12x2
f′′′
24x
f(4)
24
f(5)
0
이름 붙이기 좋은 대응이 하나 있습니다. f 를 시각에 따른 위치로 보면 f′ 은 위치가 변하는 빠르기, 곧 속도입니다. 그리고 f′′ 은 속도가 변하는 빠르기, 곧 가속도입니다. 아래 볼록 이야기는 전부 「가속도의 부호」를 다른 말로 한 것입니다.
볼록과 변곡점
지난 글에서 f′ 의 부호가 오르내림을 말했습니다. f′′ 은 f′ 의 도함수이므로 기울기 자체가 커지는 중인지 작아지는 중인지 를 말합니다.
f′′>0 이면 기울기가 커지는 중이라 그릇처럼 위로 열립니다. 이것을 아래로 볼록 이라고 합니다.
f′′<0 이면 기울기가 작아지는 중이라 덮개처럼 아래로 열립니다. 위로 볼록 입니다.
f′′ 의 부호가 바뀌는 점을 변곡점이라고 합니다. 휘는 방향이 뒤집히는 자리입니다.
f(x)=x3 에서 확인합니다. f′=3x2, f′′=6x 이므로 x<0 에서 음수, x>0 에서 양수입니다. x=0 이 변곡점입니다. 지난 글에서 이 점이 극값이 아니었던 것과 나란히 놓으면 정리가 됩니다 — f′(0)=0 이지만 꺾이지는 않았고, 대신 휘는 방향이 거기서 뒤집혔습니다.
부호 네 조합
f′ 과 f′′ 은 서로 다른 것을 말하므로 부호를 따로 봐야 합니다. 조합이 넷이고 곡선 모양도 넷입니다.
f′
f′′
곡선
예
+
+
올라가면서 점점 가파르게
ex
+
−
올라가면서 점점 완만하게
lnx (x>0)
−
−
내려가면서 점점 가파르게
−ex
−
+
내려가면서 점점 완만하게
e−x
가장 자주 헷갈리는 자리가 둘째 줄과 셋째 줄입니다. 둘째 줄은 「올라가는데 위로 볼록」이라 올라가는 것을 멈출 기세이고, 셋째 줄은 「내려가는데 위로 볼록」이라 내려가는 속도가 붙는 중입니다. 위로 볼록인지 아래로 볼록인지는 오르내림과 아무 상관이 없습니다 — f′′ 만 보면 됩니다.
x⁴의 원점
변곡점을 찾을 때 f′′=0 인 점을 구하는 것까지는 맞습니다. 그런데 거기서 멈추면 틀립니다.
f(x)=x4 을 봅니다. f′′=12x2 이므로 f′′(0)=0 입니다. 그런데 x=0 은 변곡점이 아닙니다 — 12x2 은 x 가 음수든 양수든 양수라 부호가 안 바뀌기 때문입니다. 원점의 좌우 모두 아래로 볼록이고, 실제로 그 점은 이 함수의 극소입니다.
x3 과 나란히 놓으면 차이가 분명합니다.
f′′
x<0
x>0
x=0 은
x3
6x
음수
양수
변곡점
x4
12x2
양수
양수
극소
f′′=0 은 변곡점의 필요조건일 뿐입니다. 그 점을 찾은 뒤에 좌우에서 f′′ 의 부호가 실제로 갈리는지 한 번 더 봐야 합니다. 지난 글에서 f′=0 이 극값의 필요조건일 뿐이었던 것과 똑같은 모양이고, 그때의 반례도 x3 이었습니다.
음함수·로그·역함수 미분
앞의 규칙 넷으로 안 풀리는 모양이 셋 남았습니다. 셋 다 미분을 새로 배우는 것이 아니라 식을 먼저 손보는 요령입니다.
음함수 미분
y 가 x 의 식으로 깔끔하게 풀려 있지 않은 경우가 있습니다. 원의 방정식 x2+y2=25 가 그렇습니다. 이럴 때는 양변을 그대로 미분하되, y 를 미분할 때마다 연쇄법칙에 따라 y′ 을 곱해 줍니다. y 가 속에 든 함수이기 때문입니다.
2x+2yy′=0⟹y′=−yx
점 (3,4) 에서 −43 입니다. 답에 y 가 남아 있는 것이 이 방법의 특징입니다 — 곡선 위의 점 하나를 주면 기울기가 정해집니다.
로그 미분법
곱과 거듭제곱이 여러 겹 겹친 식은 규칙을 그대로 쓰면 항이 폭발합니다. 그럴 때 양변에 로그를 씌우면 곱이 합으로, 거듭제곱이 상수배로 내려옵니다. 22번 글의 로그 성질이 그대로 쓰이는 자리이고, 이것을 로그 미분법이라고 부릅니다.
y=xx 으로 해 봅니다. 밑에도 x 가 있고 지수에도 x 가 있어 표의 어느 줄도 안 맞습니다. 양변에 자연로그를 씌웁니다.
lny=xlnx
이제 양변을 x 로 미분합니다. 왼쪽은 음함수 미분과 같아서 yy′ 이고, 오른쪽은 곱의 규칙으로 lnx+1 입니다.
yy′=lnx+1⟹y′=xx(lnx+1)
마지막에 y 를 원래 식으로 되돌려 놓는 것을 빠뜨리지 마세요. 양변에 y 를 곱하는 그 한 줄이 이 방법의 마무리입니다.
밑에 x 가 없어도 겹친 곱이면 같은 요령이 통합니다. 로그가 곱을 합으로 바꾸므로, 괄호가 여럿인 식은 항의 수만큼 짧은 분수로 갈라집니다. 곱의 규칙을 세 번 쓰는 것보다 훨씬 짧고, 아래 연습 2번이 그 자리입니다.
역함수의 미분
y=f(x) 의 역함수는 x 와 y 의 역할을 바꾼 함수이고, 그래프는 원래 그래프를 직선 y=x 에 대해 뒤집은 모양입니다. 거울에 비춘 것이므로 한 점에서의 접선도 함께 뒤집힙니다.
접선이 뒤집히면 기울기는 어떻게 될까요. 직선 y=x 대칭은 가로와 세로를 맞바꾸는 일이니, 가로로 a 세로로 b 였던 기울기가 가로로 b 세로로 a 가 됩니다. 곧 역수입니다.
dxdy=dydx1
y=x 로 확인합니다. 양변을 제곱하면 x=y2 이고 dydx=2y 이므로
dxdy=2y1=2x1
표의 x1/2 줄과 같습니다. lnx 도 같은 방법으로 되찾을 수 있습니다. y=lnx 이면 x=ey 이고 dydx=ey=x 이므로 dxdy=x1 입니다. 표에서 외우기로 한 두 줄 중 하나가 나머지 하나에서 나온 셈입니다.
연습 문제
여기가 이 글의 본체입니다. 규칙을 읽는 것과 쓰는 것은 다릅니다.
틀렸을 때는 이 순서로 의심합니다.
부호 — cos 을 미분하면 −sin 입니다. e−x 처럼 속에 마이너스가 있으면 그것도 곱해집니다.
속미분 누락 — 괄호가 있었는데 답에 속의 도함수가 안 붙었으면 그것입니다. sin(x2) 의 답에 2x 가 있는지 봅니다.
음의 지수 처리 — x21=x−2 이고 미분하면 −2x−3=−x32 입니다. 지수가 작아진다는 것은 음수 쪽으로 더 간다는 뜻입니다.
답을 컴퓨터로 맞춰 보는 방법도 있습니다. 그 절차는 48번 · SymPy 검산의 몫이라 여기서는 그런 것이 있다고만 적어 둡니다.
연습 1 — 표·합·곱·몫 열두 문제
f(x)=x7
f′(x)=7x6 입니다.
f(x)=4x3−3x2+6
항마다 따로 미분해 f′(x)=12x2−6x 입니다. 상수 6은 0이 됩니다.
f(x)=x+x1
x1/2+x−1 로 고쳐 적으면 f′(x)=21x−1/2−x−2=2x1−x21 입니다.
f(x)=3ex−2lnx
f′(x)=3ex−x2 입니다.
f(x)=4sinx+cosx
f′(x)=4cosx−sinx 입니다. cos 쪽에서 마이너스가 나옵니다.
f(x)=5⋅2x+log2x
표의 두 줄을 그대로 씁니다. f′(x)=5⋅2xln2+xln21 입니다.
f(x)=x3ex
3x2ex+x3ex=(x3+3x2)ex 입니다.
f(x)=xlnx
1⋅lnx+x⋅x1=lnx+1 입니다.
f(x)=(x+1)sinx
1⋅sinx+(x+1)cosx=sinx+(x+1)cosx 입니다.
f(x)=xexcosx
곱이 셋이라 항도 셋입니다. excosx+xexcosx−xexsinx 입니다.
f(x)=1+xx2
(1+x)22x(1+x)−x2⋅1=(1+x)2x2+2x 입니다.
f(x)=xsinx
x2xcosx−sinx 입니다.
10번은 앞의 둘을 한 덩어리로 묶어 곱의 규칙을 두 번 써도 같은 답이 나옵니다. 어느 쪽이 편한지 두 번 다 해 보세요.
연습 2 — 연쇄법칙과 섞어 쓰기 여덟 문제
f(x)=(3x−2)4
겉을 미분해 4(3x−2)3, 속을 미분해 3, 곱하면 12(3x−2)3 입니다.
f(x)=ln(1+3x)
1+3x1×3=1+3x3 입니다.
f(x)=sin(4x)
cos(4x)×4=4cos(4x) 입니다.
f(x)=e3x
e3x×3=3e3x 입니다.
f(x)=x2+1
(x2+1)1/2 로 보면 겉이 21(x2+1)−1/2 이고 속이 2x 이므로 x2+1x 입니다.
f(x)=x2e−x2
곱의 규칙으로 2xe−x2+x2⋅e−x2⋅(−2x) 이고, 뒤쪽에 연쇄법칙이 한 번 들어갔습니다. 정리하면 (2x−2x3)e−x2 입니다.
앞의 둘은 계산기로 직접 재는 검산입니다. 한 점에서 2hf(x+h)−f(x−h) 를 h 를 바꿔 가며 계산하고, 규칙으로 얻은 값과 맞대 보세요.
f(x)=xx 의 x=2 에서의 값을 규칙으로 구하고, h=10−3,10−6,10−10 에서 잰 값과 맞대세요.
로그 미분법으로 f′(x)=xx(lnx+1) 이므로 f′(2)=4(ln2+1)=6.772589 입니다. 재면 h=10−3 에서 6.772593, h=10−6 에서 6.772589, h=10−10 에서 6.772591 입니다.
f(x)=x2+1 의 x=2 에서도 같은 일을 하세요.
연쇄법칙으로 f′(x)=x2+1x 이므로 f′(2)=52=0.8944272 입니다. 재면 h=10−3 에서 0.8944272, h=10−6 에서 0.8944272, h=10−10 에서 0.8944268 입니다.
위 둘에서 h 를 가장 작게 잡은 10−10 이 오히려 나빴습니다. 왜 그런지 적으세요.
h 가 너무 작으면 f(x+h) 와 f(x−h) 가 거의 같은 수가 되어, 빼고 나면 계산기가 들고 있던 자릿수가 대부분 사라집니다. 남은 몇 자리를 아주 작은 2h 로 나누므로 그 오차가 크게 부풀려집니다. h 를 줄이면 한동안 좋아지다가 어느 지점부터 다시 나빠집니다.
아래 다섯은 전부 틀린 답입니다. 위의 의심 순서 셋 가운데 무엇을 놓친 것인지 고르고 바른 답을 적으세요.
(cos(3x))′=3sin(3x)
부호입니다. cos 을 미분하면 −sin 이므로 −3sin(3x) 입니다.
(sin(x2))′=cos(x2)
속미분 누락입니다. 속 x2 의 도함수 2x 가 빠졌으므로 2xcos(x2) 입니다.
(x31)′=−x23
음의 지수 처리입니다. x−3 을 미분하면 −3x−4 이므로 −x43 입니다. 지수가 −3 에서 −4 로 작아집니다.
(e−x)′=e−x
부호입니다. 속 −x 의 도함수 −1 이 곱해져 −e−x 입니다.
(ln(3x+1))′=3x+11
속미분 누락입니다. 속 3x+1 의 도함수 3이 곱해져 3x+13 입니다.
정리
기본 도함수 표와 상수배·합·차 규칙이면 다항식과 기본 함수는 바로 미분됩니다. xn→nxn−1 이 지수가 음수·분수여도 통합니다.
밑이 e 일 때만 hah−1 가 1에 붙습니다. a=elna 로 고쳐 적으면 (ax)′=axlna 가 한 줄로 나오고, logax 줄은 밑변환에서 따라옵니다.
(fg)′=f′g+fg′ 이고, 곱이 셋이면 항이 셋입니다. (gf)′=g2f′g−fg′ 은 f⋅g−1 로 보면 앞의 둘에서 두 줄로 따라 나옵니다.
합성 g(f(x)) 는 오른쪽을 먼저 먹입니다. 순서를 바꾸면 다른 함수입니다.
연쇄법칙은 겉을 미분하고 속을 미분해 곱합니다. 껍질 수만큼 곱이 붙고, 곱인 이유는 눈금자 셋에서 배율이 이어 붙기 때문입니다. 라이프니츠 표기의 약분은 기억을 돕는 모양이지 증명이 아닙니다.
f′′ 의 부호가 휘는 방향을 말하고, 부호가 바뀌는 점이 변곡점입니다. f′′=0 은 필요조건일 뿐이라 x4 의 원점처럼 변곡점이 아닌 자리도 있습니다.
규칙으로 안 풀리는 모양 셋은 식을 먼저 손봅니다 — 음함수는 y′ 을 달고 미분하고, 곱과 거듭제곱이 겹치면 로그 미분법으로 합과 상수배로 내리고, 역함수는 dydx 의 역수를 취합니다.
미분은 이걸로 손에 붙었습니다. 다음 글은 반대쪽으로 갑니다 — 곡선 아래 넓이를 직사각형으로 잘게 덮어 더하는 일입니다.
실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.
최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.
0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.