누적 넓이 함수를 미분하면 원래 함수가 나옵니다. 이 한 줄로 리만합을 대신하고, 연쇄법칙과 곱의 규칙을 거꾸로 돌려 치환적분과 부분적분을 만듭니다.
PALDYN Team//30 MIN READ
34MATH
초급
적분 · 부분적분
지난 글에서 ∫01x2dx=31 하나를 구하는 데 시그마 공식과 극한이 필요했습니다. x 는 그 공식조차 없어 표를 채우다 말았습니다.
이 글은 그 계산을 한 줄에 끝내는 도구를 만듭니다. 도구는 이미 손에 있습니다 — 미분입니다.
누적 넓이 함수
오른쪽 끝만 움직이기
넓이를 구간마다 따로 보지 말고, 왼쪽 끝을 고정하고 오른쪽 끝만 움직여 봅니다.
A(x)=∫axf(t)dt
a 부터 x 까지의 넓이입니다. x 를 오른쪽으로 밀면 넓이가 늘어나므로 A 는 x 의 함수 입니다. 이것을 누적 넓이 함수 라고 합니다.
안쪽 글자가 x 가 아니라 t 인 것은 자리가 겹치지 않게 하려는 것뿐입니다. 위끝의 x 는 어디까지 더할지를 정하는 값이고, 안쪽 글자는 더해 나가는 동안 움직이는 값이라 둘을 갈라 적습니다. 지난 글에서 본 더미 변수가 여기 그대로 쓰였습니다.
왼쪽 끝을 바꾸면
a 를 다른 값 c 로 바꾸면 다른 함수가 됩니다. 얼마나 다를까요. 구간을 쪼개는 규칙을 쓰면 바로 나옵니다.
∫cxf=∫caf+∫axf
오른쪽 첫 항은 x 와 상관없는 수 하나입니다. c 와 a 가 둘 다 고정된 값이니까요. 그러니 왼쪽 끝을 옮겨 만든 함수는 원래 함수에 상수 하나를 더한 것입니다.
Ac(x)=Aa(x)+(상수)
그래프로 보면 모양은 그대로고 통째로 위나 아래로 평행이동한 것입니다. 이 사실은 조금 뒤 적분상수 이야기에서 다시 나옵니다 — 왼쪽 끝을 어디로 잡든 답이 달라지지 않는 이유가 여기 있습니다.
f의 부호와 A의 증감
A 가 어떻게 생겼는지는 f 만 보고도 그릴 수 있습니다.
f(x)=x−1 을 놓고 a=0 으로 잡아 봅니다.
x 가 0에서 1까지 갈 동안 f 는 음수입니다. 축 아래의 넓이는 음수로 세므로 A 는 줄어듭니다.
x 가 1을 넘으면 f 가 양수가 되어 A 는 늘어납니다.
f 가 0인 x=1 에서 A 는 줄다가 늘기 시작하므로 가장 낮은 자리를 지납니다.
f 의 높이가 A 의 기울기 노릇을 하고 있습니다. 높이가 음수면 내려가고, 0이면 잠깐 평평하고, 양수면 올라갑니다. 이 관찰이 다음 절에서 증명할 내용의 전부이고, 여기서는 그림으로 먼저 봐 둔 것입니다.
기본정리의 유도
얇은 띠 하나
A 도 함수이므로 미분할 수 있습니다. 정의식을 씁니다.
hA(x+h)−A(x)
분자는 x 까지의 넓이와 x+h 까지의 넓이의 차이이므로, 그 사이의 얇은 띠 하나의 넓이입니다.
h 가 작으면 그 띠는 거의 직사각형입니다. 폭이 h 이고 높이가 f(x) 이므로
A(x+h)−A(x)≈f(x)⋅h
양변을 h 로 나눕니다.
hA(x+h)−A(x)≈f(x)
최소와 최대로 조이기
"거의"와 "≈"로 끝내면 찜찜합니다. 근사를 부등식으로 바꾸면 그 자리가 메워집니다.
구간 [x,x+h] 안에서 f 의 가장 작은 값을 m, 가장 큰 값을 M 이라고 합시다. 띠는 높이 m 인 직사각형보다는 넓고 높이 M 인 직사각형보다는 좁습니다.
mh≤A(x+h)−A(x)≤Mh
양변을 h 로 나눕니다.
m≤hA(x+h)−A(x)≤M
h 를 0으로 보내면 구간이 점 x 로 오그라듭니다. f 가 끊긴 데 없이 이어져 있다면 그 구간의 최솟값과 최댓값이 둘 다 f(x) 로 갑니다. 가운데 것은 양쪽에 끼여 갈 곳이 하나뿐입니다.
A′(x)=f(x)
넓이를 쌓아 온 함수를 미분하면 원래 함수가 나옵니다. 이것이 미적분의 기본정리 입니다. 유도 중에 딱 한 번 쓴 조건이 f 가 이어져 있다는 것이었고, 끊긴 자리가 있으면 그 점에서는 이 결론이 보장되지 않습니다.
이 결론이 놀라운 이유는 두 계산이 서로 아무 상관 없어 보였기 때문입니다. 넓이를 재는 일은 잘게 쪼개 더하는 일이었고, 미분은 두 점을 가까이 붙여 기울기를 재는 일이라 빼고 나누는 일이었습니다. 지난 글에서 31 하나를 얻는 데 시그마 공식과 극한이 필요했던 것도 그 둘이 별개의 작업이었기 때문입니다. 그런데 방금 본 것은 한쪽을 하면 다른 쪽이 되돌려진다는 것이고, 그래서 어려운 쪽(더하기)을 쉬운 쪽(거꾸로 미분하기)으로 갈아탈 수 있게 됩니다. 이 글 나머지 전부가 그 갈아타기입니다.
위끝이 함수일 때
위끝이 x 가 아니라 x2 이면 어떻게 될까요.
G(x)=∫ax2f(t)dt
G 는 A 에 x2 을 넣은 것, 곧 G(x)=A(x2) 입니다. 겉함수 A 와 속함수 x2 이 겹친 모양이므로 연쇄법칙이 그대로 붙습니다.
G′(x)=A′(x2)⋅2x=f(x2)⋅2x
위끝에 들어간 것의 도함수가 하나 곱해집니다. 위끝이 그냥 x 일 때는 그 도함수가 1이라 안 보였을 뿐입니다.
F(b)−F(a)로 넓이 내기
정리가 둘이다
A′=f 라는 말은 거꾸로 읽으면 미분해서 f 가 되는 함수를 찾으면 그것이 넓이를 재 준다 는 뜻입니다.
미분해서 f 가 되는 함수를 F 라고 부릅니다. 그러면
∫abf(x)dx=F(b)−F(a)
여기서 기본정리가 사실은 둘이라는 것이 드러납니다. 말이 비슷해 헷갈리므로 갈라 둡니다.
하는 말
쓰는 자리
첫째
넓이를 쌓은 함수를 미분하면 f
적분과 미분이 서로를 되돌린다는 것
둘째
F 를 찾으면 F(b)−F(a) 가 넓이
실제로 값을 구할 때
첫째가 있어서 둘째가 성립합니다. 그리고 손으로 계산할 때 쓰는 것은 거의 언제나 둘째입니다.
F(b)−F(a) 는 자주 쓰는 모양이라 표기가 따로 있습니다.
[F(x)]ab=F(b)−F(a)
지난 글의 답을 한 줄에 다시 얻기
∫01x2dx 를 이걸로 풉니다. 미분해서 x2 이 되는 함수 를 찾습니다. 32번 글의 xn→nxn−1 을 거꾸로 읽으면 지수를 하나 올리고 그 수로 나누면 됩니다.
F(x)=3x3⟹F′(x)=33x2=x2
이제 끝점을 넣고 뺍니다.
∫01x2dx=[3x3]01=31−0=31
지난 글이 시그마 공식과 극한으로 얻은 답을 한 줄에 얻었습니다. 두 방법이 같은 답을 줍니다.
음수로 나오는 정적분도 그대로 확인됩니다. 지난 글에서 ∫02(x−1)dx=0 이었습니다.
[2x2−x]02=(2−2)−0=0
그림으로 얻은 답과 같습니다. 축 아래 절반이 음수로 세어지는 규약이 이 뺄셈 안에 이미 들어 있습니다.
아무 F나 골라도 같다
F 를 3x3 말고 3x3+5 로 잡으면 어떻게 될까요.
[3x3+5]01=(31+5)−(0+5)=31
같습니다. 더해 준 5가 위끝에서도 아래끝에서도 똑같이 나타나 뺄셈에서 지워지기 때문입니다. 미분해서 f 가 되기만 하면 어느 것을 골라도 답이 같습니다. 앞에서 본 "왼쪽 끝을 옮기면 상수만큼 평행이동한다"가 바로 이 자리에서 값을 안 바꾸는 이유입니다.
부정적분과 적분상수
상수만큼 어긋난 무리
미분해서 x2 이 되는 함수가 3x3 하나뿐일까요. 3x3+5 도 미분하면 x2 입니다. 상수는 미분하면 0이 되어 사라지기 때문입니다.
그래서 미분해서 f 가 되는 함수는 하나가 아니라 상수만큼 어긋난 무리 전체 입니다. 이 무리를 부정적분 이라고 하고 끝을 적지 않은 ∫ 로 씁니다.
∫x2dx=3x3+C
C 를 적분상수 라고 합니다. "얼마인지 모르는 상수 하나"라는 뜻입니다. 정적분에서는 이 C 가 걱정되지 않습니다.F(b)−F(a) 에서 (F(b)+C)−(F(a)+C) 가 되어 서로 지워지기 때문에, 정적분을 계산할 때는 C 를 아예 적지 않습니다.
조건 하나가 C를 정한다
C 가 영영 모르는 값인 것은 아닙니다. 지나는 점 하나를 알려 주면 정해집니다.
미분하면 x2 이 되고 F(0)=2 인 함수를 찾아봅니다. 무리 전체가 F(x)=3x3+C 이므로 x=0 을 넣으면
F(0)=0+C=2⟹C=2
F(x)=3x3+2 하나로 확정되었습니다. 무리에서 한 줄기를 골라내는 데 조건 하나면 충분합니다. 기울기만 알고 있던 그래프를 한 점에 못 박은 셈입니다.
함수 무리와 수 하나
기호가 닮아서 헷갈리지만 부정적분과 정적분은 종류가 다릅니다.
모양
결과
부정적분
∫f(x)dx
함수들의 무리 (C 가 붙는다)
정적분
∫abf(x)dx
수 하나
끝이 붙었느냐 안 붙었느냐가 전부입니다. 답에 x 가 남으면 부정적분이고, 수 하나가 나오면 정적분입니다. 그래서 정적분의 답에 +C 를 적어 두거나 부정적분의 답에서 C 를 빠뜨리는 것이 둘 다 틀린 답입니다 — 앞의 것은 수 하나여야 할 자리에 모르는 값이 섞인 것이고, 뒤의 것은 무리 전체를 적어야 할 자리에 한 줄기만 적은 것입니다.
부정적분에도 상수배와 합 규칙이 그대로 통합니다.
∫cf(x)dx=c∫f(x)dx∫(f+g)dx=∫fdx+∫gdx
그래서 표에 있는 것 몇 개를 더하고 상수배 한 식은 표만으로 끝납니다. ∫(3x2+2x)dx 는 x3+x2+C 입니다. 표가 다섯 줄뿐이어도 다룰 수 있는 식은 훨씬 넓습니다.
기본 적분 표
도함수 표를 거꾸로
32번 글의 도함수 표를 오른쪽에서 왼쪽으로 읽으면 그대로 적분 표가 됩니다.
f(x)
∫f(x)dx
xn (n=−1)
n+1xn+1+C
x1
ln∣x∣+C
ex
ex+C
sinx
−cosx+C
cosx
sinx+C
읽을 때 걸리는 자리가 셋 있습니다.
n=−1 만 빠져 있습니다. 지수를 하나 올리면 0이 되어 0으로 나누게 되기 때문입니다. 그 자리를 ln 이 대신 맡습니다.
ln 에 절댓값이 붙습니다.ln 은 음수를 못 받는데 x1 은 x 가 음수여도 값이 있기 때문입니다.
sin 쪽에 마이너스가 나옵니다.cos 을 미분하면 −sin 이었으니 거꾸로 오면서 부호가 따라옵니다.
∫0πsinxdx 로 써 봅니다.
[−cosx]0π=−cosπ−(−cos0)=−(−1)+1=2
표의 둘을 곱한 것은 표에 없다
표에 x 가 있고 ex 도 있습니다. 그러면 xex 도 표에 있을까요. 없습니다.
미분 쪽에는 곱의 규칙이 있어서 (fg)′=f′g+fg′ 로 언제나 풀립니다. 적분에는 그런 규칙이 없습니다.∫fg 를 ∫f 와 ∫g 로 만들어 주는 공식이 아예 존재하지 않습니다. ∫xexdx 가 2x2⋅ex 일 것 같지만 미분해 보면 전혀 다른 것이 나옵니다.
곱을 다루려면 따로 도구가 필요하고, 그것이 이 글 뒤쪽의 부분적분입니다.
표를 그대로 쓰면 안 되는 자리
두 가지 경계를 못 박아 둡니다.
하나 — 초등함수로 아예 안 되는 적분이 있습니다. 미분은 규칙을 따라가면 언제나 끝나지만 적분은 그렇지 않습니다. e−x2 이 대표적입니다. 이 함수의 부정적분은 우리가 아는 함수들(다항식·지수·로그·삼각함수)을 유한 번 조합해서는 적을 수 없습니다. 값이 없는 것이 아니라 적을 이름이 없는 것이라, 이럴 때는 지난 글의 리만합처럼 수치로 잽니다.
둘 — 구간 안에 정의되지 않는 자리가 있으면 표를 그대로 쓰면 안 됩니다.
∫−11xdx
표를 그대로 써서 [ln∣x∣]−11=0−0=0 이라고 적으면 틀립니다. x1 은 x=0 에서 값이 없고, 구간 한가운데에 그 구멍이 있습니다. F(b)−F(a) 가 성립하려면 F 가 구간 전체에서 이어져 있어야 하는데 그 조건이 깨졌습니다. 끝점만 보지 말고 구간 안쪽도 봐야 합니다.
이 둘을 알아 두는 값어치는 헛수고를 피하는 데 있습니다. 앞의 것은 아무리 오래 붙잡아도 답이 안 나오는 적분이 있다는 말이고, 뒤의 것은 답이 나왔는데 그 답이 틀린 경우가 있다는 말입니다. 적분을 시작하기 전에 피적분함수가 구간 전체에서 값을 갖는지 한 번 보는 습관이 뒤의 것을 막아 줍니다.
치환적분
연쇄법칙을 거꾸로
표에 없는 모양은 규칙을 거꾸로 돌려 만듭니다. 먼저 연쇄법칙입니다.
∫2xex2dx
표에 없습니다. 그런데 이 식을 미분 쪽에서 보면 낯익습니다 — ex2 을 미분하면 겉이 ex2, 속 x2 의 도함수가 2x 라서 정확히 이 모양이 나옵니다.
속을 u 로 두고 통째로 바꿔 쓰는 방법을 치환적분이라고 합니다.
u=x2 으로 둡니다. 그러면 dxdu=2x 이므로 du=2xdx 입니다.
식에서 2xdx 자리에 du 를, x2 자리에 u 를 넣습니다.
∫2xex2dx=∫eudu=eu+C
u 를 도로 x2 으로 돌립니다.
=ex2+C
맞는지 미분해 봅니다. ex2 을 미분하면 ex2⋅2x 입니다. 적분은 미분해서 확인할 수 있습니다 — 이 점검을 매번 하는 것이 좋습니다.
무엇을 u 로 잡을지의 기준은 하나입니다 — 식 안에 그것의 도함수가 곱해져 있는 것. 위에서는 2x 가 x2 의 도함수라서 x2 이 u 였습니다.
자주 나오는 두 꼴
치환이 상수 하나로 끝나는 가장 짧은 경우가 속이 일차식일 때입니다.
∫e3xdx
u=3x 로 두면 du=3dx 이므로 dx=3du 입니다.
∫e3xdx=31∫eudu=31e3x+C
속이 ax+b 꼴이면 언제나 이렇게 a1 하나가 앞에 붙는 것으로 끝납니다. ∫cos(5x)dx=51sin(5x)+C 인 식입니다.
또 하나 자주 나오는 것은 분자가 분모의 도함수인 꼴입니다.
∫x2+12xdx
u=x2+1 로 두면 du=2xdx 라 분자가 통째로 du 가 됩니다.
∫udu=ln∣u∣+C=ln(x2+1)+C
분모가 늘 양수라 절댓값을 벗겼습니다. 분자가 분모의 도함수이면 답은 늘 ln 입니다 — 이 모양은 눈에 익혀 두면 치환을 세우지 않고도 바로 적을 수 있습니다.
정적분은 끝도 바꾼다
정적분에 치환을 쓸 때 빠뜨리기 쉬운 것이 있습니다. 글자를 바꿨으면 아래끝과 위끝도 그 글자의 값으로 바꿔야 합니다.
∫012xex2dx
u=x2 이므로 x=0 일 때 u=0 이고 x=1 일 때 u=1 입니다. 여기서는 마침 둘 다 그대로입니다.
∫01eudu=[eu]01=e−1
끝이 바뀌는 예를 하나 더 봅니다. ∫022xex2dx 라면 x=2 에서 u=4 이므로 위끝이 4가 됩니다.
∫04eudu=e4−1
끝을 안 바꾸고 [eu]02 이라고 적으면 틀립니다. 끝을 바꾸기 싫으면 방법이 하나 있습니다 — 부정적분을 먼저 끝내 ex2 까지 돌려놓고, 그다음에 원래 끝 0과 2를 넣는 것입니다. 어느 쪽이든 되지만 섞으면 안 됩니다.
부분적분
곱의 규칙을 거꾸로
이번에는 곱의 규칙을 거꾸로 돌립니다.
(fg)′=f′g+fg′
양변을 적분합니다. 왼쪽은 미분한 것을 도로 적분하는 것이라 fg 로 돌아옵니다.
fg=∫f′gdx+∫fg′dx
∫fg′dx 에 대해 풀면
∫fg′dx=fg−∫f′gdx
이것을 부분적분이라고 합니다. 흔히 f 를 u, g′dx 를 dv 로 적어 이렇게 씁니다.
∫udv=uv−∫vdu
하는 일은 적분을 없애는 것이 아니라 더 쉬운 적분으로 바꿔 넘기는 것입니다. 오른쪽에 여전히 적분이 남아 있고, 그것이 원래보다 쉬워야 이득입니다.
무엇을 u로 잡을까
u 는 미분하면 간단해지는 쪽 으로 잡습니다. u 쪽은 나중에 du 로 미분되어 오른쪽 적분에 들어가기 때문입니다.
lnx 는 미분하면 x1 로 로그가 사라집니다. 있으면 무조건 이것이 u 입니다.
다항식은 미분하면 차수가 하나 줄어듭니다. ln 이 없으면 이것이 u 입니다.
ex 과 sinx 는 미분해도 그대로라 줄어들지 않습니다. 이쪽이 dv 입니다.
셋을 손으로 푼다
∫xexdx.ln 이 없으니 다항식 x 가 u 이고 exdx 가 dv 입니다. 그러면 du=dx 이고 v=ex 입니다.
∫xexdx=xex−∫exdx=xex−ex+C=(x−1)ex+C
미분해 확인합니다 — ex+(x−1)ex=xex 로 맞습니다.
∫xsinxdx.u=x, dv=sinxdx 이므로 du=dx, v=−cosx 입니다.
∫xsinxdx=−xcosx−∫(−cosx)dx=−xcosx+sinx+C
미분해 확인합니다 — −cosx+xsinx+cosx=xsinx 로 맞습니다.
∫lnxdx. 곱이 아닌데도 부분적분이 통하는 자리입니다. lnx 가 있으니 u=lnx 이고, 남는 dx 가 통째로 dv 입니다. 그러면 du=x1dx 이고 v=x 입니다.
∫lnxdx=xlnx−∫x⋅x1dx=xlnx−∫1dx=xlnx−x+C
미분해 확인합니다 — lnx+x⋅x1−1=lnx 로 맞습니다.
u 를 반대로 잡았다면 오른쪽에 남는 적분이 원래보다 어려워집니다. ∫xexdx 에서 u=ex 으로 잡으면 오른쪽에 ∫2x2exdx 가 남아 차수가 오히려 올라갑니다. 그렇게 되면 두 자리를 맞바꿔 다시 합니다.
한 번으로 안 끝나는 것들
한 번 적용해서 남은 적분이 아직 어려우면 한 번 더 적용합니다.
∫x2exdx
u=x2, dv=exdx 로 두면
∫x2exdx=x2ex−2∫xexdx
오른쪽에 남은 것이 바로 위에서 푼 ∫xexdx=(x−1)ex 입니다.
=x2ex−2(x−1)ex+C=(x2−2x+2)ex+C
다항식의 차수가 한 번에 하나씩 내려가므로 xn 이면 n 번 하면 끝납니다.
두 번 해도 안 끝나고 원래 적분이 오른쪽에 다시 나오는 경우도 있습니다.
I=∫exsinxdx
u=ex, dv=sinxdx 로 두면 I=−excosx+∫excosxdx 이고, 남은 것에 한 번 더 하면 ∫excosxdx=exsinx−I 입니다. 합치면
I=−excosx+exsinx−I
I 가 양쪽에 있으니 방정식처럼 이항해서 풉니다.
2I=ex(sinx−cosx)⟹I=2ex(sinx−cosx)+C
마지막으로 정적분에 쓸 때의 표기입니다. uv 자리에도 끝점을 넣습니다.
∫abudv=[uv]ab−∫abvdu
∫01xexdx=[xex]01−∫01exdx=e−(e−1)=1
연습 문제
연습 1 — 정적분 여덟 문제
미분해서 그 함수가 되는 것을 찾고 끝점을 넣어 뺍니다.
∫02x3dx
[4x4]02=416−0=4 입니다.
∫13(2x+1)dx
[x2+x]13=(9+3)−(1+1)=10 입니다.
∫01exdx
[ex]01=e−1≈1.71828 입니다.
∫1ex1dx
[lnx]1e=1−0=1 입니다. lne=1 이고 ln1=0 입니다.
∫0π/2cosxdx
[sinx]0π/2=1−0=1 입니다.
∫14xdx
x1/2 이므로 지수를 올려 3/2x3/2=32x3/2 입니다. [32x3/2]14=316−32=314 입니다.
∫−11x3dx
[4x4]−11=41−41=0 입니다. 축 위와 아래의 넓이가 같고 부호가 반대라 지워집니다.
실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.
최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.
0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.