Сплайн-интерполяция.

Определение 3.2 Сплайн (англ. spline - рейка, линейка) - это определенная в некоторой области GRn кусочно-полиномиальная функция из класса Cr(G).

Таким образом в соответствии с определением существует разбиение области G на подобласти такое, что внутри каждой подобласти сплайн представляет собой полином некоторой степени М.

Определение 3.3 Интерполяция при помощи сплайнов называется сплайн-интерполяцией.

Рассмотрим одномерный случай (n=1) и наиболее употребительную кубическую сплайн-интерполяцию (M=3) из класса C2 (r=2).

Математическая постановка.

Пусть известные значения некоторой функции f(x) образуют таблицу 3.2 на отрезке [a,b], где ax0 < x1 < ... < xN b

x x0 x1 ... xN
f f0 f1 ... fN

Таблица 3.2: Табличная функция.

Требуется построить по данной таблице интерполяционный кубический сплайн из класса C2, то есть функцию g(x) со следующими свойствами:

1) g(x)C2 [a,b]

2) на любом отрезке [xi-1 , xi], i = 1, ..., N функция g(x) является полиномом третьей степени,

3) g(xi ) = fi , i = 0, ..., N.
Для однозначного решения этой задачи добавим следующее часто используемое условие:

4) g''(a)=g''(b)=0

ТЕОРЕМА 3.3 Функция, удовлетворяющая свойствам 1)-4), существует и единственна.

ДОКАЗАТЕЛЬСТВО Так как по свойству 1) функция g''(x) непрерывна на [a,b] и по свойству 2) линейна на каждом отрезке [xi-1 - x], i= 1, ...,N то можно записать x[xi-1,xi] следующее представление:

g''(x) = mi-1(xi - x)/hi + mi(x - xi-1 )/hi (3.7)

где hi=xi-xi-1 , mi=g''(xi). Проинтегрируем равенство (3.7) дважды. Получим:

g(x) = mi-1(xi - x)3/6hi + mi(x - xi-1 )3/6hi + Ai(xi - x)/hi + Bi(x - xi-1 )/hi (3.8)

где Ai, Bi - некоторые константы интегрирования. Найдем Ai и Bi, подставляя значения xi и xi-1 в (3.8):

fi = g(xi ) = mi hi2/6 + Bi , следовательно, Bi = fi - mi hi2/6

fi-1 = g(xi-1 ) = mi-1 hi2/6 + Ai , следовательно Ai = fi-1 - mi-1 hi2/6

Подставляя Ai и Bi в (3.8) получим равенство:

g(x) = mi-1(xi - x)3/6hi + mi(x - xi-1 )3/6hi + (fi-1 - mi-1 hi2/6)(xi - x)/hi + (fi - mi hi2/6)(x - xi-1 )/hi (3.9)

Тогда производная функции g(x) на [xi-1,xi] имеет вид:

g'(x) = -mi-1(xi - x)2/2hi + mi(x - xi-1 )2/2hi + mi-1 hi/6 - mi hi/6 + (fi - fi-1 )/hi (3.10)

Пользуясь формулой (3.10) найдем односторонние (слева и справа) пределы функции g'(x) в точках xi , i = 1, ..., N:

g'(xi - 0) = mi-1 hi /6 + mi hi /3 + (fi - fi-1 )/hi;
g'(xi + 0) = -mi hi+1 /3 - mi+1 hi+1 /6 + (fi+1 - fi )/hi+1

(последнее равенство получено из (3.10) заменой индекса i на i+1, то есть переходом на отрезок [xi,xi+1]). Так как по свойству 1) функция g'(x) непрерывна на отрезке [a,b], то приравнивая g'(xi+0) и g'(xi-0), i = 1, ..., N-1 получаем N-1 уравнение:

mi-1 hi /6 + mi (hi + hi+1 )/3 + mi+1 hi+1 /6 = (fi+1 - fi )/hi+1 - (fi - fi-1 )/hi , i = 1, ..., N-1 (3.11)

Учитывая, что по свойству 4) имеют место равенства

g''(x0)m0=0, g''(xN)mN=0 (3.12)

получаем линейную алгебраическую систему для нахождения неизвестных m1 , ..., mN-1:

(3.13)

где

Очевидно, что матрица A имеет строгое диагональное преобладание. Но из курса алгебры известно, что такие матрицы невырождены.

Следовательно, система однозначно разрешима относительно вектора , а тем самым функция со свойствами 1)-4) существует, единственна и представляется формулой (3.9).

ЗАМЕЧАНИЕ 3.7 На практике сплайн вычисляется на каждом отрезке [xi-1 , xi], i = 1, ..., N по формуле (3.9), с использованием табличной функции 3.2, равенств (3.12) и вектора , являющегося решением системы (3.13).

Оценку погрешности при сплайн-интерполяции дает следующее

УТВЕРЖДЕНИЕ 3.3 [3, стр.148] Если интерполируемая функция f(x) C 4[a,b], то для функции погрешности R(x)=f(x)-g(x) справедливо неравенство:

(3.14)

где

Меньше ограничений на функцию f(x) накладывает

УТВЕРЖДЕНИЕ 3.4 [11, стр.98] Если интерполируемая функция f(x)C 3[a,b] и разбиение отрезка [a,b] узлами интерполяции является равномерным (h=hi=const), то для функции погрешности R(x)=f(x)-g(x) справедливо неравенство:

(3.15)

где