1. 개요
| 보간과 근사 Interpolation & Approximation | |
|---|---|
| 분야 | 수치해석 × 근사이론 |
| 핵심 질문 | 점 몇 개로 함수 전체를 어떻게 복원할까 |
| 대표 기법 | 라그랑주·뉴턴 보간, 스플라인, 최소제곱 |
| 단골 함정 | 룽게 현상(Runge phenomenon) |
| 르베그 상수 | 등간격 n=40 에서 4.7×109, 체비쇼프는 3.31 |
| 3차 스플라인 오차 | O(h4) — 실측 4.00 |
| 쓰이는 곳 | 거의 모든 전산과학 코드 |
데이터는 점으로 주고, 답은 곡선으로 원한다. 그 사이를 메꾸는 게 우리 일이다.
보간(interpolation, 補間)은 이미 알고 있는 데이터 점들을 정확히 통과하는 함수를 찾아 그 사이의 값을 추정하는 방법이고, 근사(approximation, 近似)는 굳이 모든 점을 통과하지 않더라도 전체적으로 가장 그럴듯하게 맞아떨어지는 함수를 찾는 방법이다. 둘의 차이는 딱 한 가지, “주어진 점을 반드시 지나가야 하느냐”에 있다. 보간은 지나가야 하고, 근사는 지나가면 좋지만 안 지나가도 봐준다.
말은 쉬워 보여도 이 두 가지는 수치해석의 밑바탕에 조용히 깔려 있다. 유한차분법의 미분 근사, 룽게-쿠타법의 시간 적분, 유한요소법의 형상함수, 스펙트럴 방법의 기저 전개까지 — 전부 “함수를 다른 함수로 바꿔치기”하는 보간·근사의 변주다. 시뮬레이션 코드를 열어보면 어디선가 반드시 이 짓을 하고 있다.
2. 보간과 근사의 구분
주어진 점 , 이 있을 때:
- 보간: 를 모든 에 대해 강제한다. 점이 개면 차수 짜리 다항식 하나가 유일하게 결정된다.
- 근사: 만 요구한다. 대신 오차의 총합(보통 제곱합)을 최소화한다. 데이터에 노이즈가 섞여 있을 때 국룰이다.
측정 데이터처럼 노이즈가 낀 값을 억지로 다 통과시키면 곡선이 미쳐 날뛴다(과적합). 이럴 땐 보간이 아니라 근사를 써야 한다. 반대로 데이터가 깨끗한 이론값이라면 보간이 제격이다.
3. 다항식 보간
가장 고전적인 방법. 개의 점을 지나는 차수 의 다항식은 유일하게 존재한다.
3.1. 라그랑주 보간
라그랑주(Lagrange) 형식은 각 점마다 “그 점에서만 1이고 나머지 점에서는 0”인 기저 다항식을 만들어 선형결합한다.
수식이 예쁘고 유도가 직관적이라 교과서 첫 페이지에 나온다. 단점은 점이 하나 추가되면 모든 를 처음부터 다시 계산해야 한다는 것. 즉 증분 계산이 안 된다.1
3.2. 뉴턴 보간
뉴턴(Newton) 형식은 분할차분(divided difference)을 이용해 같은 다항식을 점화식으로 쌓아 올린다.
점을 하나 추가할 때 기존 계수는 그대로 두고 항 하나만 덧붙이면 되므로, 실시간으로 데이터가 들어오는 상황에서 유리하다. 라그랑주와 뉴턴은 같은 다항식을 다르게 쓴 것일 뿐, 결과는 동일하다 — 실제로 , 등간격 에서 두 형식의 최대 차이는 , 에서 로 반올림 수준이다. 어느 형식을 쓰느냐는 정확도가 아니라 비용과 안정성의 문제다.
3.3. 룽게 현상
여기서 초보들이 반드시 밟는 지뢰. “점을 많이 넣으면 더 정확하겠지?”라고 생각해 등간격으로 고차 다항식을 쓰면, 양 끝단에서 곡선이 미친 듯이 진동한다. 이것이 룽게 현상(Runge phenomenon)이다.2 해결책은 등간격 대신 체비쇼프 다항식의 극점·영점에 점을 몰아 배치하거나, 고차 다항식을 포기하고 조각별 저차 다항식, 즉 스플라인으로 갈아타는 것.
3.4. 검산: 룽게 함수
룽게가 쓴 바로 그 함수 를 에서 보간해 최대 오차를 재면 교과서 그림이 숫자로 나온다(바리센트릭 형식, 배정밀도).
| 차수 | 등간격 노드 | 체비쇼프 노드 |
|---|---|---|
| 10 | 1.92e+0 | 1.32e-1 |
| 20 | 5.98e+1 | 1.77e-2 |
| 40 | 1.05e+5 | 3.40e-4 |
| 60 | 1.43e+8 | 6.38e-6 |
등간격 쪽은 차수를 올릴수록 오차가 자릿수 단위로 커진다. 함수값이 안에 얌전히 들어있는데 보간 다항식은 까지 튀어 오른다. 반면 체비쇼프 노드는 차수 20마다 대략 씩 곱해지는 기하 수렴을 보인다.
3.5. 검산: 르베그 상수 — 노드 배치가 곧 증폭률이다
왜 노드 배치만 바꿨는데 이렇게 달라지는지는 르베그 상수 를 재면 바로 보인다. 이 값은 “데이터 오차가 보간 결과에서 최대 몇 배로 증폭되는가”이자, 최량근사 대비 손해의 상한()이다.
| 등간격 | 점근식 | 체비쇼프 | 점근식 | |
|---|---|---|---|---|
| 10 | 2.99e+1 | 3.27e+1 | 2.4210 | 2.4284 |
| 20 | 1.10e+4 | 1.29e+4 | 2.8678 | 2.8696 |
| 40 | 4.69e+9 | 5.48e+9 | 3.3104 | 3.3109 |
등간격은 으로 지수 폭발, 체비쇼프는 으로 로그 증가다. 체비쇼프 쪽 점근식은 소수 셋째 자리까지 맞고, 등간격 쪽은 상수배(실측/점근식 = 0.91 → 0.85 → 0.86)만큼 어긋나지만 자릿수는 정확히 따라간다 — 점근식이지 등식이 아니니 이게 정상이다.
3.6. 검산: 매끄러운 함수도 등간격이면 결국 진다
여기서 흔한 오해 하나를 정정해야 한다. 룽게 현상은 ” 가 복소평면에서 극점을 가져 수렴 영역이 좁아서” 생기는 근사이론적 문제이고, 등간격 보간의 또 다른 문제는 반올림 증폭이라는 별개의 수치적 문제다. 극점이 아예 없는 를 등간격으로 보간해 보면 둘이 분리된다.
- : 최대 오차 2.35e-10
- : 1.65e-12 ← 여기까지는 수렴
- : 1.78e-6 ← 다시 나빠진다
에서 르베그 상수가 이니 배정밀도 반올림 이 그대로 증폭되면 , 실측 과 같은 자릿수다. 즉 해석함수라도 등간격 표본으로는 지수 수렴을 안정적으로 얻을 수 없다는 것이 정리로 증명돼 있다(Platte–Trefethen–Kuijlaars 2011). 데이터가 등간격으로 주어졌다면 고차 보간을 포기하고 최소제곱이나 스플라인으로 가는 게 맞다.
4. 스플라인 보간
스플라인(spline)은 전체를 하나의 고차 다항식으로 우겨넣는 대신, 구간마다 저차 다항식(보통 3차)을 이어 붙이되 이음매에서 매끄럽게 연결한다. 3차 스플라인의 경우 각 이음매에서 함수값·1차 도함수·2차 도함수가 모두 연속이 되도록 조건을 건다.
곡선이 튀지 않으면서 매끄럽고, 고차 보간의 룽게 현상도 없다. 그래서 CAD 곡면, 폰트 렌더링(베지어 곡선이 사촌이다), 애니메이션 키프레임 보간, 컴퓨터 그래픽스의 경로 설계 등 “예쁜 곡선”이 필요한 곳이면 어디든 스플라인이다. 이름의 유래도 조선공이 배 곡선을 그릴 때 쓰던 얇은 나무자(spline)에서 왔다.
4.1. 검산: 4차 수렴과 경계조건의 함정
3차 스플라인의 오차 상한은 로 알려져 있다(Hall–Meyer 1976이 최적 상수를 정리했다. 단 이 상수는 끝점에서 도함수를 주는 고정 경계조건 기준이다). 를 에서 자연 스플라인으로 보간해 을 두 배씩 올리며 최대 오차를 재면:
| 최대 오차 | 수렴 차수 | |
|---|---|---|
| 16 | 6.31e-5 | 4.08 |
| 32 | 3.89e-6 | 4.02 |
| 64 | 2.42e-7 | 4.01 |
| 128 | 1.51e-8 | 4.00 |
깔끔하게 4차다. 그런데 같은 실험을 로 바꾸면 이야기가 달라진다.
| 전 구간 오차(차수) | 내부 오차(차수) | |
|---|---|---|
| 32 | 1.30e-4 (2.00) | 5.89e-9 |
| 64 | 3.26e-5 (2.00) | 3.26e-10 |
| 128 | 8.14e-6 (2.00) | 2.05e-11 (3.99) |
전 구간으로 보면 2차로 주저앉고, 내부만 보면 4차 그대로다. 범인은 함수가 아니라 경계조건이다. 자연 스플라인은 끝점에서 을 강제하는데, 는 마침 이라 이 조건이 참이고, 는 이라 거짓이다. 거짓인 조건을 밀어 넣으면 그 오차가 경계에서 안쪽으로 만큼 번진다. 도함수를 아는 경우 끝점에 를 주는 고정(clamped) 스플라인을, 모르는 경우 not-a-knot 조건을 쓰면 4차가 회복된다 — MATLAB spline·SciPy CubicSpline 의 기본값이 not-a-knot 인 데는 이유가 있다.3
5. 최소제곱 근사
데이터가 노이즈투성이일 때는 보간을 버리고 근사로 넘어간다. 최소제곱법(least squares)은 잔차 제곱합을 최소화하는 계수를 찾는다.
모델이 계수에 대해 선형이면(예: 다항식 회귀) 이 문제는 정규방정식 를 푸는 선형대수 문제로 귀결된다. 다만 는 조건수가 나빠지기 십상이라, 실무에서는 정규방정식을 직접 푸는 대신 QR 분해나 특이값 분해(SVD)를 쓴다.4 자세한 실측 비교는 최소자승법 문서에 있다. 통계에서 말하는 선형회귀가 바로 이 최소제곱 근사의 다른 이름이고, 여기에 계수 크기 벌점을 더한 것이 능형회귀다.
노이즈가 없는 함수를 근사할 때조차 보간보다 근사가 유리한 경우가 있다. 등간격 표본 개에 차수 인 다항식을 최소제곱으로 맞추면, 위에서 본 르베그 상수 폭발을 피하면서 데이터를 다 쓸 수 있다. 유리함수까지 허용하면 파데 근사가, 균등오차를 최소화하는 최량근사를 원하면 레메즈(Remez) 알고리즘이 그 자리를 차지한다.
6. 시뮬레이션에서의 역할
보간과 근사는 눈에 잘 안 띄지만 시뮬레이션 파이프라인 곳곳에 박혀 있다.
- 미분·적분의 근사: 유한차분법의 차분 도식은 결국 다항식 보간을 미분한 것이다. 수치적분의 뉴턴-코츠 공식도 마찬가지 — 보간 다항식을 적분한 것이다.
- 격자 간 값 전달: 적응 격자 세분화나 유체-구조 연성에서 서로 다른 격자 사이로 물리량을 옮길 때 보간이 필수다.
- 기저 함수 전개: 스펙트럴 방법은 삼각함수·직교다항식 기저함수로 함수를 근사하는 것이고, 유한요소법의 형상함수는 요소 내부의 보간 함수 그 자체다.
- 후처리 시각화: ParaView 같은 도구가 격자점 값을 매끄러운 컨투어로 그려주는 것도 내부적으로 보간이다.
수렴은 신에게 맡기더라도, 보간만큼은 인간이 제대로 골라 써야 한다. 방법 하나 잘못 고르면 멀쩡한 데이터가 룽게 현상으로 폭발하니까.
7. 관련 문서
- 유한차분법 · 차분 도식
- 스펙트럴 방법
- 룽게-쿠타법
- 유한요소법
- 적응 격자 세분화
- 유체-구조 연성
- 수치미분
- 최소자승법 · 능형회귀
- 체비쇼프 다항식 · 직교다항식 · 기저함수
- 수치적분 · 파데 근사
- 베지어 곡선
- 전산과학
8. Footnotes
-
이걸 개선한 것이 바로 바리센트릭(barycentric) 라그랑주 형식이다. 한 번 가중치 를 계산해두면 평가가 , 점 추가가 으로 싸진다. 교과서엔 잘 안 나오지만 실무 라이브러리(Chebfun 등)는 이걸 쓴다. 이 문서의 검산도 전부 바리센트릭 형식으로 돌렸다. ↩
-
칼 룽게(Carl Runge)가 1901년 논문에서 함수로 시연한 현상. “고차일수록 좋다”는 순진한 믿음을 박살 낸 대표 사례라, 수치해석 첫 수업에서 교수가 학생 기를 죽일 때 애용한다. ↩
-
“스플라인은 4차 정확도”라는 문장은 경계조건이 맞을 때만 참이다. 위 표에서 자연 스플라인이 에 대해 전 구간 2차로 떨어지는 걸 직접 보고 나면, 라이브러리 기본값을 확인하는 습관이 생긴다. 안 생기면 나중에 격자를 네 배로 늘렸는데 오차가 네 배밖에 안 줄어드는 새벽을 맞는다. ↩
-
조건수가 나쁘다는 건, 데이터가 살짝 흔들려도 계수가 크게 요동친다는 뜻이다. 정규방정식은 조건수를 제곱해버리는 만행을 저지르므로, 정밀도가 중요하면 QR/SVD로 우회하는 게 국룰이다. ↩
이 문서의 주요 출처
- J.-P. Berrut & L. N. Trefethen, "Barycentric Lagrange Interpolation", SIAM Review 46 (2004) 501–517
- C. A. Hall & W. W. Meyer, "Optimal error bounds for cubic spline interpolation", J. Approx. Theory 16 (1976) 105–122
- R. B. Platte, L. N. Trefethen & A. B. J. Kuijlaars, "Impossibility of Fast Stable Approximation of Analytic Functions from Equispaced Samples", SIAM Review 53 (2011) 308–318
- L. N. Trefethen, Approximation Theory and Approximation Practice (SIAM) — 저자 공개 자료
- NIST Digital Library of Mathematical Functions §3.3 Interpolation
- N. J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed. (SIAM, 2002)
의견을 반영할게요. 감사합니다.