Bicubic Spline interpolation
참조 : 숙명 여대 보간법.ppt 5장
1. Spline 보간법이란?
주어진 점들 사이를 함수의 구간으로 정의하고 이 사이를 저차 다항식으로 연결하는 방법.
구간 연결 다항식 ~ 스플라인 함수
2. 장단점
- 일반적으로 완만하게 보간하지만 특정구역에서 급격히 변하는 경우도 있다.
- 국부적으로 급격히 변화하는 함수에 우수한 근사값을 제공한다.
3. 조건
주어진 구간 [a, b]가 와 같이 n-1개의 소구간 으로 이루어졌을 때 차수가 k인 spline함수 s(x)는
다음 조건을 만족해야한다.
- s(x)는 소구간에서 k차 이하의 다항식으로 표현된다.
- s(x), s'(x), s''(x),..등의 도함수들은 구간 [a, b]에서 연속이어야 한다.
위 두 조건을 만족하는 최소의 차수는 3차로서, 모든 소구간에서 3차 다항식으로 표시되는 함수를 3차 spline함수라고 한다.
4. 3차 spline 함수, cubic spline
점 로 주어지는 i번째 소 구간에 대한 3차식의 일반형은 다음과 같다.
이제 목적은 i번째 a, b, c, d을 구하는 것이다.
점 을 지나야 함으로
s(x)을 미분해보면 아래와 같다.
점 을 위 미분식에 대입해보면
계수를 구해 보면, 에 대하여 정리
이렇게 계수를 구하고 원식 s(x)에 대입하여 풀면 끝 그러나 계수를 구하려면
을 알아야한다.
는 구간
을 담당한다.
즉, 앞 구간의 끝과 다음 구간의 시작은 값이 당연히 같으며 미분치 또한 같아야한다.
수식으로 써보면 이며
이다.
위 식에 ai-1, bi-1, ci-1을 대입하면
위 수식을 보면 3개의 구간 i-1, i, i+1에 대한 수식으로 3개의 곡선 함수 si-1 , si, si+1이 함쳐져 있다.
직관적으로 풀어보자면 두 구간 평균 기울기의 차-> 곡률 은 2차 미분과 같아야 한다.
i = 2,...., n-1을 대입하면 s = s''로 간략하게 씀
행렬식으로 표현하면
위 식을 풀면 s1,....,sn 까지 구할 수 있다. 그런데 구해진 s1과 sn은 사용안하고 따로 구하는 것 같다.
아무래도 앞뒤가 짤린채로 제대로된 수학식이 유도 안됐기 때문일 것 같다 이점은 나중에 알게되겠지...
s1과 sn을 설정하는 방법은 3가지가 있다고 한다.
1. s1 = sn = 0 : 곡률이 0인경우는 직선, 그러니까 구간 이전/이후에 연결되는 성분을 직선으로 본경우
->h1과 hn-1을 없는 셈 치고 s를 계산
2. s1 = s2 , sn = sn-1 : 곡률이 같은 경우는 ax^2 -> 2a 이차 곡선이다. 3차 이상부터 곡률이 달라짐, ax^3 의 곡률은 6ax
계수 a = 0 이된다.
h1s1 + 2(h1+h2)s2 + h2s3 = (3h1+2h2)s2 + h2s3 , 첫번째 마지막 열 지움.
3. 외삽법: s1은 s2와 s3을 sn은 sn-1과 sn-2을 사용 직선을 연장하여 새로운 점을 구하는 것 같은데 정확히 모르겠음.
5. Example
s1과 sn을 설정하는 법에 따른 오차 비교
위에서 s1 = s2, sn = sn-1일때 5 가 행렬안에 있는이유는 s1과 s2가 합쳐지고 sn-1과 sn이 합쳐져서이다!