보간은 점 사이를 매끄럽게 잇는다
우리 손에 들어오는 건 늘 띄엄띄엄한 점들이에요. 센서가 1초마다 잰 온도, 표에 적힌 몇 개의 값, 애니메이션의 키프레임 몇 장. 그 사이사이가 궁금할 때, 점들을 지나는 매끄러운 함수 하나를 세워 빈칸을 메우는 게 보간이에요. 테일러가 한 점의 미분 정보로 곡선을 흉내냈다면, 보간은 여러 점의 위치 정보로 곡선을 세워요. N개의 점은 차수 N-1 다항식 하나를 유일하게 정하죠. 그런데 점을 무작정 늘리면 오히려 곡선이 미쳐 날뛰는 함정(룽게 현상)이 있어요. 그래서 실전에선 점을 영리하게 배치하거나, 구간마다 낮은 차수로 이어 붙이는 스플라인을 써요. 보간은 그래픽, 애니메이션, 데이터 분석, 수치적분의 바탕이에요.
점들의 높이를 끌어 보세요. 어떻게 옮겨도 다섯 점을 모두 정확히 지나는 매끄러운 곡선 하나가 따라와요. 이게 보간 다항식이에요. 두 점은 직선(1차) 하나, 세 점은 포물선(2차) 하나, 다섯 점은 4차 하나. N개의 점이 차수 N-1 다항식을 유일하게 정해요. 더도 덜도 아니에요. 점 사이를 잇는 곡선은 무수히 많지만, 차수 N-1 다항식이라는 조건을 걸면 답은 딱 하나로 못 박혀요. 보간의 출발점이에요.
그 유일한 다항식을 어떻게 적을까요? 라그랑주의 방법이 우아해요. 각 노드마다 기저 함수 Lᵢ 를 하나씩 만들어요. Lᵢ 는 자기 노드에선 값이 1, 다른 모든 노드에선 0 이 되도록 설계된 다항식이에요. 세그먼트를 눌러 하나씩 살펴보세요. 그러면 보간 다항식은 그냥 이 기저들을 높이 yᵢ 로 가중합한 거예요. P(x) = Σ yᵢ Lᵢ(x). 어떤 노드 xk 에 넣어 보면, Lk 만 1 이고 나머지는 0 이라 P(xk) = yk. 모든 점을 정확히 지나는 게 공짜로 보장돼요. 연립방정식을 풀 필요도 없이요.
점이 많을수록 더 정확하겠지, 라고 생각하기 쉬워요. 함정이에요. 종 모양의 룽게 함수를 등간격 점들로 보간해 보세요. 점 개수를 늘릴수록 가운데는 좋아지는데, 양 끝에서 곡선이 위아래로 미친 듯이 출렁여요. 차수 15쯤 가면 끝의 오차가 함수 값보다 몇 배나 커져요. 이게 룽게 현상이에요. 고차 다항식은 노드 사이에서 자유롭게 휘려는 성질이 있어서, 점을 촘촘히 박을수록 그 사이에서 더 크게 출렁여요. 교훈은 분명해요. 보간에서 차수를 무작정 올리는 건 답이 아니에요.
그럼 답은 뭘까요? 놀랍게도, 보간 방법은 그대로 두고 점을 어디 두느냐만 바꾸면 돼요. 등간격 대신 체비쇼프 배치로 토글해 보세요. 이건 점들을 양 끝으로 갈수록 더 촘촘하게 모으는 배치예요. 같은 개수, 같은 라그랑주 보간인데 끝의 폭발이 거짓말처럼 가라앉아요. 직관은 이래요. 다항식이 끝에서 출렁이려 하니까, 끝에 점을 더 많이 박아 그 출렁임을 미리 눌러 두는 거예요. 망원경 거울 설계나 함수 근사에서 체비쇼프가 황금 표준인 이유예요. 문제는 보간이 아니라 점의 배치였어요.
점의 위치를 내가 못 고르고 주어진 그대로 써야 할 때도 많아요. 그럴 땐 아예 전략을 바꿔요. 곡선 전체를 하나의 고차 다항식으로 덮는 대신, 이웃한 두 점씩만 보는 낮은 차수(3차) 조각들을 매끄럽게 이어 붙여요. 이게 3차 스플라인이에요. 점을 늘려 보면 금색 다항식은 끝에서 출렁이는데 파란 스플라인은 참값에 딱 붙어요. 한 조각이 멀리 있는 점의 영향을 안 받으니까(국소성), 한 군데 출렁임이 전체로 번지지 않아요. 글꼴의 곡선, 자동차 차체 설계(CAD), 애니메이션 경로가 다 스플라인이에요. 보간은 점을 잇는 일을 넘어, 어떻게 이을지를 고르는 일이에요.