Chapter 05

다항식 보간

측정값이나 표에 적힌 값은 띄엄띄엄 있지만, 우리는 그 사이의 값이 필요합니다. 점들을 지나는 다항식을 하나 정하면 그 사이를 계산할 수 있고, 미분하고 적분할 수도 있습니다. 이 장은 그 다항식이 언제나 하나뿐이라는 사실에서 출발해, 같은 다항식을 어떤 형식으로 계산해야 하는지(반데르몽드·라그랑주·뉴턴·무게중심), 그 다항식이 원래 함수와 얼마나 다른지(보간 오차 공식), 그리고 점을 늘렸는데 오히려 틀려지는 룽게 현상과 그 처방인 체비쇼프 노드까지 다룹니다. 수치적분(10장), 다단계 ODE 해법(11장), 할선법(3장)이 모두 이 장의 보간 다항식 위에 서 있습니다.

이 수식이 없었다면수표와 인공위성 궤도력

계산기가 없던 시대의 엔지니어와 천문학자는 로그표와 삼각함수표를 들고 다녔습니다. 표에는 x=2.71x = 2.71과 2.722.72의 값만 있는데 필요한 것은 log⁡102.718\log_{10} 2.718입니다. 두 값을 잇는 직선(1차 보간)으로 읽으면 다섯 자리 표에서 소수 여섯째 자리까지 맞는다는 것을 이 장의 오차 공식이 보장합니다. 표 한 줄 한 줄이 보간을 전제로 만들어진 셈입니다.

오늘날에도 같은 생각이 쓰입니다. 미국 제트추진연구소(JPL)가 배포하는 행성 궤도력은 시간 구간마다 체비쇼프 다항식의 계수를 저장하고, 사용자는 그 다항식을 계산해 임의 시각의 행성 위치를 얻습니다. 몇 천 개의 계수로 수십 년치 궤도를 담을 수 있는 것은, 잘 고른 노드에서의 다항식 근사가 매끄러운 함수에 대해 지수적으로 빨리 수렴하기 때문입니다.

띄엄띄엄한 표·측정값→사이의 값이 필요→점을 지나는 다항식 p(x)→보간·미분·적분·궤도력

점을 지나는 다항식: 존재와 유일성

네 점을 지나는 3차 곡선은 몇 개인가

풍동 실험에서 받음각 0°, 4°, 8°, 12°의 양력 계수를 쟀습니다. 6°에서의 값을 추정하려고 네 점을 지나는 3차 다항식을 쓰기로 했습니다. 그런 다항식이 정말 있을까요? 있다면 하나뿐일까요? 사람마다 다른 다항식을 고르면 추정값이 달라질 테니, 이것부터 확인해야 합니다.

서로 다른 노드(node) x0,x1,…,xnx_0, x_1, \dots, x_n과 값 y0,…,yny_0, \dots, y_n이 주어졌을 때 p(xi)=yip(x_i) = y_i를 만족하는 다항식 pp를 찾는 문제를 다항식 보간(polynomial interpolation)이라 합니다. 값이 어떤 함수 ff에서 왔다면(yi=f(xi)y_i = f(x_i)) pp를 ff의 보간 다항식이라 부릅니다.

정리 5.1 (보간 다항식의 존재와 유일성) 노드 x0,…,xnx_0, \dots, x_n이 모두 다르면, 임의의 값 y0,…,yny_0, \dots, y_n에 대해 p(xi)=yip(x_i) = y_i (i=0,…,n)(i = 0, \dots, n)를 만족하는 차수 nn 이하의 다항식 pp가 정확히 하나 있다.

증명. 유일성: 두 다항식 p,qp, q가 모두 조건을 만족하면 r=p−qr = p - q는 차수 nn 이하인데 n+1n+1개의 서로 다른 근 x0,…,xnx_0, \dots, x_n을 가진다. 0이 아닌 nn차 이하 다항식의 근은 많아야 nn개이므로 r≡0r \equiv 0. 존재: 아래 정의 5.3의 라그랑주 형식이 실제로 그런 다항식을 하나 만들어 준다. (또는: 계수에 대한 (n+1)×(n+1)(n+1)\times(n+1) 선형계가 유일성 때문에 영공간이 {0}\{0\}이므로 가역이다.) ∎

가장 직접적인 계산법은 p(x)=a0+a1x+⋯+anxnp(x) = a_0 + a_1x + \dots + a_nx^n로 두고 조건 n+1n+1개를 연립방정식으로 쓰는 것입니다.

정의 5.2 (반데르몽드 행렬) 단항식 기저 1,x,…,xn1, x, \dots, x^n으로 쓴 보간 조건은
[1x0x02⋯x0n1x1x12⋯x1n⋮⋮1xnxn2⋯xnn]⏟V[a0a1⋮an]=[y0y1⋮yn]\underbrace{\begin{bmatrix} 1 & x_0 & x_0^2 & \cdots & x_0^n \\ 1 & x_1 & x_1^2 & \cdots & x_1^n \\ \vdots & & & & \vdots \\ 1 & x_n & x_n^2 & \cdots & x_n^n \end{bmatrix}}_{V}\begin{bmatrix} a_0 \\ a_1 \\ \vdots \\ a_n \end{bmatrix} = \begin{bmatrix} y_0 \\ y_1 \\ \vdots \\ y_n \end{bmatrix}
VV를 반데르몽드 행렬(Vandermonde matrix)이라 한다. det⁡V=∏0≤i<j≤n(xj−xi)\det V = \prod_{0 \le i \lt j \le n}(x_j - x_i)이므로 노드가 서로 다르면 가역이다.

이론으로는 이것으로 끝입니다. 문제는 계산입니다. x5x^5와 x6x^6은 [0,1][0, 1]에서 그래프가 거의 겹칩니다. 기저 함수들이 서로 비슷하면 VV의 열들이 거의 평행해지고, 2장에서 본 조건수가 폭발합니다. 아래 표는 실제로 계산한 2-노름 조건수 κ2(V)\kappa_2(V)입니다(노드 nn개).

노드 수등간격, [0,1][0, 1]등간격, [−1,1][-1, 1]체비쇼프, [−1,1][-1, 1]
56.86×10²2.35×10¹1.96×10¹
101.52×10⁷4.63×10³1.47×10³
154.03×10¹¹1.10×10⁶1.19×10⁵
201.20×10¹⁶2.72×10⁸9.48×10⁶

[0,1][0, 1]의 등간격 노드 20개에서 κ2≈1016\kappa_2 \approx 10^{16}, 곧 배정밀도의 1/ε1/\varepsilon에 닿았습니다. 계수 aka_k는 소수 첫 자리도 믿을 수 없습니다. 체비쇼프 노드(6절)를 써도 조건수는 지수적으로 자랍니다. 반데르몽드의 병은 노드가 아니라 단항식 기저에 있습니다. 그래서 이 장의 나머지는 같은 다항식을 다른 기저로 쓰는 이야기입니다. 다행히 조건수가 크다고 해서 p(x)p(x)의 값이 언제나 틀리는 것은 아닙니다(7절에서 그 미묘한 차이를 실험합니다).

SIMULATOR

점을 끌어 보간 다항식 만들기

점을 끌기 · 빈 곳 클릭으로 점 추가
점 수 / 차수—
κ₂(V) 반데르몽드—
점 사이 최대 |p|—
해볼 것: ① 점 두 개를 x가 거의 같은 자리로 끌어 보세요. 곡선이 크게 출렁이고 κ₂가 치솟습니다. 두 점의 x가 같아지면 보간 자체가 불가능합니다(정리 5.1의 가정). ② 빈 곳을 클릭해 점을 8~9개로 늘리면 곡선이 양 끝에서 요동치기 시작합니다. 5절의 룽게 현상의 예고입니다. ③ 점 하나만 위아래로 끌면 곡선 전체가 움직입니다. 다항식 보간은 국소적이지 않습니다(6장 스플라인과 비교). 모델: 계수는 부분 피벗 가우스 소거로 반데르몽드 계를 풀어 얻고, 곡선은 무게중심 공식(7절)으로 그립니다.

라그랑주 형식: 노드마다 하나씩의 기저

연립방정식을 풀지 않고 보간 다항식을 적을 수 있을까

세 점 (0,1)(0, 1), (1,3)(1, 3), (3,2)(3, 2)를 지나는 2차식을 반데르몽드 계 없이 바로 적고 싶습니다. 비결은 "한 노드에서만 1이고 나머지 노드에서는 0인" 다항식을 먼저 만드는 것입니다.

정의 5.3 (라그랑주 기저와 라그랑주 형식) 노드 x0,…,xnx_0, \dots, x_n에 대해
ℓk(x)=∏j≠kx−xjxk−xj,p(x)=∑k=0nyk ℓk(x).\ell_k(x) = \prod_{j \ne k}\frac{x - x_j}{x_k - x_j}, \qquad p(x) = \sum_{k=0}^{n} y_k\,\ell_k(x).
ℓk\ell_k는 nn차 다항식이고 ℓk(xi)=δik\ell_k(x_i) = \delta_{ik}(i=ki = k이면 1, 아니면 0)이다. 그러므로 p(xi)=yip(x_i) = y_i.
ℓk\ell_k를 라그랑주 기저 다항식(Lagrange basis polynomial)이라 한다. 이 기저에서 반데르몽드 행렬의 자리에 오는 행렬은 단위 행렬이다. 계수가 곧 데이터 yky_k다.

상수 함수 1도 보간 다항식이므로(모든 yk=1y_k = 1) 언제나 ∑kℓk(x)=1\sum_k \ell_k(x) = 1입니다. 곧 p(x)p(x)는 데이터의 가중 평균인데, 가중치 ℓk(x)\ell_k(x)가 음수일 수도 있고 1보다 클 수도 있습니다. 노드 밖으로 나가면(외삽) 가중치의 크기가 급격히 커지고, 데이터의 작은 오차가 크게 증폭됩니다.

예제 5.1 (세 점의 라그랑주 형식) (0,1)(0, 1), (1,3)(1, 3), (3,2)(3, 2)를 지나는 2차식의 x=2x = 2에서의 값을 구하라.
  1. ℓ0(x)=(x−1)(x−3)(0−1)(0−3)=(x−1)(x−3)3\ell_0(x) = \dfrac{(x - 1)(x - 3)}{(0 - 1)(0 - 3)} = \dfrac{(x-1)(x-3)}{3}, ℓ1(x)=x(x−3)(1)(−2)\ell_1(x) = \dfrac{x(x - 3)}{(1)(-2)}, ℓ2(x)=x(x−1)(3)(2)\ell_2(x) = \dfrac{x(x - 1)}{(3)(2)}.
  2. x=2x = 2에서 ℓ0(2)=−13\ell_0(2) = -\tfrac13, ℓ1(2)=1\ell_1(2) = 1, ℓ2(2)=13\ell_2(2) = \tfrac13. 합은 11이다.
  3. p(2)=1⋅(−13)+3⋅1+2⋅13=103≈3.3333p(2) = 1\cdot(-\tfrac13) + 3\cdot 1 + 2\cdot\tfrac13 = \tfrac{10}{3} \approx 3.3333.
  4. 가중치 ℓ0(2)\ell_0(2)가 음수다. 2는 노드 1과 3 사이에 있으므로 멀리 있는 x0=0x_0 = 0의 값은 "빼서" 곡률을 맞춘다.

라그랑주 형식은 이론에 편리하지만 그대로 계산하면 한 점 xx에서 p(x)p(x)를 얻는 데 O(n2)O(n^2)번의 곱셈이 들고, 점을 하나 추가하면 모든 ℓk\ell_k를 새로 만들어야 합니다. 이 두 약점을 뉴턴 형식(3절)과 무게중심 공식(7절)이 고칩니다.

x₀x₁x₂ 10 ℓ₀: x₀에서 1 ℓ₁: x₁에서 1 ℓ₂: x₂에서 1 다른 노드에서는 모두 0 p = y₀ℓ₀ + y₁ℓ₁ + y₂ℓ₂
그림 5-1. 세 노드의 라그랑주 기저. 각 ℓk\ell_k는 자기 노드에서 1, 다른 노드에서 0이다. 데이터 yky_k로 각 기저의 높이를 조절해 더하면 보간 다항식이 된다.
SIMULATOR

라그랑주 기저 함수의 합으로 보는 보간

데이터 점을 위아래로 · x축의 ◆를 좌우로
보기
보간 다항식 p강조한 기저나머지 기저
탐침 x*—
가중치 ℓₖ(x*)—
Σℓₖ(x*)—
p(x*) = Σyₖℓₖ—
해볼 것: ① 탐침 ◆를 어디에 두어도 가중치의 합 Σℓₖ가 1인 것을 보세요. ② 탐침을 노드 구간 밖(외삽)으로 끌면 가중치의 절댓값이 수십으로 커집니다. 데이터에 섞인 측정 오차가 그만큼 증폭됩니다. ③ '보기'를 ℓₖ로 바꾸고 노드를 7개로 늘리면 양 끝 노드 근처에서 기저가 크게 출렁입니다. 이 출렁임의 최댓값 합이 7절의 르베그 상수입니다. 모델: 노드는 [0, 6]의 등간격.

뉴턴 형식과 분할 차분표

측정점이 하나 더 들어오면

예제 5.1의 세 점으로 2차식을 만든 뒤, 네 번째 측정값 (4,5)(4, 5)가 도착했습니다. 라그랑주 형식에서는 모든 기저가 바뀝니다. 이미 한 계산을 버리지 않고 항 하나만 덧붙일 수는 없을까요?

pnp_n을 처음 n+1n+1개 점의 보간 다항식이라 하면 pn+1−pnp_{n+1} - p_n은 x0,…,xnx_0, \dots, x_n에서 0이 되는 n+1n+1차 이하 다항식이므로 c (x−x0)⋯(x−xn)c\,(x - x_0)\cdots(x - x_n) 꼴입니다. 그래서 보간 다항식을 점을 하나씩 더하는 꼴로 쓸 수 있습니다.

정의 5.4 (뉴턴 형식과 분할 차분)
pn(x)=c0+c1(x−x0)+c2(x−x0)(x−x1)+⋯+cn(x−x0)⋯(x−xn−1).p_n(x) = c_0 + c_1(x - x_0) + c_2(x - x_0)(x - x_1) + \dots + c_n(x - x_0)\cdots(x - x_{n-1}).
계수 ckc_k를 f[x0,…,xk]f[x_0, \dots, x_k]로 쓰고 분할 차분(divided difference)이라 한다. 분할 차분은 다음 점화식으로 계산된다.
f[xi]=yi,f[xi,…,xi+k]=f[xi+1,…,xi+k]−f[xi,…,xi+k−1]xi+k−xi.f[x_i] = y_i, \qquad f[x_i, \dots, x_{i+k}] = \frac{f[x_{i+1}, \dots, x_{i+k}] - f[x_i, \dots, x_{i+k-1}]}{x_{i+k} - x_i}.
정리 5.5 (분할 차분의 성질) (가) f[x0,…,xk]f[x_0, \dots, x_k]는 pkp_k의 최고차 계수다. (나) 노드의 순서를 바꿔도 값이 같다(대칭). (다) ff가 CkC^k이면 노드를 포함하는 구간의 어떤 ξ\xi에 대해 f[x0,…,xk]=f(k)(ξ)/k!f[x_0, \dots, x_k] = f^{(k)}(\xi)/k!.

증명의 핵심. (가) 위의 pn+1−pn=c(x−x0)⋯(x−xn)p_{n+1} - p_n = c(x - x_0)\cdots(x - x_n)에서 cc가 최고차 계수. (나) 보간 다항식은 노드 순서와 무관하므로 그 최고차 계수도 무관. 점화식: x0..xk−1x_0..x_{k-1}의 보간 q0q_0와 x1..xkx_1..x_k의 보간 q1q_1로 pk=(x−x0)q1−(x−xk)q0xk−x0p_k = \frac{(x - x_0)q_1 - (x - x_k)q_0}{x_k - x_0}이 모든 노드에서 맞으므로, 양변의 최고차 계수를 비교. (다) f−pkf - p_k는 k+1k+1개의 근을 가지니 롤의 정리를 kk번 쓰면 (f−pk)(k)(ξ)=0(f - p_k)^{(k)}(\xi) = 0, 곧 f(k)(ξ)=k! ckf^{(k)}(\xi) = k!\,c_k. ∎

(다)는 분할 차분이 "이산적인 도함수"라는 뜻입니다. 1차 분할 차분은 할선의 기울기이고(CalculusBook: 도함수), 노드가 모이면 도함수가 됩니다. 이 사실이 8절의 에르미트 보간과 9장 수치 미분의 출발점입니다.

// 분할 차분 계수 c[0..n] (제자리 계산, O(n²))
c ← y
for k = 1 to n
  for i = n downto k
    c[i] ← (c[i] − c[i−1]) / (x[i] − x[i−k])
// 뉴턴 형식의 계산 (호너와 같은 중첩, O(n))
function evaluate(t)
  p ← c[n]
  for i = n−1 downto 0
    p ← p · (t − x[i]) + c[i]
  return p

계수 계산은 한 번 O(n2)O(n^2), 그 뒤 점마다 O(n)O(n). 점을 하나 더하면 표의 새 행 하나, O(n)O(n)만 추가로 계산한다.

예제 5.2 (분할 차분표와 점 추가) 예제 5.1의 데이터에 (4,5)(4, 5)를 더해 3차 보간 다항식을 만들고 p3(2)p_3(2)를 구하라.
xix_if[xi]f[x_i]1차2차3차
01
132
32−0.5−5/6
4537/61/2
  1. 1차: f[0,1]=(3−1)/1=2f[0,1] = (3 - 1)/1 = 2, f[1,3]=(2−3)/2=−0.5f[1,3] = (2 - 3)/2 = -0.5, f[3,4]=(5−2)/1=3f[3,4] = (5 - 2)/1 = 3.
  2. 2차: f[0,1,3]=(−0.5−2)/(3−0)=−5/6f[0,1,3] = (-0.5 - 2)/(3 - 0) = -5/6, f[1,3,4]=(3+0.5)/(4−1)=7/6f[1,3,4] = (3 + 0.5)/(4 - 1) = 7/6.
  3. 3차: f[0,1,3,4]=(7/6+5/6)/(4−0)=1/2f[0,1,3,4] = (7/6 + 5/6)/(4 - 0) = 1/2.
  4. 대각선(굵게)이 계수다: p2(x)=1+2x−56x(x−1)p_2(x) = 1 + 2x - \tfrac56 x(x - 1), p2(2)=1+4−53=103p_2(2) = 1 + 4 - \tfrac53 = \tfrac{10}{3} (예제 5.1과 같다).
  5. 점 추가는 항 하나: p3(x)=p2(x)+12x(x−1)(x−3)p_3(x) = p_2(x) + \tfrac12 x(x - 1)(x - 3), p3(2)=103+12⋅2⋅1⋅(−1)=73≈2.3333p_3(2) = \tfrac{10}{3} + \tfrac12\cdot 2\cdot 1\cdot(-1) = \tfrac73 \approx 2.3333. 같은 다항식을 단항식으로 쓰면 1+133x−176x2+12x31 + \tfrac{13}{3}x - \tfrac{17}{6}x^2 + \tfrac12 x^3이다.
SIMULATOR

분할 차분표를 한 칸씩 채우기

지금 계산한 칸사용한 두 칸뉴턴 계수(대각선)
해볼 것: ① '다음 칸'으로 한 칸씩 채우며, 각 칸이 왼쪽의 두 칸(노랑)만 쓰는 것을 보세요. 행이 끝날 때마다 곡선의 차수가 하나 올라갑니다. ② '점 추가'를 누르면 표에 새 행 하나만 생깁니다. 위쪽 행은 그대로입니다. ③ x² 데이터에서는 2차 열이 모두 1이고 3차 이상은 0입니다. 정리 5.5(다): f[…] = f⁽ᵏ⁾(ξ)/k! 이고 (x²)″/2! = 1. 모델: 행 i는 f[xᵢ₋ⱼ, …, xᵢ] (j = 0 … i)를 담습니다.

보간 오차 공식

표 사이의 값은 몇 자리까지 믿을 수 있나

사인표에 00, π/4\pi/4, π/2\pi/2의 값만 있습니다. 2차 보간으로 sin⁡(π/8)\sin(\pi/8)을 구하면 몇 자리가 맞을까요? 참값을 모르는 상태에서 오차를 미리 말할 수 있어야 표를 설계할 수 있습니다.

정리 5.6 (보간 오차) f∈Cn+1[a,b]f \in C^{n+1}[a, b]이고 노드 x0,…,xn∈[a,b]x_0, \dots, x_n \in [a, b]가 서로 다르면, 각 x∈[a,b]x \in [a, b]에 대해 ξ∈(a,b)\xi\in(a, b)가 있어
f(x)−pn(x)=f(n+1)(ξ)(n+1)! ω(x),ω(x)=∏i=0n(x−xi).f(x) - p_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\,\omega(x), \qquad \omega(x) = \prod_{i=0}^{n}(x - x_i).
ω\omega를 노드 다항식(node polynomial)이라 한다. ξ\xi는 xx에 따라 달라지고 보통 알 수 없다. 그래서 실제로는 ∣f(n+1)∣≤M|f^{(n+1)}| \le M으로 바꾸어 ∣f(x)−pn(x)∣≤M(n+1)!∣ω(x)∣|f(x) - p_n(x)| \le \frac{M}{(n+1)!}|\omega(x)|를 쓴다.

증명. xx가 노드면 양변이 0. 아니면 xx를 고정하고 g(t)=f(t)−pn(t)−(f(x)−pn(x)) ω(t)/ω(x)g(t) = f(t) - p_n(t) - \bigl(f(x) - p_n(x)\bigr)\,\omega(t)/\omega(x)라 하자. gg는 x0,…,xnx_0, \dots, x_n과 xx, 모두 n+2n+2개의 점에서 0이다. 롤의 정리를 n+1n+1번 쓰면 g(n+1)(ξ)=0g^{(n+1)}(\xi) = 0인 ξ\xi가 있다. pn(n+1)=0p_n^{(n+1)} = 0, ω(n+1)=(n+1)!\omega^{(n+1)} = (n+1)!이므로 0=f(n+1)(ξ)−(f(x)−pn(x))(n+1)!/ω(x)0 = f^{(n+1)}(\xi) - (f(x) - p_n(x))(n+1)!/\omega(x). ∎

이 식은 테일러 정리의 나머지 f(n+1)(ξ)(x−a)n+1/(n+1)!f^{(n+1)}(\xi)(x - a)^{n+1}/(n+1)!과 꼴이 같습니다. 테일러 다항식은 한 점에 n+1n+1개의 조건을 몰아넣은 보간이고, 그때 ω=(x−a)n+1\omega = (x - a)^{n+1}입니다. 오차는 세 요소의 곱입니다. 함수의 매끄러움 f(n+1)f^{(n+1)}, 차수 (n+1)!(n+1)!, 그리고 우리가 고를 수 있는 유일한 요소인 노드 배치 ω(x)\omega(x).

예제 5.3 (사인표의 2차 보간) 노드 0,π/4,π/20, \pi/4, \pi/2로 sin⁡x\sin x를 보간해 sin⁡(π/8)\sin(\pi/8)을 구하고, 오차 공식과 비교하라.
  1. 분할 차분: f[0]=0f[0] = 0, f[0,π/4]=0.70711/0.78540=0.900316f[0, \pi/4] = 0.70711/0.78540 = 0.900316, f[0,π/4,π/2]=−0.335749f[0, \pi/4, \pi/2] = -0.335749.
  2. p2(π/8)=0.900316⋅0.392699−0.335749⋅0.392699⋅(−0.392699)=0.405330p_2(\pi/8) = 0.900316\cdot 0.392699 - 0.335749\cdot 0.392699\cdot(-0.392699) = 0.405330. 참값 sin⁡(π/8)=0.382683\sin(\pi/8) = 0.382683, 오차 f−p2=−0.022647f - p_2 = -0.022647.
  3. 오차 한계: ∣f′′′∣=∣cos⁡∣≤1|f'''| = |\cos| \le 1, ∣ω(π/8)∣=π8⋅π8⋅3π8=3π3512=0.181677|\omega(\pi/8)| = \tfrac{\pi}{8}\cdot\tfrac{\pi}{8}\cdot\tfrac{3\pi}{8} = \tfrac{3\pi^3}{512} = 0.181677. 한계 0.181677/3!=0.0302800.181677/3! = 0.030280. 실제 오차 0.02260.0226이 한계 안에 있다.
  4. 구간 전체: 간격 hh의 등간격 세 노드에서 max⁡∣ω∣=233h3\max|\omega| = \tfrac{2}{3\sqrt3}h^3. h=π/4h = \pi/4이면 한계 0.0310790.031079, 실제 최대 오차는 x≈0.320x \approx 0.320에서 0.0235370.023537이다.
1차 보간의 오차: h²/8 n=1n = 1이면 ω=(x−x0)(x−x1)\omega = (x - x_0)(x - x_1)의 최대 크기가 구간 가운데에서 h2/4h^2/4이므로 ∣f−p1∣≤h28max⁡∣f′′∣|f - p_1| \le \frac{h^2}{8}\max|f''|. 로그표(h=0.01h = 0.01, x≥1x \ge 1)에서는 ∣(log⁡10x)′′∣=1/(x2ln⁡10)≤0.4343|(\log_{10}x)''| = 1/(x^2\ln 10) \le 0.4343이라 한계가 5.43×10−65.43\times10^{-6}이다. 예: log⁡102.71=0.432969\log_{10}2.71 = 0.432969, log⁡102.72=0.434569\log_{10}2.72 = 0.434569에서 직선 보간한 log⁡102.718≈0.4342490\log_{10}2.718 \approx 0.4342490, 참값 0.43424950.4342495, 오차 4.7×10−74.7\times10^{-7}. 다섯 자리 표의 반올림 오차(5×10−65\times10^{-6})보다 작으니 1차 보간으로 충분하다.
SIMULATOR

오차 곡선과 오차 한계: 노드를 옮겨 보기

f와 p · 노드(●)를 좌우로 끌기
오차 f − p 와 한계 ±M|ω|/(n+1)!
fp오차 f − p오차 한계
max |f − p|—
max 한계—
max |ω|—
해볼 것: ① 오차 곡선(빨강)이 언제나 한계(노랑) 안에 있고, 노드에서 0을 지나는 것을 보세요. 오차의 모양은 ω(x)를 닮았습니다. ② 노드 하나를 끌어 다른 노드에 바짝 붙이면 그 근처 오차는 줄지만 반대쪽 빈 곳에서 커집니다. ③ '등간격' 다음에 '체비쇼프'를 누르면 양 끝으로 노드가 몰리며 max |ω|와 max |f − p|가 함께 줄어듭니다. 6절의 주제입니다. 모델: M은 구간에서 |f⁽ⁿ⁺¹⁾|의 최댓값(ln x는 x = 1에서 n!).

룽게 현상: 점을 늘렸는데 더 틀린다

더 많은 측정점은 언제나 더 좋은가

오차 공식의 분모 (n+1)!(n+1)!은 아주 빨리 커지니, 노드를 늘리면 보간이 점점 정확해질 것 같습니다. 실제로 exe^x나 sin⁡x\sin x에서는 그렇습니다. 그런데 무한 번 미분 가능하고 모양도 얌전한 f(x)=1/(1+25x2)f(x) = 1/(1 + 25x^2)을 [−1,1][-1, 1]의 등간격 노드로 보간하면 이야기가 달라집니다.

1901년 룽게(Carl Runge)가 이 예를 연구했습니다. 등간격 노드 n+1n+1개로 보간한 최대 오차를 계산하면 다음과 같습니다.

차수 nn4810162040
등간격 max⁡∣f−pn∣\max|f - p_n|0.4381.051.9214.459.81.05×10⁵
체비쇼프 max⁡∣f−pn∣\max|f - p_n|0.4020.1710.1090.03260.01532.89×10⁻⁴

등간격에서는 오차가 줄기는커녕 지수적으로 커지고, 그 오차는 모두 구간의 양 끝 근처에서 생깁니다. 이것이 룽게 현상(Runge phenomenon)입니다. 같은 함수를 체비쇼프 노드(6절)로 보간하면 꾸준히 줄어듭니다.

왜일까요? 오차 공식의 두 요소가 서로 싸웁니다. 1/(1+25x2)1/(1 + 25x^2)의 도함수는 x=±i/5x = \pm i/5의 복소 특이점 때문에 f(n+1)f^{(n+1)}이 대략 (n+1)! 5n+1(n+1)!\,5^{n+1}만큼 자랍니다. (n+1)!(n+1)!은 지워지고 5n+1max⁡∣ω∣5^{n+1}\max|\omega|이 남는데, 등간격 노드의 max⁡∣ω∣\max|\omega|는 대략 (2/e)n(2/e)^{n} 정도로만 줄어 5⋅2/e>15\cdot 2/e \gt 1이 이깁니다. 더 정확한 이론(복소 평면의 퍼텐셜 이론)은 등간격 보간이 수렴하는 영역이 실수축 위의 대략 ∣x∣<0.726|x| \lt 0.726뿐임을 보여 줍니다. 시뮬레이터에서 가운데는 맞아 들어가고 양 끝만 터지는 것이 그 결과입니다.

교훈 매끄러움만으로는 부족하다. 고차 다항식 보간은 노드 배치가 결정한다. 등간격 데이터밖에 없다면 차수를 높이는 대신 조각별 다항식(6장 스플라인)이나 최소제곱(7장)을 쓴다.
SIMULATOR

룽게 현상: 차수 n 슬라이더

노드
f등간격 보간체비쇼프 보간
등간격 max |f − p|—
체비쇼프 max |f − p|—
최대 오차 위치 (등간격)—
해볼 것: ① 룽게 함수에서 ▶를 눌러 n을 올리면 가운데는 점점 맞는데 양 끝의 출렁임이 화면을 뚫고 나갑니다(세로축은 잘려 있으니 수치를 보세요). ② 노드를 체비쇼프로 바꾸면 같은 n에서 출렁임이 사라집니다. ③ 1/(1 + x²)은 특이점이 더 멀리(±i) 있어 등간격으로도 수렴합니다. |x|는 매끄럽지 않아 체비쇼프로도 느리게(오차 ∝ 1/n) 줄어듭니다. 모델: 구간 [−1, 1], 무게중심 공식으로 계산.

체비쇼프 노드와 최적성

노드를 어디에 두어야 할까

오차 공식에서 f(n+1)f^{(n+1)}은 함수가 정하고 (n+1)!(n+1)!은 차수가 정합니다. 우리가 바꿀 수 있는 것은 ω(x)=∏(x−xi)\omega(x) = \prod(x - x_i)뿐입니다. [−1,1][-1, 1]에서 max⁡∣ω∣\max|\omega|를 가장 작게 만드는 노드는 무엇일까요?

답은 체비쇼프 다항식(Chebyshev polynomial) Tm(cos⁡θ)=cos⁡mθT_m(\cos\theta) = \cos m\theta에서 나옵니다. T0=1T_0 = 1, T1=xT_1 = x, Tm+1=2xTm−Tm−1T_{m+1} = 2xT_m - T_{m-1}이므로 TmT_m은 최고차 계수가 2m−12^{m-1}인 mm차 다항식이고, [−1,1][-1, 1]에서 ∣Tm∣≤1|T_m| \le 1이며 m+1m+1개의 점 cos⁡(kπ/m)\cos(k\pi/m)에서 ±1\pm1을 번갈아 찍습니다.

정의 5.7 (체비쇼프 노드) Tn+1T_{n+1}의 근
xk=cos⁡(2k+1)π2(n+1),k=0,1,…,nx_k = \cos\frac{(2k+1)\pi}{2(n+1)}, \qquad k = 0, 1, \dots, n
를 n+1n+1개의 체비쇼프 노드(Chebyshev nodes)라 한다. 반원 위의 등간격 점을 지름에 내린 그림자라서 양 끝에 촘촘하다. 일반 구간 [a,b][a, b]에서는 x=a+b2+b−a2xkx = \frac{a+b}{2} + \frac{b-a}{2}x_k로 옮긴다.
−110 반원의 각을 같은 간격으로 나눈 점 → 지름 위의 그림자는 양 끝에 몰린다
그림 5-2. 체비쇼프 노드 6개. 반원 위에서 각 θk=(2k+1)π/12\theta_k = (2k+1)\pi/12로 같은 간격인 점(청록, 일부만 보임)을 지름에 내리면 xk=cos⁡θkx_k = \cos\theta_k(초록)가 된다. 가운데는 성기고 양 끝은 촘촘하다.
정리 5.8 (체비쇼프 노드의 최적성) 최고차 계수가 1인 n+1n+1차 다항식 가운데 [−1,1][-1, 1]에서 최댓값 max⁡∣q∣\max|q|이 가장 작은 것은 T~n+1=2−nTn+1\tilde T_{n+1} = 2^{-n}T_{n+1}이고, 그 값은 2−n2^{-n}이다. 따라서 체비쇼프 노드에서 ω=T~n+1\omega = \tilde T_{n+1}이고
max⁡[−1,1]∣f−pn∣≤max⁡∣f(n+1)∣(n+1)! 2n.\max_{[-1,1]}|f - p_n| \le \frac{\max|f^{(n+1)}|}{(n+1)!\,2^n}.

증명의 핵심. 어떤 최고차 계수 1인 qq가 max⁡∣q∣<2−n\max|q| \lt 2^{-n}이라 하자. T~n+1\tilde T_{n+1}은 n+2n+2개의 점에서 ±2−n\pm 2^{-n}을 번갈아 찍으므로, r=T~n+1−qr = \tilde T_{n+1} - q는 그 점들에서 부호가 번갈아 바뀐다. 그러면 rr은 n+1n+1개 이상의 근을 갖는데, 최고차 항이 지워져 차수가 nn 이하이므로 r≡0r \equiv 0, 모순. ∎

등간격과 비교하면 차이가 분명합니다. 노드 3개에서 등간격 {−1,0,1}\{-1, 0, 1\}의 ω=x3−x\omega = x^3 - x는 최대 2/(33)=0.3852/(3\sqrt3) = 0.385, 체비쇼프 {±3/2,0}\{\pm\sqrt3/2, 0\}의 ω=x3−34x\omega = x^3 - \tfrac34 x는 최대 0.250.25입니다. 노드 21개에서는 2.34×10−42.34\times10^{-4} 대 9.54×10−79.54\times10^{-7}, 245배 차이입니다. 예제 5.3의 사인 보간을 체비쇼프 노드 {0.1052,0.7854,1.4656}\{0.1052, 0.7854, 1.4656\}으로 바꾸면 오차 한계는 0.03110.0311에서 0.02020.0202로, 실제 최대 오차는 0.02350.0235에서 0.01620.0162로 줄어듭니다.

노드 배치의 품질을 재는 더 완전한 척도는 르베그 상수(Lebesgue constant) Λn=max⁡x∑k∣ℓk(x)∣\Lambda_n = \max_x\sum_k|\ell_k(x)|입니다. 최선의 nn차 근사 p∗p^*에 대해 ∥f−pn∥∞≤(1+Λn)∥f−p∗∥∞\|f - p_n\|_\infty \le (1 + \Lambda_n)\|f - p^*\|_\infty이고, 데이터의 오차도 최대 Λn\Lambda_n배로 증폭됩니다. 계산해 보면 등간격은 n=10n = 10에서 29.929.9, n=20n = 20에서 1098710987로 지수적으로 커지고, 체비쇼프는 2.492.49, 2.902.90으로 2πln⁡n\frac{2}{\pi}\ln n 정도로만 자랍니다.

SIMULATOR

노드 다항식 |ω(x)|: 등간격 vs 체비쇼프

|ω(x)| = |∏(x − xᵢ)|
노드 위치
세로축
등간격체비쇼프2⁻ⁿ
max |ω| 등간격—
max |ω| 체비쇼프 (= 2⁻ⁿ)—
비율—
르베그 상수 Λ 등간격 / 체비쇼프—
해볼 것: ① 로그 축에서 등간격의 |ω|는 가운데가 낮고 양 끝 구간에서 수십~수백 배 솟습니다. 체비쇼프는 모든 봉우리가 같은 높이 2⁻ⁿ입니다(등진동). ② n+1을 늘리며 비율이 지수적으로 커지는 것을 보세요. ③ 아래 노드 그림에서 체비쇼프 노드가 양 끝에 몰리는 정도를 보세요. 끝의 큰 봉우리를 누르기 위해서입니다. 모델: [−1, 1], 르베그 상수는 1500개 점에서 Σ|ℓₖ|의 최댓값.

무게중심 공식: 빠르고 안정적인 계산

100차 다항식을 믿고 계산할 수 있을까

체비쇼프 노드라면 차수 100의 보간도 정확하다고 했습니다. 하지만 반데르몽드 계수는 1절에서 본 대로 조건수가 101610^{16}을 넘고, 라그랑주 형식은 점마다 O(n2)O(n^2)입니다. 실제로 수백 차수의 보간을 쓰는 라이브러리(예: Chebfun)는 어떻게 계산할까요?

라그랑주 기저의 공통 인수를 묶어 냅니다. ω(x)=∏j(x−xj)\omega(x) = \prod_j(x - x_j)와 무게중심 가중치(barycentric weight) wk=1/∏j≠k(xk−xj)w_k = 1/\prod_{j \ne k}(x_k - x_j)를 쓰면 ℓk(x)=ω(x) wk/(x−xk)\ell_k(x) = \omega(x)\,w_k/(x - x_k)입니다. 여기에 ∑kℓk=1\sum_k\ell_k = 1로 나누면 ω(x)\omega(x)가 지워집니다.

정리 5.9 (무게중심 공식) xx가 노드가 아니면
p(x)=∑k=0nwkx−xk yk∑k=0nwkx−xk.p(x) = \frac{\displaystyle\sum_{k=0}^{n}\frac{w_k}{x - x_k}\,y_k}{\displaystyle\sum_{k=0}^{n}\frac{w_k}{x - x_k}}.
가중치는 데이터 yy와 무관하므로 한 번 O(n2)O(n^2)로 구해 두면, 점마다 O(n)O(n)이다. 가중치 전체에 같은 상수를 곱해도 결과가 같다. 체비쇼프 노드(제1종)에서는 wk∝(−1)ksin⁡(2k+1)π2(n+1)w_k \propto (-1)^k\sin\frac{(2k+1)\pi}{2(n+1)}, 끝점을 포함하는 체비쇼프 점 cos⁡(kπ/n)\cos(k\pi/n)에서는 wk∝(−1)kδkw_k \propto (-1)^k\delta_k(δ0=δn=12\delta_0 = \delta_n = \tfrac12, 나머지 1)로 닫힌 꼴이다.
// 무게중심 가중치 (한 번, O(n²))
for k = 0 to n
  w[k] ← 1
  for j = 0 to n, j ≠ k
    w[k] ← w[k] / (x[k] − x[j])
// 한 점 t에서의 값 (O(n))
function bary(t)
  num ← 0;  den ← 0
  for k = 0 to n
    d ← t − x[k]
    if d = 0 then return y[k]      // 노드 위에서는 데이터 그대로
    q ← w[k] / d
    num ← num + q · y[k];  den ← den + q
  return num / den
예제 5.4 (무게중심 공식으로 다시 계산) 예제 5.1의 노드 0,1,30, 1, 3과 값 1,3,21, 3, 2로 p(2)p(2)를 구하라.
  1. w0=1(0−1)(0−3)=13w_0 = \frac{1}{(0-1)(0-3)} = \tfrac13, w1=1(1−0)(1−3)=−12w_1 = \frac{1}{(1-0)(1-3)} = -\tfrac12, w2=1(3−0)(3−1)=16w_2 = \frac{1}{(3-0)(3-1)} = \tfrac16.
  2. t=2t = 2: qk=wk/(2−xk)=16, −12, −16q_k = w_k/(2 - x_k) = \tfrac16,\ -\tfrac12,\ -\tfrac16.
  3. 분자 16⋅1−12⋅3−16⋅2=−53\tfrac16\cdot 1 - \tfrac12\cdot 3 - \tfrac16\cdot 2 = -\tfrac53, 분모 16−12−16=−12\tfrac16 - \tfrac12 - \tfrac16 = -\tfrac12. p(2)=103p(2) = \tfrac{10}{3}. 예제 5.1, 5.2와 같은 답이다.

안정성은 놀랍습니다. tt가 노드 xkx_k에 아주 가까우면 1/(t−xk)1/(t - x_k)가 거대해지지만, 분자와 분모에 같은 비율로 나타나 서로 지워집니다. 하이엄(Nicholas Higham)은 2004년에 이 공식이 르베그 상수가 작은 노드(체비쇼프 등)에서 전방 안정임을 증명했습니다. 반면 같은 다항식을 반데르몽드로 구한 단항식 계수로 계산하면, 계수 자체가 조건수만큼 틀려서 정확도에 바닥이 생깁니다. 아래 시뮬레이터의 세 번째 곡선이 그 바닥입니다.

예제 5.5 (계산 방법이 정확도를 가른다) 룽게 함수를 체비쇼프 노드로 보간한 최대 오차를 두 방법으로 계산했다.
차수 nn20406080
무게중심 공식1.53×10⁻²2.89×10⁻⁴5.42×10⁻⁶1.02×10⁻⁷
반데르몽드 → 단항식 계수1.53×10⁻²3.03×10⁻⁴3.48×10⁻⁴7.70×10⁻⁴
수학적으로 같은 다항식인데 n=40n = 40부터 단항식 계산은 더 좋아지지 않고 오히려 나빠진다. 무게중심 공식은 이론적 수렴 속도 ρ−n\rho^{-n}, ρ=15+1+125≈1.2198\rho = \tfrac15 + \sqrt{1 + \tfrac1{25}} \approx 1.2198을 그대로 따라 n=128n = 128에서 7.4×10−127.4\times10^{-12}에 이른다.
SIMULATOR

오차–차수 그래프: 노드와 계산 방법

등간격 · 무게중심체비쇼프 · 무게중심체비쇼프 · 반데르몽드
등간격—
체비쇼프 · 무게중심—
체비쇼프 · 반데르몽드—
해볼 것: ① eˣ에서 등간격도 처음엔 체비쇼프만큼 빨리 줄지만 n ≈ 14에서 10⁻¹³ 근처에 닿은 뒤 다시 올라갑니다. 함수가 아니라 반올림 오차가 르베그 상수(지수적으로 큼)만큼 증폭된 것입니다. ② 룽게 함수에서 반데르몽드 곡선(노랑)이 10⁻⁴ 근처에서 멈추고, 무게중심(초록)은 직선으로 계속 내려갑니다. 세로축이 로그이므로 직선은 지수 수렴입니다. ③ cos 20x는 n이 16~20을 넘어야 비로소 줄기 시작합니다. 파장당 최소 노드 수(대략 π개)가 필요합니다. 모델: [−1, 1], 오차는 1201개 점의 최댓값, 반데르몽드 계는 부분 피벗 가우스 소거.

에르미트 보간: 기울기까지 맞추기

위치와 속도를 함께 아는 경우

로봇 팔의 관절이 t=0t = 0에 각도 0, 각속도 1이고 t=1t = 1에 각도 1, 각속도 0이어야 합니다. 값 두 개로는 직선밖에 못 정하지만, 끝점의 기울기까지 지정하면 부드럽게 출발하고 부드럽게 멈추는 궤적을 만들 수 있습니다. 애니메이션의 키프레임, 위성 궤도력의 위치·속도 표도 같은 구조입니다.

정의 5.10 (에르미트 보간) 서로 다른 노드 x0,…,xmx_0, \dots, x_m에서 값 f(xi)f(x_i)와 도함수 f′(xi)f'(x_i)를 모두 맞추는 2m+12m+1차 이하 다항식 HH를 에르미트 보간(Hermite interpolation)이라 한다. 조건 2m+22m+2개, 미지수 2m+22m+2개이며 해는 유일하다. 오차는
f(x)−H(x)=f(2m+2)(ξ)(2m+2)!∏i=0m(x−xi)2.f(x) - H(x) = \frac{f^{(2m+2)}(\xi)}{(2m+2)!}\prod_{i=0}^{m}(x - x_i)^2.

계산은 분할 차분표에 각 노드를 두 번 적으면 됩니다. 정리 5.5(다)에 의해 같은 노드의 1차 분할 차분은 f[xi,xi]=lim⁡h→0f(xi+h)−f(xi)h=f′(xi)f[x_i, x_i] = \lim_{h\to0}\frac{f(x_i + h) - f(x_i)}{h} = f'(x_i)로 정의하는 것이 자연스럽습니다. 나머지 칸은 보통 점화식 그대로입니다.

예제 5.6 (부드러운 출발과 정지) H(0)=0H(0) = 0, H′(0)=1H'(0) = 1, H(1)=1H(1) = 1, H′(1)=0H'(1) = 0인 3차식을 구하라.
zzf[z]f[z]1차2차3차
00
001 (= f′(0))
1110
110 (= f′(1))−1−1
  1. 1차: f[0,0]=1f[0,0] = 1, f[0,1]=(1−0)/1=1f[0,1] = (1 - 0)/1 = 1, f[1,1]=0f[1,1] = 0. 2차: f[0,0,1]=(1−1)/1=0f[0,0,1] = (1 - 1)/1 = 0, f[0,1,1]=(0−1)/1=−1f[0,1,1] = (0 - 1)/1 = -1. 3차: (−1−0)/1=−1(-1 - 0)/1 = -1.
  2. H(x)=0+1⋅x+0⋅x2−1⋅x2(x−1)=x+x2−x3H(x) = 0 + 1\cdot x + 0\cdot x^2 - 1\cdot x^2(x - 1) = x + x^2 - x^3.
  3. 확인: H(1)=1H(1) = 1, H′(x)=1+2x−3x2H'(x) = 1 + 2x - 3x^2이므로 H′(0)=1H'(0) = 1, H′(1)=0H'(1) = 0. 중간값 H(0.5)=0.625H(0.5) = 0.625.

구간 하나에서의 3차 에르미트 보간은 6장의 조각별 3차 에르미트(PCHIP)와 3차 스플라인의 부품이 됩니다. 노드마다 기울기를 어떻게 정하느냐가 두 방법의 차이입니다.

SIMULATOR

같은 정보량, 다른 보간: 라그랑주 vs 에르미트

f라그랑주 m+1점라그랑주 2m+2점에르미트
라그랑주 m+1점—
라그랑주 2m+2점—
에르미트—
해볼 것: ① 노드 위의 짧은 선분이 에르미트가 맞추는 기울기입니다. 에르미트 곡선(초록)이 노드에서 f에 접하는 것을 보세요. ② 정보량(조건 2m+2개)이 같은 '라그랑주 2배 노드'와 에르미트의 최대 오차를 비교하세요. 대체로 비슷하지만, 에르미트는 오차가 노드 사이로 몰립니다(∏(x − xᵢ)²). ③ 1/(1 + x²), [−4, 4]에서 노드를 5개 넘게 늘리면 에르미트와 2배 노드 라그랑주 모두 양 끝에서 오차가 다시 커집니다(룽게 현상). 도함수를 아는 것이 노드 배치 문제를 없애 주지는 않습니다. 모델: 등간격 노드, 반복 노드 분할 차분표로 계산. 표시는 최대 오차.

이 도구가 쓰이는 곳

보간 다항식은 그 자체로 쓰이기보다 다른 알고리즘의 부품으로 더 자주 쓰입니다. "모르는 함수를 다항식으로 바꾸고, 다항식에 대해서는 정확히 계산한다"가 수치해석의 기본 동작입니다.

분야보간이 하는 일이 장의 도구
수표·물성표(증기표, 로그표)표 사이의 값 읽기1차·2차 보간, 오차 h2/8⋅max⁡∣f′′∣h^2/8\cdot\max|f''|
행성·위성 궤도력시간 구간마다 계수 저장, 임의 시각의 위치체비쇼프 다항식, 위치·속도 에르미트
수치 적분피적분 함수를 보간해 정확히 적분뉴턴–코츠(등간격), 클렌쇼–커티스(체비쇼프)
ODE 다단계 방법과거 기울기를 보간해 외삽애덤스 공식 = 뉴턴 형식 보간의 적분
근 찾기함수 대신 보간 다항식의 근할선법(1차), 역 2차 보간(브렌트)
스펙트럴 방법·Chebfun함수를 수백 차 보간으로 표현체비쇼프 점, 무게중심 공식

핵심 정리

  1. 서로 다른 n+1n+1개 노드를 지나는 nn차 이하 다항식은 정확히 하나다. 형식(단항식·라그랑주·뉴턴·무게중심)은 달라도 같은 다항식이다.
  2. 단항식 계수를 구하는 반데르몽드 계는 조건수가 지수적으로 커서([0,1][0,1] 등간격 20점에서 ≈1016\approx10^{16}) 계산 도구로 부적합하다.
  3. 라그랑주 기저 ℓk\ell_k는 자기 노드에서 1, 다른 노드에서 0이고 ∑ℓk=1\sum\ell_k = 1이다. 뉴턴 형식의 계수는 분할 차분표의 대각선이며 점 추가가 O(n)O(n)이다.
  4. 보간 오차는 f(x)−pn(x)=f(n+1)(ξ)(n+1)!∏(x−xi)f(x) - p_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\prod(x - x_i). 1차 보간은 h28max⁡∣f′′∣\frac{h^2}{8}\max|f''|. 분할 차분은 f(k)(ξ)/k!f^{(k)}(\xi)/k!이다.
  5. 등간격 노드의 고차 보간은 매끄러운 함수에서도 발산할 수 있다(룽게 현상, 1/(1+25x2)1/(1 + 25x^2), n=20n = 20에서 오차 60).
  6. 체비쇼프 노드 cos⁡(2k+1)π2(n+1)\cos\frac{(2k+1)\pi}{2(n+1)}는 max⁡∣ω∣\max|\omega|를 최소 2−n2^{-n}으로 만들고, 르베그 상수가 2πln⁡n\frac2\pi\ln n 정도로만 자란다.
  7. 무게중심 공식은 가중치를 한 번 O(n2)O(n^2)로 구한 뒤 점마다 O(n)O(n)이고, 체비쇼프 노드에서 수백 차수까지 안정적이다.
  8. 에르미트 보간은 노드를 두 번 적은 분할 차분표로 값과 기울기를 함께 맞추며, 오차에 ∏(x−xi)2\prod(x - x_i)^2이 붙는다.

확인 퀴즈

Q1. 서로 다른 x를 가진 점 6개를 모두 지나는 다항식에 대한 설명으로 옳은 것은?

정리 5.1에 의해 n+1 = 6개 노드에는 5차 이하 보간 다항식이 유일하다. 6차 이상이면 c·∏(x − xᵢ)를 더한 것도 조건을 만족하므로 무수히 많다. 형식은 계산법의 차이일 뿐 같은 다항식이다.

Q2. 데이터 (0,1)(0, 1), (1,3)(1, 3), (3,2)(3, 2)의 분할 차분 f[x0,x1,x2]f[x_0, x_1, x_2]는?

f[0,1] = 2, f[1,3] = −0.5, f[0,1,3] = (−0.5 − 2)/(3 − 0) = −5/6. 이것이 2차 보간 다항식의 최고차 계수다.

Q3. 라그랑주 기저 ℓ0,…,ℓn\ell_0, \dots, \ell_n에 대해 항상 성립하는 것은?

상수 함수 1의 보간 다항식은 자기 자신이므로 Σ1·ℓₖ(x) = 1. 각 ℓₖ는 음수나 1보다 큰 값을 가질 수 있다(예제 5.1의 ℓ₀(2) = −1/3).

Q4. 간격 h=0.1h = 0.1인 사인표에서 이웃한 두 값을 직선으로 보간할 때 오차 한계는?

1차 보간 오차는 (h²/8)·max|f″|이고 |sin″| ≤ 1이므로 0.01/8 = 0.00125. 간격을 반으로 줄이면 한계는 1/4이 된다.

Q5. 1/(1+25x2)1/(1 + 25x^2)을 [−1,1][-1, 1]의 등간격 노드로 보간하며 차수를 10, 20, 40으로 높이면?

룽게 현상. 최대 오차는 1.92 → 59.8 → 1.05×10⁵로 커지고 모두 양 끝 근처에서 생긴다. 반올림이 아니라 수학적 보간 다항식 자체의 성질이다. 체비쇼프 노드로 바꾸면 수렴한다.

Q6. 체비쇼프 노드 11개로 만든 노드 다항식 ω(x)\omega(x)의 [−1,1][-1, 1]에서의 최댓값은?

노드 n+1 = 11개면 ω = T₁₁/2¹⁰이고 |T₁₁| ≤ 1이므로 최댓값은 2⁻¹⁰. 같은 개수의 등간격 노드에서는 8.53×10⁻³으로 약 8.7배 크다.

Q7. 무게중심 공식에 대한 설명으로 틀린 것은?

무게중심 공식은 단항식 계수를 전혀 쓰지 않는다. 그래서 체비쇼프 노드에서 반데르몽드 방법이 10⁻⁴에서 멈출 때에도 계속 수렴한다(예제 5.5). 분자·분모의 공통 상수는 약분된다.

Q8. 노드 3개에서 값과 1차 도함수를 모두 맞추는 에르미트 보간 다항식의 차수는 최대 얼마인가?

조건이 3×2 = 6개이므로 미지수 6개, 곧 5차 이하 다항식이다. 분할 차분표에서는 각 노드를 두 번 적어 z = x₀, x₀, x₁, x₁, x₂, x₂로 계산한다.