Пусть задана таблица значений функции f (xi) = yi (), в которой они расположены по возрастанию значений аргумента: x 0 < x 1 < … < xn. Чтобы построить кубический сплайн, требуется определить коэффициенты ai 0, ai 1, ai 2, ai 3, которые задают интерполяционный кубический многочлен
на каждом интервале интерполирования [ xi -1, xi ], .
Таким образом, необходимо определить 4 n коэффициентов aij (, ), для чего требуется 4 n уравнений. Необходимые уравнения определяются следующими условиями.
1. Условия непрерывности функции:
2. Условия непрерывности 1-х и 2-х производных функции:
3. Граничные условия:
Часто используются граничные условия вида . Получаемый при этом сплайн называется естественным кубическим сплайном.
Задача определения кубического сплайна существенно упрощается при использовании многочлена Эрмита. Кубический многочлен Эрмита на интервале [ xi- 1, xi ] определяется с помощью значений функции yi -1, yi и ее производных y ¢ i -1, y ¢ i. Так как значения производных в общем случае могут быть неизвестны, обозначим их как y ¢ i -1 = Si -1; y ¢ i = Si. При построении сплайна переменные Si называются наклонами сплайна в соответствующих точках xi.
|
|
Запишем многочлен Эрмита для интервала [ xi- 1, xi ], где hi = xi - xi- 1:
При таком выборе кубического многочлена автоматически выполняются условия непрерывности функции и ее первых производных:
Чтобы определить сплайн, нужно задать условия непрерывности второй производной:
Для записи этих условий в развернутом виде определим кубический многочлен Эрмита на интервале [ xi, xi +1], где hi +1 = xi +1 - xi:
Определим вторые производные многочленов Qi (x) и Qi +1(x) в точке x = xi:
(4)
(5)
Отсюда условие непрерывности вторых производных имеет вид:
(6)
Это условие порождает систему линейных уравнений относительно наклонов сплайна Si, которая содержит n - 1 уравнение и n + 1 переменную. Чтобы определить два недостающих уравнения используются граничные условия. Например, для естественного кубического сплайна:
Указанные граничные условия могут быть получены из уравнения (5) для i = 0 и из уравнения (4) для i = n соответственно. В развернутом виде:
(7)
Решение системы линейных уравнений, образованной условиями (6) и (7), позволяет вычислить наклоны сплайна Si (i = ) и определить кубический сплайн путем записи многочлена Эрмита для каждого интервала [ xi- 1, xi ], i = .