Lemma
수학, 거꾸로
도입 · 속도계만 보고 거리 알아내기

속도계만 보고, 얼마나 멀리 왔는지 알 수 있을까?

창밖이 보이지 않는다. 속도계와 스톱워치만 있다. 속도는 계속 변한다 — 어느 순간엔 30, 어느 순간엔 60, 또 어느 순간엔 0. 총 이동 거리는? 이렇게 풀어보자. 속도가 “거의 일정한” 짧은 구간들로 잘게 쪼개고, 각 구간의 속도에 시간을 곱해 모두 더한다. 그게 리만 합이고, 구간이 한없이 줄어들 때 그 합이 다가가는 극한이다. 이름만 다를 뿐 같은 연산 — 쌓여가는 변화.

아래 위젯에서 N (직사각형 개수) 을 끌어보면 주황 합이 초록 정확값으로 다가간다. 속도 함수를 고르면 포물선 운동의 이야기가 반대 방향에서 복원된다 — 시간에 대한 g·t의 적분이 떨어진 거리.

도구 사양
정의

abf(x)dx∫_a^b f(x) dx: [a,b][a, b]에서 ff의 누적 총량. 리만 합의 극한 — lim(N)Σf(xi)Δx\lim_(N → ∞) Σ f(x_i) · Δx. 기하적으로는 곡선과 x축 사이의 부호 있는 넓이. 미분의 짝 연산 — 미분이 되돌리는 대상.

적용

비율에서 총량을 얻고 싶을 때마다. 속도에서 거리, 힘에서 일, 전류에서 전하, 확률 밀도에서 기댓값, 높이 함수에서 넓이. 수치적으로는 scipy.integrate부터 PDE 코드까지 모든 솔버가 더 똑똑한 규칙을 가진 리만 합.

한계

불연속 구간과 무한 구간은 이상적분이 필요하다. 닫힌 형식 원시함수가 없는 함수 (e(x2)e^(−x²), sinx/x\sin x / x) 는 수치적으로 평가해야 한다. 고차원 확장 (선·면·부피 적분, 측도론) 도 같은 직관을 쓰지만 장부를 훨씬 꼼꼼히 맞춰야 한다. 그리고 FTC는 피적분 함수가 구간에서 연속이라야 성립한다. 더 정교한 버전이 이 조건을 누그러뜨리긴 하지만, 한 줄짜리 정리만으로 모든 함수를 덮을 수는 없다.

위젯 — 리만 합
리만 합 (S_N)19.6000
정확한 적분19.6000
오차0.0000
012∫₀² g·t dt = 2g
함수
규칙
주황 직사각형이 리만 합: 각각 f(x_i) · Δx, 전체 합 19.6000. 파란 곡선은 함수, 초록 수는 정확한 적분. N을 올리면 직사각형이 빽빽해진다 — 격차가 left/right 규칙에선 ~1/N, 중점 규칙에선 ~1/N²로 닫힌다. 적분은 *새로운* 연산이 아니다 — 이 유한 합들의 극한이고, 속도 곡선 v(t) = g·t의 경우 시간 2초 동안의 이동 거리와 같다 — 포물선 운동이 가속도에서 위치로 갈 때 정확히 하는 그 진술.
흐름
1

넓이부터 — 일정한 속도의 누적

가장 단순한 경우는 비율이 일정할 때다. 60km/h60 km/h2h2 h 운전하면 60×2=120km60 × 2 = 120 km. 속도-시간 그래프로 보면 폭 × 높이의 직사각형 넓이다. 곡선이 일정하지 않을 때도 총 거리는 여전히 속도 곡선 아래 넓이. 이 단순한 경우를 비일정한 비율로 다시 풀어쓰는 것이 모듈 전체의 일이다.

비율이 선형으로 변할 때 — 가만히 있다 떨어뜨린 물체에 중력이 만드는 v(t)=gtv(t) = g · t가 그 예다 — [0,T][0, T]에서 직선 아래 넓이는 삼각형이고, 그 넓이가 (1/2)T(gT)=(gT2)/2(1/2) · T · (g · T) = (g · T²) / 2. 그게 떨어진 거리. 새로운 물리학도, 새로운 미적분도 필요 없다 — 넓이만으로 풀린다.

2

리만 합 — 유한 장부질

삼각형이 아닌 곡선은 기하만으로는 넓이가 보이지 않는다. 그러니 근사하자. 구간 [a,b][a, b]를 폭 Δx=(ba)/NΔx = (b − a)/NNN개 띠로 자른다. 각 띠 안에서 표본점 하나 — 왼쪽 끝, 오른쪽 끝, 중점 중 골라 — 를 잡고 그 한 값을 띠의 “일정한” 높이로 쓴다. 띠의 넓이를 모두 더한다. 그 결과가 이다:

SN=Σf(xi)ΔxS_N = Σ f(x_i) · Δx

위 위젯이 이걸 직접 보여준다. f(x)=x2f(x) = x²[0,1][0, 1]에서 골라 N을 올려보자. N=1N = 1에선 직사각형이 우스울 정도로 틀리고, N=8N = 8에선 알아볼 만해지고, N=80N = 80에선 정확값 1/31/3과의 격차가 보이지 않는다. 규칙을 (왼쪽/오른쪽/중점) 어떻게 잡든 같은 극한에 다가가지만 다가가는 속도는 다르다 — 왼/오른은 O(1/N)O(1/N), 중점은 O(1/N2)O(1/N²). 그래서 수치 적분기는 모두 중점 이상을 고른다.

# Riemann sum — turn 'area under the curve' into a finite computation.
# Chop [a, b] into N strips, evaluate f once per strip, multiply by Δx,
# add. Three rule choices give different errors at the same N.
def riemann(f, a, b, n, rule="midpoint"):
    dx = (b - a) / n
    s = 0.0
    for i in range(n):
        if   rule == "left":     x = a + i * dx
        elif rule == "right":    x = a + (i + 1) * dx
        else:                    x = a + (i + 0.5) * dx
        s += f(x) * dx
    return s

# ∫_0^1 x² dx — the exact answer is 1/3 ≈ 0.333.
[(rule, riemann(lambda x: x*x, 0, 1, n=20, rule=rule))
 for rule in ("left", "right", "midpoint")]
# → [('left',     0.30875),    a bit under 1/3
#    ('right',    0.35875),    a bit over 1/3
#    ('midpoint', 0.333125)]   essentially exact at N=20
# Midpoint converges as ~1/N², the others as ~1/N. That's why every
# practical numerical integrator picks midpoint or higher (Simpson, Gauss).
3

정적분 — 리만 합의 극한

은 극한에 살아남는 것:

abf(x)dx=lim(N)Σi=1Nf(xi)Δx∫_a^b f(x) dx = \lim_(N → ∞) Σ_{i=1}^N f(x_i) · Δx

하나의 수 — 누적된 총량이다. 이 표기는 리만 이전부터 쓰였다. 기호는 “sum”의 S를 길게 늘인 모양이고, dxdx는 극한이 줄여낸 ΔxΔx의 후손이다. "abf(x)dx∫_a^b f(x) dx"를 “aa에서 bb까지 f(x)f(x) 곱하기 아주 작은 dxdx들의 합”으로 읽는 건 정확한 직관이다 — 리만 이전 뉴턴과 라이프니츠가 쓰던 직관이기도 하다.

위젯의 “정확한 적분” 칸이 바로 이 값이다 — 닫힌 형식으로 계산했다 (쉬운 함수를 골랐기 때문에). 현실의 대부분의 함수에서는 극한을 수치적으로 잡을 수밖에 없고, 컴퓨터가 적분을 실제로 계산하는 방식이 어떤 형태로든 결국 리만 합이다.

4

원시함수 — 미분의 역연산

적분이 미분과 만난다. 미분 모듈에서 F(x)=x3F(x) = x³를 미분하면 F(x)=3x2F'(x) = 3x². 거꾸로 읽으면 — 3x23x²원시함수를 갖는다 — 그것이 x3. ffF(x)=f(x)F'(x) = f(x)를 만족하는 임의의 함수 FF.

원시함수는 유일하지 않다 — x3x3+5x³ + 5도 둘 다 미분하면 3x23x²가 된다. 어떤 상수 CC를 더해도 미분값이 변하지 않기 때문이다. 그래서 교과서가 F(x)+CF(x) + C라고 적는 것이다. 한 ff의 원시함수 전체는 한 매개변수 가족 — 서로 평행 이동된 함수들의 모임이다.

다항식이라면 규칙이 기계적이다. xnx^n의 미분이 nx(n1)n · x^(n−1)이니, xnx^n의 원시함수는 x(n+1)/(n+1)x^(n+1) / (n+1). 공식의 장부를 거꾸로 뒤집은 것이다. sinx\sin x의 원시함수는 cosx−\cos x, exe^x의 원시함수는 exe^x (출발한 자리 그대로). 이 짧은 목록과 연쇄법칙만으로 실무에서 만나는 적분의 대부분이 처리된다.

# Antiderivative — the function whose derivative is f.
# For polynomials, the rule is mechanical: x^n → x^(n+1)/(n+1).
# But the antiderivative isn't unique — F(x) and F(x) + 5 both differentiate
# to the same f. The +C is a fixed point of the operation.
def antideriv_poly(coeffs):
    """Coefficients of polynomial Σ c_i x^i → coeffs of antiderivative
       Σ c_i x^(i+1)/(i+1).  The constant C is dropped (you supply it)."""
    return [0.0] + [c / (i + 1) for i, c in enumerate(coeffs)]

# f(x) = 3x² + 2x + 1  →  F(x) = x³ + x² + x  (+ C)
antideriv_poly([1, 2, 3])
# → [0.0, 1.0, 1.0, 1.0]   coefficients of x⁰, x¹, x², x³
5

기본정리 — 넓이 = 미분의 역

두 이야기 — 곡선 아래 넓이미분의 역연산 — 가 알고 보면 같은 이야기다. 가 그 다리다:

abf(x)dx=F(b)F(a)∫_a^b f(x) dx = F(b) − F(a)

어떤 원시함수 FF를 잡아도 성립한다. 리만 합의 무한 극한이 함수 평가 두 번과 뺄셈 한 번으로 줄어든다. 손으로 풀든 계산기로 풀든, 대부분의 정적분은 이렇게 계산한다. 리만 극한이 적분의 정체라면, FTC는 적분의 계산법이다.

포물선 운동을 보자. 속도가 v(t)=gtv(t) = g · t면 원시함수는 (gt2)/2(g · t²) / 2. FTC에 따라 00에서 TT까지 떨어진 거리는 (gT2)/20=(gT2)/2(g · T²)/2 − 0 = (g · T²) / 2 — § 1에서 기하로 읽어냈던 그 삼각형 넓이가, 이번에는 원시함수에서 유도된다. 두 길, 한 수.

기본정리의 나머지 반쪽 — (d/dx)axf(t)dt=f(x)(d/dx) ∫_a^x f(t) dt = f(x) — 이 양방향의 연결을 단단히 죈다. 미분이 적분을 되돌리고, 적분이 미분을 누적한다. 둘은 우연히 같은 장(章)에 묶인 별개의 연산이 아니라, 덧셈과 뺄셈이 서로의 역인 것과 똑같은 의미에서 이다.

# Fundamental Theorem of Calculus, Part 2:
#   ∫_a^b f(x) dx = F(b) − F(a)
# for any antiderivative F of f. The infinite limit of Riemann sums
# becomes two function evaluations and a subtraction.
def evaluate_poly(coeffs, x):
    return sum(c * x**i for i, c in enumerate(coeffs))

def integral_via_ftc(coeffs, a, b):
    F = antideriv_poly(coeffs)
    return evaluate_poly(F, b) - evaluate_poly(F, a)

# ∫_0^2 (3t² + 2t + 1) dt — by FTC.
integral_via_ftc([1, 2, 3], 0, 2)
# → 14.0      F(2) − F(0) = (8 + 4 + 2) − 0 = 14
#
# Sanity check via Riemann at N=10000 with the lambda form:
def f(t): return 3*t*t + 2*t + 1
riemann(f, 0, 2, n=10000, rule="midpoint")
# → 13.99999...   matches FTC to four decimals
#
# The Riemann sum 'is what the integral is.' FTC says you almost never
# have to take the limit — pick an antiderivative and subtract.
6

이게 어디에 나타나나 — 같은 누적, 두 필러

적분은 시간에 걸친 변화를 더한다. 물리에서는 그 변화가 거리가 되고, 금융에서는 현재가치가 된다. 리만 합 그림은 양쪽에서 똑같다 — 더해지는 변화율이 무엇이냐만 다를 뿐.

물리 : 속도가 거리로 쌓이고, 힘×속도가 에너지로 쌓인다.
금융 : 연속 지급 비율이 — 할인된 채 — 현재가치로 쌓인다.

포물선 운동 — 떨어진 거리는 0tv(s)ds=12gt2\int_0^t v(s)\,ds = \tfrac{1}{2} g t^2. 속도 v(s)=gsv(s) = g \cdot s가 변화율이고, 그 아래 넓이가 거리다. 위치를 두 번 미분하면 가속도가 나오고, 가속도를 두 번 적분하면 같은 사다리를 거꾸로 올라 위치가 다시 나온다.

종단속도 — 속도가 더 이상 선형이 아니라 점근선으로 휜다. 그래도 떨어진 거리는 여전히 0tv(s)ds\int_0^t v(s)\,ds — 곡선 아래 넓이, 곡선 모양만 바뀐 것. 같은 누적, 더 어려운 모양.

감쇠 진동자 — 사인 구동에서 평균 일률은 Fx˙\langle F \cdot \dot{x} \rangle, 한 주기에 걸친 적분이다. 피크 — 공명 — 은 정확히 이 적분이 가장 클 때다. 공명에서 벗어나면 더하는 기여와 빼는 기여가 적분 안에서 상쇄된다.

현재가치 — 연속 현금흐름 비율 c(t)c(t)의 현재가치는 PV=0Tc(t)ertdtPV = \int_0^T c(t) e^{-rt}\,dt. 할인계수 erte^{-rt}가 각 미래 시점을 줄인 다음에야 적분이 합산한다. 시간에 걸친 돈은 구조적으로 시간에 걸친 속도와 같다 — 변화율, 누적된 것.

이름은 달라도 같은 일이다 — 물리에서는 거리, 금융에서는 현재가치. 둘 다 변화율 곡선 아래 넓이이고, 어떤 변화율인지는 응용이 정한다.

미분은 양이 얼마나 빨리 변하는지 묻고, 적분은 그 변화가 얼마나 쌓였는지 묻는다. 리만 합이 적분의 정체이고, 원시함수가 그 계산법이다. 기본정리는 두 그림이 한 그림임을 — 적분이 곧 미분의 역임을 — 말한다.

exercises · 손으로 풀기
1일정 속도 손계산계산기 없이

차가 60km/h60 km/h로 2시간 일정하게 운전. 총 거리를 두 길로 계산하라 — (a) 속도-시간 그래프의 직사각형 넓이로, (b) 일정 함수 v(t)=60v(t) = 60의 원시함수를 구하고 FTC를 적용해.

2리만 합 손계산계산기 없이

f(x)=x2f(x) = x²[0,1][0, 1]에서 N=4N = 4개 직사각형의 중점 리만 합으로 계산. (중점: 0.125,0.375,0.625,0.8750.125, 0.375, 0.625, 0.875; Δx=0.25Δx = 0.25.) 정확값 1/30.33331/3 ≈ 0.3333과 비교.

3원시함수로 풀기

FTC로 02(3t2+2t+1)dt∫_0^2 (3t² + 2t + 1) dt를 계산. 위젯에서 N=100N = 100 중점으로도 시도해 결과가 일치하는지 확인.

4속도에서 낙하 거리

공이 정지에서 떨어진다. 중력이 일정 가속도 g=9.8m/s2g = 9.8 m/s²를 주니, 시간 tt 후 속도는 v(t)=gtv(t) = g·t. t=3st = 3 s까지 얼마나 떨어졌나?

용어집 · 이 페이지에서 쓰임 · 4
definite integral·정적분
함수가 한 구간에서 누적된 총량. 표기: `∫_a^b f(x) dx`. 기하적으로는 `f`의 그래프와 x축 사이의 _부호 있는 넓이_, `a`에서 `b`까지 (위는 양수, 아래는 음수). 연산적으로는 직사각형 폭이 0으로 줄어들 때 리만 합의 극한. 물리적으로: `f(t)`가 속도면 총 변위, `f(x)`가 힘이면 총 일, `f(t)`가 전류면 총 전하. 경계가 중요하다 — 정적분은 *하나의 수*지 함수가 아니다. 한쪽 경계를 변수로 두고 그 결과를 그 경계의 함수로 보면 미분이 다시 원래 함수를 돌려준다 (미적분학의 기본정리).
Riemann sum·리만 합
정적분의 유한 근사. 구간 `[a, b]`를 `N`개 띠로 자르고, `f`를 띠마다 한 번씩 평가한 뒤 (왼쪽 끝, 오른쪽 끝, 또는 중점 — 관습마다 다르고 오차도 다르다) 각 값에 띠의 폭 `Δx`를 곱하고 모두 더한다. 식: `S_N = Σ f(x_i) · Δx`. `N → ∞`, `Δx → 0`이면 어떤 합리적 관습이든 같은 수로 수렴한다 — 정적분이다. 리만 합은 극한을 취하기 전 적분이 _실제로 무엇인지_; 미적분이 적분에 하는 모든 일 (부분적분, 치환, 변수 변환) 도 결국 컴퓨터에서는 유한 합으로 돌아온다.
antiderivative·원시함수
미분이 주어진 함수가 되는 함수. `F'(x) = f(x)`이면 `F`는 `f`의 _어떤_ 원시함수 — 무한히 많고, 모두 상수만큼 차이 난다 — `F(x) + C`도 임의의 상수 `C`에 대해 원시함수다. 원시함수는 미분이 _되돌리는_ 대상; 미적분학의 기본정리에 따르면 정적분이 _계산하는_ 대상이기도 하다 — `∫_a^b f(x) dx = F(b) − F(a)`. 상수 `C`는 적분이 `F`의 두 값을 빼면서 사라진다. 교과서에서는 _부정적분_ (표기 `∫ f(x) dx`) 이라 부르기도 하는데, "원시함수"는 *함수 자체*를 더 정확히 가리키고, "부정적분"은 *연산*을 강조한다.
⚠ 학교에서는 *부정적분*이라고도 부르지만 (그건 연산을 강조하는 이름), 함수 자체를 가리킬 때는 *원시함수*가 더 정확하다.
fundamental theorem of calculus·미적분학의 기본정리
적분과 미분을 이어주는 다리. 두 부분, 한 진술. _제1부_: `F(x) = ∫_a^x f(t) dt`로 정의 (한쪽 경계를 변수로 두는 누적 적분). 그러면 `F'(x) = f(x)` — 미분이 적분을 되돌린다. 무엇을 누적하든, `x`에서의 누적 속도는 그저 `f(x)`다. _제2부_: `F`가 `f`의 _어떤_ 원시함수든, `∫_a^b f(x) dx = F(b) − F(a)`. 정적분은 원시함수의 두 값을 빼서 계산한다 — 무한합 필요 없이 함수 평가 두 번. 실제로 계산하는 정적분 대부분이 리만 극한이 아니라 원시함수를 통해 평가되는 이유. 기본정리는 _곡선 아래 넓이_ 그림과 _미분의 역연산_ 그림을 _같은_ 그림으로 만든다. 어느 쪽이 "적분"인지는 관점 선택의 문제 — 둘 다 옳다.