1.2. Специальная форма записи сплайна.
Рассмотрим отрезок . Введем следующие обозначения переменных:
|
(7) |
Здесь - длина отрезка ,
, - вспомогательные переменные,
x – промежуточная точка на отрезке .
Когда x пробегает все значения на интервале , переменная изменяется от 0 до 1, а изменяется от 1 до 0.
Пусть кубический многочлен на отрезке имеет вид:
|
(8) |
Номер сплайна совпадает с индексом конечной точки отрезка . Для записи сплайна на соседнем i-ом участке достаточно в (8) уменьшить все индексы на единицу:
|
(3.9) |
Переменные и определяются применительно к конкретному отрезку интерполяции.
Найдем значение сплайна на концах отрезка . Точка является начальной для отрезка , поэтому =0, =1 и в соответствии с (3.8): .
На конце отрезка =1, =0 и .
Для интервала точка является конечной, поэтому =1, =0 и из формулы (9) получаем: . Таким образом, выполняется условие непрерывности функции S(x) в узлах стыковки кубических многочленов независимо от выбора чисел i .
Для определения коэффициентов i , i=0,…n продифференцируем (8) дважды как сложную функцию от x. Тогда
, |
(10) |
где
|
(11) |
Уменьшая в (10) индекс i на единицу, получим:
|
(12) |
Определим вторые производные сплайна и :
|
(13) |
|
(14) |
Для многочлена точка является началом отрезка интерполяции и =0, =1, поэтому
|
(15) |
Для сплайна точка является концом отрезка интерполяции и =1, =0. Отсюда
|
(16) |
Из (15) и (16) следует, что на отрезке [a,b]сплайн-функция, «склеенная» из кусков многочленов 3-го порядка, имеет непрерывную производную 2-го порядка.
Чтобы получить непрерывность первой производной функции S(x), потребуем во внутренних узлах интерполяции выполнения условия:
|
|
Определим (10) и (12) в точке :
Приравнивая полученные выражения, приходим к системе уравнений:
|
(17) |
Для естественного кубического сплайна , следовательно, система уравнений будет иметь вид:
|
(18) |
Решаемая система уравнений является линейной, а ее матрица трехдиагональной, симметричной. Такая матрица является невырожденной, и коэффициенты определяются из системы (18) однозначно.
Если же требуется найти S(x) с краевыми условиями (3.5), то это приведет к дополнительным условиям:
|
|
и система уравнений (17) будет иметь вид:
|
(19) |
Для краевых условий (6) получим:
|
(20) |
и система уравнений (17) будет иметь вид:
|
(21) |
Пример.
Исходные данные:
i |
0 |
1 |
2 |
3 |
|
1 |
2 |
2.5 |
3 |
Заменить функцию интерполяционным кубическим сплайном, значения которого в заданных узловых точках (см. табл.) совпадают со значениями функции в этих же точках. Рассмотреть разные краевые условия.
-
Рассчитаем значение функции в узловых точках. Для этого подставим в заданную функцию значения из таблицы.
-
Для разных краевых условий (4), (5), (6) найдем коэффициенты кубических сплайнов.
-
Рассмотрим первые краевые условия.
-
|
|
В нашем случае n=3, , , . Чтобы найти используем систему уравнений (3.18):
|
|
Вычислим и , используя формулы (7) и (11):
Подставим полученные значения в систему уравнений:
.
Решение системы:
С учетом первых краевых условий коэффициенты сплайна:
-
Рассмотрим определение коэффициентов сплайна с учетом краевых условий (3.5):
|
|
Для n=3 система уравнений (19) примет вид:
|
(21) |
Найдем производную функции :
Вычислим и :
Подставим в систему уравнений (21) значения и :
|
|
Решение системы уравнений:
|
|
-
Рассмотрим третьи краевые условия (6).
|
|
Используя формулу (20) определим 0 и 3:
|
|
Найдем вторую производную функции :
|
|
Вычислим и :
|
|
и
|
|
Система уравнений (21)для определения , :
|
|
С учетом конкретных значений:
|
|
и вектор коэффициентов:
-
Рассчитаем значения кубического сплайна S(x) в серединах отрезков интерполяции.
Середины отрезков:
Для вычисления значения кубического сплайна в серединах отрезков интерполяции воспользуемся формулами (7) и (9).
3.1.
Найдем и :
В формулу (3.9) подставляем коэффициенты , для краевых условий (4), (5), (6):
3.2.
Найдем и :
В формулу (9) подставляем коэффициенты , для краевых условий (4), (5), (6):
3.3.
Найдем и :
В формулу (9) подставляем коэффициенты , для краевых условий (4), (5), (6):
Составим таблицу:
|
(1 кр.усл.) |
(2 кр.усл.) |
(3 кр.усл.) |
f(x) |
|
2.044 |
2.026 |
2.026 |
|
|
3.389 |
3.364 |
3.362 |
|
|
3.378 |
3.476 |
3.479 |
|