표가 찾아낸 값에 lim 기호로 이름을 붙이면 미분계수입니다. 그것이 접선의 기울기이고, 기준점을 변수로 바꾸면 점마다 기울기를 돌려주는 새 함수가 됩니다.
PALDYN Team//18 MIN READ
31MATH
초급
도함수 · 접선
지난 글에서 h 를 줄이며 표를 채웠고, 값이 한 곳에 붙는 것을 보았습니다. 붙는 그 값에는 아직 이름이 없습니다.
이 글은 세 가지를 합니다. 그 값에 이름과 기호를 붙이고, 그것이 무엇의 기울기인지 밝히고, 마지막으로 관점을 한 번 바꿉니다.
붙는 값에 이름을 붙인다
지난 글에서 f(x)=x2 에 a=1 을 잡고 hf(1+h)−f(1) 의 표를 채웠더니 2에 붙었습니다. 그리고 식을 약분해 2+h 임을 확정했습니다.
"h 를 0으로 보낸다"는 동작은 28번 글에서 이미 lim 으로 적기로 했습니다. 그대로 적습니다.
f′(a)=limh→0hf(a+h)−f(a)
이 값을 x=a 에서의 미분계수라고 하고 f′(a) 로 적습니다. "에프 프라임 에이"라고 읽습니다. 프라임은 위에 찍은 작은 작대기의 이름입니다.
새로 나온 것은 기호뿐입니다. 지난 글의 표가 찾아 준 그 값을 한 줄로 적은 것이고, 안에 든 hf(a+h)−f(a) 는 구간 [a,a+h] 의 평균변화율 그대로입니다.
h=0 을 그냥 넣을 수 없다는 것도 지난 글 그대로입니다 — 넣으면 분모가 0이 되어 00 이 됩니다. 그래서 lim 이 필요합니다. 식을 손봐서 h 를 약분한 다음에야 넣을 수 있게 됩니다.
앞의 결과를 이 기호로 다시 적으면 이렇습니다.
지난 글에서
이 글의 기호로
x2, a=1 에서 2에 붙었다
f′(1)=2
x3, a=2 에서 12에 붙었다
f′(2)=12
x1, a=2 에서 −0.25 에 붙었다
f′(2)=−41
그 값은 접선의 기울기다
지난 글 마지막에서 h 를 줄이면 할선이 한 직선으로 기울어 가는 것을 그림으로 보았고, 그 직선을 접선 이라고 불렀습니다. 곡선에 닿기만 하고 지나가는 직선이라는 뜻입니다.
할선의 기울기가 hf(a+h)−f(a) 이고 접선은 그 할선들이 다가가는 직선입니다. 그러면 접선의 기울기는 그 값들이 다가가는 값, 곧 f′(a) 입니다.
미분계수 f′(a) 는 그 점에서 그은 접선의 기울기입니다. 앞으로 "x=2 에서의 기울기"라고 하면 이 값을 뜻합니다.
접선의 방정식을 실제로 써 본다
직선 하나를 정하려면 지나는 점 하나와 기울기 하나면 충분합니다. 24번 글의 점-기울기꼴이 그것이었습니다.
y−f(a)=f′(a)(x−a)
f(x)=x2 의 x=1 에서 써 봅니다. 지나는 점은 (1,1) 이고, 기울기는 위 표에서 f′(1)=2 입니다.
y−1=2(x−1)
괄호를 풀고 정리하면
y=2x−1
맞는지 눈으로 확인합니다. x=1 을 넣으면 y=1 이라 점을 지납니다. x=1.1 에서 이 직선은 2.2−1=1.2 이고 곡선은 1.12=1.21 입니다. 0.01 차이입니다. x=1.01 에서는 직선이 1.02, 곡선이 1.0201 로 0.0001 차이입니다.
점 근처에서 곡선과 접선이 거의 겹칩니다. 곡선을 그 점 근처에서 직선으로 바꿔 봐도 된다는 뜻이고, 이것이 미분이 쓸모 있는 첫 번째 이유입니다.
기준점을 움직이면 새 함수가 된다
지금까지 a 는 고정된 수였습니다. 여기서 관점을 바꿉니다.
지난 글에서 x2 의 계산 결과가 2a+h 였고, h 를 지우면 2a 가 남았습니다. 이 2a 를 다시 봅니다 — a=1 이면 2, a=2 면 4, a=3 이면 6입니다. a 하나에 값 하나가 정해집니다.19번 글의 함수 정의 그대로입니다.
그래서 a 를 고정된 수가 아니라 변수로 두고 이름도 x 로 바꿔 적습니다.
f′(x)=limh→0hf(x+h)−f(x)
이렇게 얻은 새 함수 f′ 을 f 의 도함수라고 합니다. 그리고 f 에서 f′ 을 구하는 일을 미분한다 고 합니다.
둘의 차이를 한 번 못 박아 둡니다.
무엇인가
예
미분계수 f′(a)
수 하나
f′(1)=2
도함수 f′(x)
함수
f′(x)=2x
미분계수는 도함수에 그 점을 넣은 값입니다. f′(x)=2x 에 x=1 을 넣으면 2입니다.
표기 셋을 나란히 놓는다
같은 것을 적는 방법이 셋 있습니다. 책마다 골라 쓰므로 셋 다 읽을 줄 알아야 합니다.
표기
읽는 법
쓰는 자리
f′(x)
에프 프라임 엑스
함수 이름이 있을 때 가장 짧다
dxdy
디와이 디엑스
y=f(x) 라 두었을 때
dxdf
디에프 디엑스
무엇으로 미분하는지 밝힐 때
dxdy 는 24번 글의 ΔxΔy 에서 Δ 를 d 로 바꾼 모양입니다. Δ 가 눈에 보이는 크기의 변화량이라면 d 는 한없이 작게 줄인 뒤의 것이라는 뜻입니다. 분수처럼 생겼지만 통째로 하나의 기호이고, 지금은 위아래를 따로 떼어 쓰지 않습니다.
정의식만으로 넷을 유도한다
지난 글에서는 표를 채워 값을 찾았습니다. 여기서는 문자 x 하나로 한 번에 끝냅니다. 순서는 늘 넷입니다.
f(x+h) 를 전개한다
f(x) 를 뺀다
h 를 약분한다
h 에 0을 넣는다
f(x)=x2
(x+h)2=x2+2xh+h2 이므로 분자는 2xh+h2 입니다.
h2xh+h2=hh(2x+h)=2x+h
h 에 0을 넣으면 2x 입니다.
f′(x)=2x
f(x)=x3
(x+h)3=x3+3x2h+3xh2+h3 이므로 분자는 3x2h+3xh2+h3 입니다.
h3x2h+3xh2+h3=3x2+3xh+h2
h 에 0을 넣으면 뒤의 두 항이 사라집니다.
f′(x)=3x2
x=2 를 넣으면 3×4=12 로, 지난 글의 표가 12에 붙었던 것과 맞습니다.
f(x)=x1
분자의 두 분수를 통분합니다. 분모를 x(x+h) 로 맞추면
x+h1−x1=x(x+h)x−(x+h)=x(x+h)−h
이것을 h 로 나눕니다 — 나누기는 역수를 곱하는 것이므로
x(x+h)−h×h1=x(x+h)−1
h 에 0을 넣으면 분모가 x×x 가 됩니다.
f′(x)=−x21
x=2 에서 −41=−0.25 입니다. 표와 맞습니다.
f(x)=x
이번에는 분자에 근호가 있어 그냥은 약분이 안 됩니다. 18번 글의 유리화를 씁니다 — 분모나 분자의 근호를 없애려고 켤레식을 위아래에 곱하는 조작 입니다. 여기서는 분자를 정리하는 것이 목적이라 x+h+x 를 곱합니다.
hx+h−x×x+h+xx+h+x
분자는 (A−B)(A+B)=A2−B2 꼴이라 근호가 사라집니다.
=h(x+h+x)(x+h)−x=h(x+h+x)h
이제 h 가 약분됩니다.
=x+h+x1
h 에 0을 넣으면 분모가 2x 입니다.
f′(x)=2x1
넷을 모으면 이렇습니다.
f(x)
f′(x)
x=1 에서의 값
x2
2x
2
x3
3x2
3
x1
−x21
−1
x
2x1
21
앞의 둘을 보면 지수가 앞으로 내려오고 지수는 하나 줄었습니다. 나머지 둘도 x1=x−1, x=x1/2 로 적으면 같은 모양입니다. 이것을 규칙으로 못 박고 곱·몫·연쇄법칙까지 세우는 일은 32번 · 도함수 계산 규칙의 몫입니다. 이 글의 목적은 규칙 없이 정의만으로 끝까지 가 보는 것입니다.
f'의 부호가 오르내림을 말한다
f′(a) 가 접선의 기울기이므로, 그 부호를 읽으면 그래프가 어느 쪽으로 가는지 알 수 있습니다.
f′(a)>0 이면 접선이 오른쪽 위를 향합니다 → 그 근처에서 올라갑니다
f′(a)<0 이면 접선이 오른쪽 아래를 향합니다 → 그 근처에서 내려갑니다
f′(a)=0 이면 접선이 수평입니다
f(x)=x2 에서 확인합니다. f′(x)=2x 이므로 x<0 에서 음수, x>0 에서 양수, x=0 에서 0입니다. 그래프대로 왼쪽에서는 내려오다가 오른쪽에서 올라가고, 그 사이 한 점이 꼭짓점입니다.
f'=0이라고 반드시 극값은 아니다
꼭짓점에서 f′=0 이었으니 거꾸로도 될 것 같지만 아닙니다. f(x)=x3 을 봅니다. f′(x)=3x2 이므로 f′(0)=0 입니다. 그런데 x3 의 값을 0 근처에서 직접 적어 보면
x
−0.1
−0.01
0
0.01
0.1
x3
−0.001
−0.000001
0
0.000001
0.001
계속 올라갑니다. 0에서 잠깐 평평해질 뿐 꺾이지 않습니다. 3x2 은 x 가 무엇이든 음수가 되지 않으니 부호가 바뀔 일도 없습니다.
그래서 규칙은 이렇습니다 — f′(a)=0 은 후보일 뿐이고, 실제로 꺾였는지는 f′ 의 부호가 그 앞뒤에서 바뀌었는지를 봐야 압니다.
미분이 안 되는 자리
f′(a) 는 극한으로 정의했고, 극한은 없을 수도 있습니다. 그 극한이 있는 점을 미분가능하다고 하고, 없는 점을 미분가능하지 않다고 합니다. 없는 모양이 셋 있습니다.
첫째, 꺾인 점.f(x)=∣x∣ 의 x=0 입니다. f(0)=0 이므로 정의식의 분자는 ∣h∣ 입니다.
h>0 이면 ∣h∣=h 이므로 hh=1
h<0 이면 ∣h∣=−h 이므로 h−h=−1
왼쪽에서 다가가면 −1, 오른쪽에서 다가가면 1입니다. 좌극한과 우극한이 다르므로 극한이 없습니다. 그림에서도 그 점에서 접선을 하나로 정할 수가 없습니다.
둘째, 수직 접선. 접선이 세로로 서면 기울기가 수로 나오지 않습니다. 세로선은 가로로 간 만큼이 0이라 나눌 수가 없기 때문입니다.
셋째, 끊긴 점. 그래프가 뚝 끊겨 있으면 h 를 아무리 줄여도 분자가 0으로 줄지 않습니다. 분모만 0으로 가니 몫이 한없이 커집니다.
여기서 한 가지가 따라 나옵니다 — 미분가능하면 연속입니다. 끊긴 자리에서는 방금 본 대로 극한이 없으니, 미분이 되었다면 끊기지 않았다는 뜻입니다.
하지만 거꾸로는 아닙니다.∣x∣ 는 x=0 에서 끊기지 않았는데도 미분이 안 됩니다. 연속은 "이어져 있다"이고 미분가능은 "이어진 데다 매끄럽다"입니다. 매끄럽다는 조건이 하나 더 붙어 있습니다.
연습 문제
연습 1 — 정의식으로 도함수 구하기
앞의 네 단계를 그대로 밟습니다.
f(x)=3x2
분자는 3(x+h)2−3x2=6xh+3h2 이므로 h 로 나누면 6x+3h 입니다. h 에 0을 넣어 f′(x)=6x 입니다.
f(x)=x2+5
분자는 (x+h)2+5−(x2+5)=2xh+h2 입니다. 더한 5가 서로 지워져 f′(x)=2x 로 x2 일 때와 같습니다. 그래프를 위로 올려도 기울기는 그대로이기 때문입니다.
f(x)=2x+5
분자는 {2(x+h)+5}−(2x+5)=2h 이므로 h 로 나누면 2입니다. h 도 x 도 남지 않아 f′(x)=2 입니다. 직선은 어디서나 기울기가 같습니다.
f(x)=3x1
분자는 3(x+h)1−3x1=3x(x+h)−h 이고, 이것을 h 로 나누면 3x(x+h)−1 입니다. h 에 0을 넣어 f′(x)=−3x21 입니다.
f(2)=21, f′(2)=−221=−41 입니다. y−21=−41(x−2) 를 정리하면 y=−4x+1 입니다.
연습 3 — 부호와 예외
f(x)=x2−6x 의 도함수를 정의식으로 구하고, 부호가 바뀌는 x 와 그 좌우에서 그래프가 오르는지 내리는지
분자는 (x+h)2−6(x+h)−(x2−6x)=2xh+h2−6h 이므로 h 로 나누면 2x+h−6 이고, f′(x)=2x−6 입니다. 2x−6=0 에서 x=3 이고, x<3 이면 음수라 내려가고 x>3 이면 양수라 올라갑니다.
f(x)=∣x−2∣ 에서 정의식의 극한이 없는 x 와 그 이유
x=2 입니다. 분자가 ∣h∣ 가 되어 h>0 이면 1, h<0 이면 −1 로 갈리므로 좌극한과 우극한이 다릅니다.
f(x)=−x2+4x 의 도함수를 정의식으로 구하고, f′(x)=0 이 되는 x 와 그 자리가 가장 높은 점인지 낮은 점인지
분자는 −(x+h)2+4(x+h)+x2−4x=−2xh−h2+4h 이므로 h 로 나누면 −2x−h+4 이고, f′(x)=−2x+4 입니다. x=2 에서 0이 되고, 왼쪽에서는 양수라 올라가다 오른쪽에서 음수라 내려가므로 가장 높은 점입니다. 그때 값은 f(2)=4 입니다.
정리
f′(a)=h→0limhf(a+h)−f(a) 를 미분계수 라고 합니다. 지난 글의 표가 찾아낸 값에 기호를 붙인 것입니다.
그 값은 그 점에서 그은 접선의 기울기 이고, 접선의 방정식은 y−f(a)=f′(a)(x−a) 입니다.
기준점을 변수로 두면 점마다 기울기를 돌려주는 새 함수가 되고, 이것이 도함수f′(x) 입니다. f′(x)·dxdy·dxdf 셋은 같은 것을 적은 것입니다.
실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.
최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.
0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.