
1.6. Інтерполяція сплайнами
Поліноміальна інтерполяція не завжди дає задовільні результати. Зокрема, при представлені поліномами резонансних кривих коливальних систем велика похибка виникає на кінцях цих кривих. Не дивлячись на виконанні умов у вузлах, інтерполяційна функція може мати значні відхилення від функції, яку вона апроксимує між вузлами. При цьому підвищення степеня інтерполяційного полінома не зменшує, а збільшує похибку. Розв’язання цієї проблеми можна здійснити за допомогою сплайни-інтерполяції (від англійського слова spline – рейка, лінійка).
Розглянемо найбільш поширений варіант інтерполяції – інтерполяції кубічними сплайнами. Користуючись законами пружності, можна встановити, що недеформована лінійка між сусідніми вузлами проходить по лінії, яка задовольняє диференціальному рівнянню
(30)
Функцію
будемо використовувати для інтерполяції
функції
,
яка визначена на відрізку
,
а у вузлах
задана значеннями
.
Кубічним сплайном, який інтерполює на відрізку задану функції , називають функцію
(31)
яка задовольняє наступним умовам:
1)
– умова інтерполяції у вузлах сплайна;
2) функція
два рази неперервно диференційовна на
відрізку
;
3) на кінцях відрізка функція
повинна задовольняти умовам
,
(крайовим умовам).
Для побудови сплайна потрібно
знайти
коефіцієнтів
.
Із визначення сплайна одержуємо співвідношення вигляду:
;
. (32)
Із умов гладкого стикування
сусідніх участків сплайна (неперервність
функції, її першої та другої похідних)
одержимо ще
умови:
. (33)
Із умов на кінцях відрізка одержимо ще 2 умови:
. (34)
Таким чином, маємо співвідношень для знаходження коефіцієнтів сплайна.
Із співвідношення (31) знайдемо
співвідношення для першої та другої
похідних функції
:
(35)
Підставляючи вирази функції (31) та її похідних (35) в співвідношення (32)-(34) і приймаючи до уваги співвідношення
,
(36)
одержимо наступну систему рівнянь:
(37)
, (38)
(39)
(39)
(39)
(40)
(41)
Таким чином задача інтерполяції
звелась до розв’язання системи (37) –
(41). Із рівняння (38) випливає, що всі
коефіцієнти
.
Підставивши співвідношення (37), (38) в
(39) і використовуючи фіктивний коефіцієнт
,
одержимо співвідношення між
і
:
.
Звідси знаходимо коефіцієнти
за формулою
. (42)
Із (39) і (40) виразимо
через
( з врахування коефіцієнта
)
. (43)
Підставивши (43) в (42), одержимо
. (44)
Введемо позначення
,
(45)
після чого співвідношення (42) набуде вигляду:
. (46)
Підставивши (46) і (43) в співвідношення (39), одержимо систему відносно :
(47)
. (48)
Систему (47), (48) можна розв’язати методом прогонки, який в даному випадку зводиться до знаходження прогоночних коефіцієнтів за формулами прямої прогонки:
(49)
(50)
після чого, коефіцієнти знаходяться за формулами оберненої прогонки:
(51)
Після знаходження коефіцієнтів за формулами (51) знаходимо коефіцієнти і за формулами (46) і (43).
Таким чином алгоритм обчислення коефіцієнтів інтерполяційного сплайна складається з наступних кроків:
Крок 1. Обчислюємо (або задаємо)
масиви значень
,
;
Крок 2. Обчислюємо масиви
значень
,
за формулами (36), (45);
Крок 3. Обчислюємо масиви
значень прогоночних коефіцієнтів
,
за формулами (49), (50);
Крок 4. Обчислюємо масив
значень коефіцієнтів
за
формулою (44);
Крок 5. Обчислюємо масив
значень коефіцієнтів
за
формулою (43).
Після цього можна користуватись формулою (31).