공학의 질문 대부분은 두 가지 꼴입니다. "가장 좋은 것은 무엇인가"(재료를 가장 적게 쓰는 캔, 가장 빨리 도착하는 경로)와 "대충 얼마인가"(측정 오차가 결과를 얼마나 흔드나, 이 방정식의 근은 어디쯤인가). 이 장은 5장에서 얻은 도구로 두 질문에 답합니다. 최선은 도함수가 0인 곳에 숨어 있고, 어림은 접선에서 나옵니다. 그리고 두 생각이 만나는 곳에 뉴턴 방법이 있습니다. 접선으로 근사하고, 근사의 근을 찾고, 다시 접선을 긋는 일을 반복하면 계산기가 √2를 구하는 방법이 됩니다.
닫힌 구간 방법(임계점과 끝점의 값을 비교)으로 연속 함수의 최댓값·최솟값을 구한다.
말로 된 최적화 문제를 목적 함수와 제약 조건으로 옮기고, 한 변수로 줄여 푼다(상자, 캔, 울타리).
페르마의 최소 시간 원리에서 스넬의 굴절 법칙 v1sinθ1=v2sinθ2를 유도한다.
선형 근사 L(x)=f(a)+f′(a)(x−a)를 쓰고, 오차가 2M(x−a)2 이하임을 보인다.
미분 dy=f′(x)dx로 측정 오차의 전파와 상대 오차를 어림한다.
뉴턴 방법을 손으로 몇 단계 계산하고, 2차 수렴과 실패(순환, 발산, 중근)의 원인을 설명한다.
이 수식이 없었다면빛은 가장 빠른 길을 고른다
물컵에 꽂은 빨대는 수면에서 꺾여 보입니다. 빛이 공기에서 물로 들어갈 때 방향을 바꾸기 때문입니다. 꺾이는 각도의 규칙은 10세기 페르시아의 이븐 살(Ibn Sahl)이 이미 기록했고, 1621년 스넬(Willebrord Snell)이 다시 찾았으며, 1637년 데카르트가 출판했습니다. 그러나 왜 그 규칙인지는 1662년 페르마(Pierre de Fermat)가 답했습니다. 빛은 두 점 사이를 시간이 가장 적게 걸리는 경로로 간다고 가정하고 그 시간을 최소화하자, 굴절 법칙이 그대로 나왔습니다.
"자연은 무엇인가를 최소화한다"는 이 생각은 렌즈와 광섬유 설계, 해석역학의 최소 작용 원리, 오늘날의 기계 학습까지 이어집니다. 최소화의 도구는 하나입니다. 도함수가 0인 곳을 찾는 것. 이 장에서는 해변의 인명 구조원이 물에 뛰어들 지점을 고르는 문제로 페르마의 계산을 직접 해 봅니다.
빛의 경로 후보 전부→걸리는 시간 T(x)→T′(x) = 0→스넬 법칙 → 렌즈·광섬유 설계
닫힌 구간 방법: 후보만 비교하면 된다
무한히 많은 점 중 가장 높은 곳
공정 온도 x를 0 ℃에서 4 ℃ 사이(기준 대비 편차)에서 조절할 수 있고, 수율 모델이 f(x)=x3−3x2+1이라 합시다(단위는 임의). 구간 안의 점은 무한히 많습니다. 모든 점을 시험하지 않고 가장 좋은 온도와 가장 나쁜 온도를 확정할 수 있을까요?
2장의 최대·최소 정리는 닫힌 구간의 연속 함수에 최댓값과 최솟값이 있다고 보장합니다. 5장의 페르마 정리는 그 위치를 좁혀 줍니다. 최댓값이 구간 내부에 있으면 그곳은 극댓값이고, 따라서 f′=0이거나 f′이 없는 임계점입니다. 내부에 없으면 끝점입니다. 후보는 이 둘뿐입니다.
정리 6.1 (닫힌 구간 방법)f가 [a,b]에서 연속이면 최댓값·최솟값은 다음 후보 중에서 나온다.
(a,b) 안의 임계점(f′(c)=0 또는 f′(c)가 없는 점)
끝점 a, b
후보에서의 함숫값 중 가장 큰 것이 최댓값, 가장 작은 것이 최솟값이다. 이 절차를 닫힌 구간 방법(closed interval method)이라 한다.
증명. 최대·최소 정리로 최댓값을 주는 점 c가 있다. c가 끝점이면 후보 2에 들고, 내부이면 f(c)는 극댓값이므로 f′(c)가 없거나, 있으면 페르마 정리로 0이다. 최솟값도 같다. ∎
그림 6-1. 닫힌 구간의 연속 함수. 극댓값(왼쪽 봉우리)이 최댓값이 아닐 수 있고, 최댓값이 끝점에서 나올 수 있다. 그래서 임계점만 보면 안 되고 끝점도 반드시 넣어야 한다. 후보는 유한 개라 비교가 끝난다.
해볼 것: ① 예제 6.1의 구간에서 최댓값이 끝점 b = 4에서 나오는 것을 확인하고, b를 3보다 왼쪽으로 끌어 최댓값이 x = 0의 극댓값으로 옮겨 가는 순간을 찾으세요. ② '|x² − 4|'의 x = ±2는 f′이 없는 임계점입니다. 거기서 최솟값 0이 나옵니다. ③ 'x e^(−x)'에서 a를 1보다 오른쪽으로 옮기면 내부 임계점이 사라지고 후보는 끝점 둘뿐입니다. 모델: 임계점은 f′의 부호 변화(이분법)와 미리 알려 둔 미분 불가능 점입니다.
최적화 문제 세우기: 상자, 캔, 울타리
문장을 함수로
"16 cm × 10 cm 판지의 네 귀퉁이에서 같은 크기의 정사각형을 잘라 내고 접어 뚜껑 없는 상자를 만든다. 부피가 가장 큰 상자는?" 미분은 어렵지 않습니다. 어려운 것은 이 문장을 미분할 수 있는 함수 하나로 옮기는 일입니다.
최적화 문제는 거의 언제나 같은 순서로 풉니다.
그림을 그리고 변수에 이름을 붙인다.
최대·최소로 만들 양, 즉 목적 함수(objective function)를 식으로 쓴다.
변수 사이의 관계인 제약 조건(constraint)을 써서 변수를 하나로 줄인다.
그 변수가 물리적으로 가질 수 있는 범위(정의역)를 정한다.
임계점을 찾고, 끝점과 비교하거나 1계·2계 판정으로 최댓값임을 확인한다.
원래 질문(치수, 비율)에 단위와 함께 답하고, 상식과 맞는지 본다.
정의역이 열린 구간이거나 무한하면 닫힌 구간 방법을 그대로 쓸 수 없습니다. 이때 자주 쓰는 판정이 있습니다.
정리 6.2 (유일한 임계점)f가 구간 I(열려 있거나 무한해도 된다)에서 연속이고 I 안에 임계점이 c 하나뿐이라 하자. f(c)가 극댓값이면 f(c)는 I에서의 최댓값이고, 극솟값이면 최솟값이다.
증명 아이디어. 극대인데 다른 점 d>c에서 f(d)>f(c)라면, c 오른쪽 가까이에서는 f<f(c)이므로 [c,d]에서의 최솟값이 내부의 어떤 점에서 나오고, 그곳이 또 다른 임계점이 되어 가정에 모순이다. ∎
그림 6-2. 귀퉁이에서 한 변 x인 정사각형을 잘라 내고 점선을 따라 접는다. x를 키우면 상자는 깊어지지만 바닥이 좁아진다. 이 맞바꿈(trade-off)이 최적화 문제의 본질이다. x는 0과 5(짧은 변의 절반) 사이에서만 뜻이 있다.
예제 6.2 (판지 상자) 위 문제를 풀어라.
목적 함수: V(x)=x(16−2x)(10−2x)=4x3−52x2+160x, 정의역 [0,5].
해볼 것: ① x 슬라이더를 움직이며 V′(x)의 부호가 + → 0 → −로 바뀌는 곳에서 부피가 가장 큰지 보세요. ② 정사각형 판지(L = W)에서 x* = L/6이 되는지 확인하세요. ③ 판지를 아주 길쭉하게(L = 40, W = 6) 하면 x*는 W/4 = 1.5에 가까워집니다. 긴 쪽은 거의 상관이 없어지기 때문입니다. 모델: V = x(L − 2x)(W − 2x), x* = [(L + W) − √(L² − LW + W²)]/6.
캔: 재료를 가장 적게
부피 V가 정해진 원기둥 캔의 겉넓이를 최소로 하는 모양을 찾아봅시다. 반지름 r, 높이 h이면 목적 함수는 S=2πr2+2πrh이고 제약 조건은 πr2h=V입니다. 제약에서 h=V/(πr2)를 넣으면 한 변수 함수 S(r)=2πr2+r2V, r>0이 됩니다.
예제 6.3 (500 mL 캔)
S′(r)=4πr−r22V=0에서 r3=2πV. 정의역 (0,∞)의 유일한 임계점이다.
S′′(r)=4π+r34V>0이므로 극소, 정리 6.2로 최솟값이다.
그때 h=πr2V=πr22πr3=2r. 높이 = 지름인 캔이 겉넓이가 가장 작다.
V=500 cm³이면 r=(500/2π)1/3≈4.30 cm, h≈8.60 cm, S=6πr2≈349 cm².
실제 음료 캔은 대개 지름보다 키가 큽니다. 겉넓이 말고도 손에 쥐는 느낌, 뚜껑과 바닥을 더 두꺼운 재료로 만드는 비용, 이음매 길이 같은 다른 비용이 있기 때문입니다. 뚜껑·바닥의 단위 넓이 비용이 옆면의 k배라면 같은 계산으로 h=2kr이 나옵니다. 아래 시뮬레이터의 k 슬라이더가 그것입니다.
SIMULATOR
캔의 재료비 최소화: h = 2kr
높이 h—
h / r—
비용 C(r) (옆면 cm² 환산)—
최적 r*, C*—
해볼 것: ① k = 1에서 '최적 r로'를 누르고 h/r = 2(키 = 지름)인지 확인하세요. ② k를 2로 올리면 최적 캔은 h/r = 4로 홀쭉해집니다. ③ 최솟값 근처에서 r을 10% 바꿔도 비용은 1~2%밖에 늘지 않습니다. 바닥이 평평한 최솟값의 성질로, 설계에 여유를 줍니다. 모델: C(r) = 2πk r² + 2V/r, r* = (V/(2πk))1/3.
예제 6.4 (강가의 울타리) 직선 강가에 직사각형 목초지를 만든다. 강 쪽에는 울타리가 필요 없고 울타리 재료는 600 m다. 넓이를 최대로 하라.
강과 수직인 변을 x, 평행한 변을 y라 하면 제약 2x+y=600, 목적 A=xy=x(600−2x), 정의역 [0,300].
A′(x)=600−4x=0에서 x=150. 끝점에서 A=0이므로 최댓값은 A(150)=150⋅300=45000 m².
강과 평행한 변이 수직인 변의 두 배다. 울타리 네 변이 모두 필요하면 정사각형이 답인데, 한 변이 공짜이니 그쪽으로 늘이는 것이 이득이다.
빛의 굴절: 페르마 원리와 스넬 법칙
인명 구조원은 어디서 물에 들어가야 하나
해변의 구조원이 물가에서 20 m 떨어진 모래밭에 있고, 물에 빠진 사람은 물가에서 30 m 떨어진 바다에, 물가를 따라 60 m 옆에 있습니다. 구조원은 모래에서 6 m/s로 달리고 물에서 1.5 m/s로 헤엄칩니다. 일직선으로 가면 거리는 가장 짧지만 느린 물속 구간이 깁니다. 어디서 물에 들어가야 가장 빨리 도착할까요?
그림 6-3. A에서 B로 가는 경로가 경계의 점(가로 위치 x)에서 꺾인다. 각도는 경계의 법선(세로 점선)에서 잰다. 빠른 매질에서 더 오래 가고 느린 매질에서 짧게 가도록 경로가 꺾이는데, 얼마나 꺾일지는 T′(x) = 0이 정한다.
그림 6-3처럼 A가 경계에서 a, B가 경계에서 b만큼 떨어져 있고 가로 거리가 d라 하면, 경계의 x 지점을 지나는 경로의 시간은
T(x)=v1a2+x2+v2b2+(d−x)2,0≤x≤d.
미분하면 두 항이 각각 사인이 됩니다. a2+x2x=sinθ1, b2+(d−x)2d−x=sinθ2이기 때문입니다.
이 관계를 스넬 법칙(Snell's law)이라 하고, "빛은 걸리는 시간이 정류값(대개 최소)이 되는 경로로 간다"는 가정을 페르마 원리(Fermat's principle)라 한다.
증명.T′(0)=−v2b2+d2d<0, T′(d)=v1a2+d2d>0이다. 또 dxda2+x2x=(a2+x2)3/2a2>0이고 둘째 항도 같은 꼴이라 T′′(x)>0. 따라서 T′은 증가하며 음수에서 양수로 정확히 한 번 0을 지나고, 그 점이 유일한 최솟값이다. 그 점에서 T′=0을 쓰면 위 식이다. ∎
이 증명에는 x를 구하는 공식이 없습니다. T′(x)=0은 4차 방정식이 되어 손으로 풀기 어렵습니다. 그래도 최적 경로가 만족하는 법칙은 깔끔하게 나왔고, 해는 수치로 구하면 됩니다(뉴턴 방법, 6절).
SIMULATOR
최소 시간 경로: 구조원과 빛
물가의 점을 끌어 입수 지점을 바꾸세요.
입수 지점 x, 시간 T—
sin θ₁ / v₁—
sin θ₂ / v₂—
θ₁, θ₂—
해볼 것: ① 점을 끌어 아래 T(x) 그래프의 바닥을 찾으세요. 바닥에서 sin θ₁/v₁과 sin θ₂/v₂가 같아집니다. ② v₁ = v₂로 두면 최적 경로는 직선(점선)이 됩니다. ③ '빛: 공기 → 물'은 속력을 1과 0.75(굴절률 1과 1.33)로 맞추고 최소 시간 경로로 보냅니다. 그때 sin θ₁ / sin θ₂ = 1.33이 되는지 θ₁, θ₂로 계산해 보세요. 모델: A = (0, 20), B = (60, −30) m, 경계 y = 0. 최소점은 T가 볼록함수라는 성질을 이용해 삼분 탐색으로 찾습니다.
예제 6.5 (구조원의 답) 문제의 수치(a = 20, b = 30, d = 60 m, v₁ = 6, v₂ = 1.5 m/s)로 계산하면 다음과 같다.
일직선(x = 24 m): 모래 31.2 m ÷ 6 + 물 46.9 m ÷ 1.5 ≈ 5.2 + 31.2 = 36.4 s.
물가를 따라 B 바로 앞까지 달린 뒤 수직으로 헤엄(x = 60): ≈ 10.5 + 20.0 = 30.5 s.
최적(T′ = 0을 수치로 풀면 x ≈ 52.8 m): 30.0 s. 이때 sinθ1/6=sinθ2/1.5≈0.156.
최적점은 극단적인 "물가를 따라 끝까지"와 가깝지만 같지 않습니다. 물속 구간을 살짝 비스듬히 하는 대가(물속 거리 증가)보다 모래에서 줄인 거리가 더 이득이기 때문입니다. 최솟값 근처에서는 T가 평평해 30.0 s와 30.5 s의 차이가 작다는 점도 눈여겨보세요.
선형 근사: 확대하면 곡선은 직선이다
계산기 없이 √4.1
설계 도면의 공차 계산, 진자의 작은 진폭 근사, 열팽창 공식 L=L0(1+αΔT)는 모두 복잡한 함수를 직선으로 바꿔 계산합니다. 언제 그래도 되고, 얼마나 틀릴까요?
미분 가능한 함수의 그래프는 한 점을 충분히 확대하면 접선과 구별되지 않습니다(3장). 그래서 그 점 근처에서는 함수 대신 접선을 써도 됩니다.
정의 6.4 (선형 근사)f가 a에서 미분 가능할 때
L(x)=f(a)+f′(a)(x−a)
를 a에서 f의 선형화(linearization)라 하고, x가 a 근처일 때 f(x)≈L(x)를 선형 근사(linear approximation)라 한다.
함수
기준점
선형 근사
쓰이는 곳
sinθ
0
θ
진자, 광학의 근축 근사
cosθ
0
1
작은 각의 투영
ex
0
1+x
작은 이율, 작은 감쇠
ln(1+x)
0
x
로그 수익률, 데시벨의 작은 변화
(1+x)k
0
1+kx
1+x≈1+x/2, 상대 오차 전파
근사를 썼다면 반드시 오차를 물어야 합니다. 접선에서 벗어나는 정도는 곡선이 얼마나 휘는지, 즉 f′′이 정합니다. 5장의 코시 평균값 정리를 두 번 쓰면 정확한 식이 나옵니다.
정리 6.5 (선형 근사의 오차)f′′이 a와 x 사이에서 존재하면, 그 사이의 어떤 ξ에 대해
f(x)−L(x)=2f′′(ξ)(x−a)2.
따라서 그 구간에서 ∣f′′∣≤M이면 ∣f(x)−L(x)∣≤2M(x−a)2이다.
증명.R(t)=f(t)−L(t)라 하면 R(a)=R′(a)=0, R′′=f′′이다. R과 (t−a)2에 코시 평균값 정리를 쓰면 (x−a)2R(x)=2(c−a)R′(c)인 c가 a와 x 사이에 있고, 다시 R′과 2(t−a)에 쓰면 2(c−a)R′(c)−R′(a)=2R′′(ξ)인 ξ가 a와 c 사이에 있다. ∎
두 가지를 읽어 냅시다. 첫째, 오차는 (x−a)2에 비례합니다. 거리를 10배 줄이면 오차는 100배 줄어듭니다. 둘째, 부호도 알 수 있습니다. f′′>0(위로 오목)이면 곡선이 접선 위에 있으므로 선형 근사는 과소 추정, f′′<0이면 과대 추정입니다.
오차 한계: f′′(x)=−41x−3/2이고 [4,4.1]에서 ∣f′′∣≤41⋅4−3/2=321. 따라서 ∣오차∣≤21⋅321⋅(0.1)2≈1.56×10−4.
f′′<0이므로 2.025는 과대 추정이다. 실제 4.1=2.024846⋯, 오차 1.54×10−4로 한계 안에 있고 부호도 맞다.
SIMULATOR
선형 근사 확대경과 오차의 기울기 2
f(x)와 접선 L(x)
|f − L| vs h (로그–로그)
L(x)—
x = a + h에서 f, L—
오차 f − L—
오차 / h² → f″(a)/2—
해볼 것: ① h를 10배씩 줄이며 오차가 100배씩 주는지 보세요. 오른쪽 그래프에서 오차 곡선은 기울기 2인 기준 점선(4 × |f″(a)|h²/2)과 평행합니다. ② '오차/h²'이 f″(a)/2로 다가가는지 확인하세요. √x에서는 −1/64 = −0.015625입니다. ③ 오차의 부호로 곡선이 접선 위인지 아래인지 말해 보세요. 모델: h > 0 쪽만 계산합니다. 창의 가로 폭은 ±h입니다.
미분 dy와 오차 전파
자로 잰 반지름의 0.5% 오차는 부피를 얼마나 흔드나
베어링 볼의 반지름을 10.0 mm ± 0.05 mm로 쟀습니다. 부피 V=34πr3도 오차를 가집니다. 공차가 부피, 질량, 관성에 어떻게 퍼지는지 알아야 부품 검사 기준을 정할 수 있습니다.
선형 근사를 "변화량"의 언어로 다시 쓴 것이 미분입니다.
정의 6.6 (미분)y=f(x)에서 dx를 독립 변수로 보고 dy=f′(x)dx를 y의 미분(differential)이라 한다. 실제 변화량 Δy=f(x+dx)−f(x)와 달리 dy는 접선을 따른 변화량이며, dx→0이면 Δy−dy=O(dx2)다(정리 6.5).
측정값 x에 절대 오차(absolute error)Δx가 있으면 계산값 y의 오차는 ∣dy∣=∣f′(x)∣Δx로 어림합니다. 공학에서는 크기에 대한 비율인 상대 오차(relative error)Δy/∣y∣가 더 유용합니다. 이렇게 입력의 오차가 출력으로 퍼지는 것을 오차 전파(error propagation)라 합니다.
정리 6.7 (거듭제곱의 상대 오차)y=kxn이면
ydy=nxdx.
즉 상대 오차는 지수 n배로 커진다(음의 지수면 부호만 바뀐다).
증명.dy=knxn−1dx를 y=kxn으로 나눈다. 같은 결과를 로그 미분 d(lny)=nd(lnx)로도 얻는다(4장). ∎
예제 6.7 (구의 부피와 진자로 잰 g)
r=10.0±0.05 cm: V=34π(10)3≈4189 cm³, dV=4πr2dr=4π(100)(0.05)=20π≈62.8 cm³. 상대 오차 62.8/4189=1.5%=3×0.5%. 실제 최대 변화 V(10.05)−V(10)≈63.1 cm³로 거의 같다.
교훈: 결과가 측정값의 거듭제곱에 민감하면(∣n∣이 크면) 그 측정을 가장 정밀하게 해야 한다. 진자 실험에서 시간을 한 주기가 아니라 20주기 재서 나누는 이유다.
SIMULATOR
오차 전파 계산기
계산값 y—
미분 |dy| = |f′(x)|Δx—
실제 Δy (+Δx / −Δx)—
상대 오차 |dy/y|—
해볼 것: ① '구의 부피'에서 상대 오차 0.5%가 1.5%가 되는 것을 확인하세요(예제 6.7). ② 상대 오차를 10% 이상으로 키우면 접선 띠(파랑)와 실제 범위(진분홍)가 어긋나기 시작합니다. 위아래 비대칭도 생깁니다. 선형 근사는 작은 오차에서만 믿을 만합니다. ③ '도선 저항'에서 지름 1% 오차가 저항 2% 오차가 됩니다. 모델: y = kxⁿ 꼴, x 슬라이더는 기본 측정값에 곱하는 배율입니다.
변수가 여럿이면 결과가 측정값 여러 개에 의존하면(예: g=4π2L/T2에서 L과 T가 모두 불확실) 각 변수의 기여를 편미분으로 더합니다. 최악의 경우는 절댓값의 합, 오차가 서로 독립인 무작위 오차라면 제곱합의 제곱근을 씁니다. 이것은 13장 전미분과 확률과 통계의 결합 분포에서 다룹니다.
뉴턴 방법: 접선으로 근 찾기
풀 수 없는 방정식
cosx=x, 스넬 문제의 T′(x)=0, 회로의 다이오드 방정식 I=Is(eV/VT−1)과 저항의 연립은 근의 공식이 없습니다. 2장의 이분법은 확실하지만 한 단계에 한 비트(절반)씩만 좁혀 15자리를 얻는 데 50번쯤 걸립니다. 더 빠른 방법이 있을까요?
아이디어는 이 장의 두 주제를 합친 것입니다. 근을 모르는 함수 대신 접선(선형 근사)의 근을 구합니다. 접선의 근은 공식으로 나옵니다. 그 점에서 다시 접선을 긋습니다.
그림 6-4. 뉴턴 방법. 점 (xₙ, f(xₙ))에서 그은 접선이 가로축과 만나는 곳을 다음 추정값 xₙ₊₁로 삼는다. 곡선이 근 근처에서 접선과 비슷할수록(확대하면 직선이므로) 추정이 빠르게 좋아진다.
정의 6.8 (뉴턴 방법) 초기값 x0에서 시작해
xn+1=xn−f′(xn)f(xn)
을 반복하는 방법을 뉴턴 방법(Newton's method, Newton–Raphson method)이라 한다. xn+1은 xn에서의 선형화 L(x)=f(xn)+f′(xn)(x−xn)의 근이다.
뉴턴은 1669년 무렵의 원고에서 다항식의 근을 이런 방식으로 구했고, 1690년 랩슨(Joseph Raphson)이 지금과 비슷한 반복 형태로 발표했습니다. 도함수를 쓰는 일반적인 공식으로 정리된 것은 그 뒤입니다.
예제 6.8 (√2와 cos x = x)
f(x)=x2−2이면 xn+1=xn−2xnxn2−2=21(xn+xn2). "추정값과 2/추정값의 평균"이라는 바빌로니아 방법과 같다.
x0=1: x1=1.5, x2=1.416667, x3=1.414215686, x4=1.41421356237469. 오차는 8.6×10−2, 2.5×10−3, 2.1×10−6, 1.6×10−12. 맞는 자릿수가 1, 3, 6, 12로 매번 두 배가 된다.
f(x)=cosx−x, f′(x)=−sinx−1, x0=1: x1=0.750364, x2=0.739113, x3=0.7390851334, x4=0.7390851332. 이분법으로 10자리를 얻으려면 30번 넘게 반으로 나눠야 한다.
SIMULATOR
뉴턴 방법 한 단계씩: 수렴과 실패
n = 0
가로축 위의 점 x₀을 끌어 시작점을 바꾸세요.
해볼 것: ① 'x² − 2'에서 다섯 단계 만에 오차가 10⁻¹⁵ 아래로 떨어지는 것을 표에서 보세요. ② 'x³ − 2x + 2'를 x₀ = 0에서 시작하면 0 → 1 → 0 → …으로 영원히 돕니다. x₀을 조금만 옮겨도 근 −1.769로 갑니다. ③ 'arctan x'는 |x₀| < 1.39이면 수렴하고 그보다 크면 발산합니다. ④ '(x − 1)²'은 오차가 매번 절반으로만 줍니다. ⑤ 'x³ − x'의 아래 띠에서 근 사이 경계 근처는 색이 잘게 섞입니다. 모델: 해석적 도함수, 띠는 화면의 각 x를 초기값으로 60번 반복한 결과입니다(회색: 수렴하지 않음).
뉴턴 방법은 왜 빠르고, 언제 실패하나
예제 6.8에서 오차가 10−3→10−6→10−12으로 줄었습니다. 오차가 제곱으로 줄어든다는 뜻입니다. 정리 6.5가 그 이유를 정확히 말해 줍니다.
정리 6.9 (2차 수렴)f(r)=0, f′(r)=0이고 f′′이 r 근처에서 연속이라 하자. x0이 r에 충분히 가까우면 뉴턴 방법은 r로 수렴하고, 오차 en=xn−r은
en+1=2f′(xn)f′′(ξn)en2≈2f′(r)f′′(r)en2
을 만족한다(ξn은 xn과 r 사이). 이런 수렴을 2차 수렴(quadratic convergence)이라 한다.
실무의 처방 실제 근 찾기 프로그램은 이분법의 확실함과 뉴턴 방법의 속도를 합칩니다. 근을 끼고 있는 구간을 유지하면서 뉴턴 단계를 시도하고, 그 단계가 구간 밖으로 나가면 이분법 한 단계로 대신합니다. 또 도함수를 구하기 어려우면 두 점의 할선 기울기로 대신하는 할선법을 씁니다(수렴 차수 약 1.618). 많은 수치 라이브러리의 근 찾기 함수가 이런 혼합 방식입니다.
2차 근사 맛보기: 휘어짐까지 맞추기
선형 근사는 값과 기울기만 맞춥니다. 정리 6.5의 오차 항 2f′′(x−a)2을 보면 다음 개선이 무엇인지 보입니다. 그 항을 근사에 넣으면 됩니다.
정의 6.10 (2차 근사)f가 a에서 두 번 미분 가능할 때
Q(x)=f(a)+f′(a)(x−a)+2f′′(a)(x−a)2
를 a에서의 2차 근사(quadratic approximation)라 한다. Q는 Q(a)=f(a), Q′(a)=f′(a), Q′′(a)=f′′(a)를 만족하는 유일한 2차 다항식이다.
계수 21은 (x−a)2을 두 번 미분하면 2가 나오는 것을 상쇄합니다. f′′′이 있으면 오차는 (x−a)3에 비례합니다(12장에서 증명). 예를 들어 cosx≈1−2x2는 x=0.5에서 0.875, 실제 값 0.87758로 오차가 2.6×10−3인데, 선형 근사 1의 오차 0.12보다 50배쯤 작습니다. 4.1은 Q=2.025−641(0.01)=2.02484375로 오차가 1.9×10−6입니다.
SIMULATOR
접선 vs 접하는 포물선
f, L(1차), Q(2차)
오차 vs h (로그–로그)
f(a + h)—
L, 오차—
Q, 오차—
오차 비 |f − L| / |f − Q|—
해볼 것: ① h를 줄이며 오른쪽 두 곡선의 기울기를 비교하세요. 1차 근사의 오차는 기울기 2, 2차 근사의 오차는 기울기 3입니다. ② 'cos x, a = 0'에서는 2차 근사의 오차 기울기가 4입니다. f‴(0) = 0이라 3차 항이 공짜로 맞기 때문입니다. ③ 'ln(1 + x)'에서 h를 1 가까이 키우면 Q가 오히려 크게 빗나갑니다. 근사는 '근처'에서만 약속입니다. 모델: 해석적 f′, f″. 오른쪽 그래프는 h = 10⁻³ ~ 2.
이 생각을 끝까지 밀면 n차 다항식으로 n번째 도함수까지 맞추는 12장의 테일러 다항식이 됩니다. 또 2차 근사의 최솟값을 찾아 반복하면 최적화의 뉴턴 방법 xn+1=xn−f′(xn)/f′′(xn)이 되는데, 이것은 f′에 뉴턴 근 찾기를 쓴 것과 같습니다. 다변수로 가면 f′′ 자리에 헤세 행렬이 들어갑니다(14장).
이 도구가 쓰이는 곳
"최솟값을 찾는다"와 "접선으로 근사한다"는 공학 계산의 두 기본 동작입니다. 큰 시뮬레이션 프로그램도 안을 열어 보면 이 두 동작을 수백만 번 반복합니다.
계산기와 컴퓨터의 나눗셈·제곱근 여러 프로세서와 수학 라이브러리는 1/a이나 1/a을 직접 나누지 않고, 대략적인 초기값(표에서 읽거나 비트 조작으로 얻은 값)에서 뉴턴 단계를 한두 번 돌려 정밀도를 맞춥니다. f(x)=1/x−a에 뉴턴 방법을 쓰면 xn+1=xn(2−axn)으로 곱셈과 뺄셈만으로 역수가 나오기 때문입니다. 2차 수렴 덕분에 맞는 비트가 8 → 16 → 32 → 64로 늘어 몇 단계면 충분합니다. 1990년대 3D 게임 Quake III의 유명한 '고속 역제곱근' 코드도 비트 요령으로 얻은 초기값에 뉴턴 단계 한 번을 쓴 것입니다.