주어진 데이터를 interpolation을 할 때 3차 spline을 많이 사용한다. 그럼 왜 3차 일까? 데이터를 연결하는 spline은 되도록이면 부드럽게 연결되어야 한다. 곡선이 부드럽게 그려지기 위해서는 급격한 꺾임이 없어야 하는데 얼마나 급격히 꺾이는가는 곡률에 비례하고, 곡률은 그 지점에서 함수의 두 번 미분값에 비례한다.(곡선의 곡률: https://kipl.tistory.com/105) 따라서 어떤 함수 $f(x)$가 구간 $[a,b]$에서 얼마나 부드럽게 연결되는가에 대한 척도는 곡선의 각부분에서 곡률의 크기의 제곱을 를 더한 다음 (음수가 아닌) 적분이 제공할 수 있다.
$$ \kappa[f] = \int_a^ b( f'' (x))^2 dx $$
$a \le x \le b$ 구간에서 균일하게 샘플링된 데이터가 있고 이들을 보간하는 3차 spline이 $S(x)=\{S_i(x) = a_i x^3 + b_i x^2 + c_i x +d_i\} $라고 하자. 또 두 번 이상 미분가능한 임의의 함수 $f(x)$도 주어진 샘플링 데이터를 지나가는 보간함수라고 하자. 이 경우 natural cubic spline이 주어진 sampling 데이터를 지나가면서 가장 부드럽게 이어지는 곡선임을 보일 수 있다.
$$ \kappa [f] \ge \kappa [S] \qquad \forall~ f$$
Spline $S$와 함수 $f$의 차이를 $h(x)= f(x) - S(x)$라 하면 각 node에서 $h(x_i)=0$이다. 이제
$$ \kappa [f] = \int_a^b (h''(x) - S''(x))^2 = \kappa [h] + \kappa [S] - 2 \int_a^b h''(x) S''(s) dx $$
그런데, cubic spline의 경우 각 node에서 2차 미분이 연속이므로
\begin{align} \int_a^b h''(x) S''(x) dx &= h'(x) S''(x)\Big|_a^b - \int _a^b h'(x) S'''(x)dx \\ &=h'(b)S''(b)-h'(a)S''(b) - \sum_i \int_{x_i}^{x_{i+1}} h'(x) S_i '''(x) dx \\ &=h'(b)S''(b)-h'(a)S''(a)- \sum_i \int_{x_i}^{x_{i+1} } h'(x) (6 a_i) dx \\ &= h'(b)S''(b)-h'(a)S''(a)- 6\sum_i a_i \left[ h(x_{i+1})- h(x_i) \right] \\&= h'(b)S''(b)-h'(a)S''(a) \end{align} $$ \therefore \quad \kappa [f] = \kappa[h]+\kappa[S]+ h'(b)S''(b)-h'(a) S''(a)$$
임의의 곡선 $h$에 대해서 $\kappa[h]\ge 0$이므로, 양끝에서 2차 미분이 $S''(a)=S''(b)=0$으로 고정된 natural cubic spline은
$$ \kappa[f] \ge \kappa [S]$$
이므로 주어진 샘플링 데이터를 곡률척도가 가장 작게 즉, 가장 부드럽게 보간하는 곡선임을 알 수 있다.
'Computational Geometry' 카테고리의 다른 글
Derivatives of Bezier Curves (1) | 2024.04.12 |
---|---|
Least Squares Bezier Fit (0) | 2024.04.05 |
Natural Cubic Spline (0) | 2024.03.11 |
Approximate Distance Between Ellipse and Point (0) | 2024.03.08 |
Distance from a Point to an Ellipse (0) | 2024.03.06 |