Сплайн-інтерполяція - студопедія
При великій кількості вузлів інтерполяції доводиться використовувати інтерполяційні поліноми високого ступеня, що створює певні незручності при обчисленнях. Можна уникнути високого ступеня інтерполяційного многочлена, розбивши відрізок інтерполяції на кілька частин з побудовою на кожній частині самостійного интерполяционного многочлена. Однак таке інтерполювання має істотний недолік: в точках зшивання різних інтерполяційних поліномів буде розривної їх перша похідна, тому для вирішення завдання кусочно-лінійної інтерполяції використовують особливий вид кусочно-поліноміальної інтерполяції - сплайн-інтерполяцію.
Сплайн - це функція, яка на кожному частковому відрізку інтерполяції є алгебраїчним многочленом, а на всьому заданому відрізку неперервна разом з кількома своїми похідними.
Нехай інтерпольованої функції f (x) задана своїми значеннями у вузлах. . Позначимо довжину часткового відрізка. Будемо шукати кубічний сплайн на кожному з часткових відрізків у вигляді:
де - четвірка невідомих коефіцієнтів. Можна довести, що завдання знаходження кубічного сплайна має єдине рішення.
Зажадаємо збігу значень у вузлах з табличними значеннями функції:
Число цих рівнянь (2n) в два рази менше числа невідомих коефіцієнтів. Для того щоб отримати додаткові умови, будемо вимагати також безперервності першої і другої похідних сплайна в усіх точках, включаючи вузли. Для цього слід прирівняти ліві і праві похідні. . . у внутрішньому вузлі.
Обчисливши вирази для похідних. послідовним диференціюванням (5.27):
знайдемо праві і ліві похідні в вузлі:
Аналогічно робимо для другої похідної:
Прирівнявши ліві і праві похідні, отримуємо:
Рівняння (5.32), (5.33) дають ще 2 (n -1) умов. Для одержання відсутніх рівнянь накладають вимоги до поведінки сплайна на кінцях відрізка інтерполяції. Якщо зажадати нульової кривизни сплайна на кінцях відрізка інтерполяції (тобто рівність нулю другої похідної), то отримаємо:
Виключивши з рівнянь (5.28) - (5.33) n невідомих. отримуємо систему рівнянь:
Система (5.35) складається з 3n рівнянь. Вирішивши систему (5.35), отримуємо значення невідомих. що визначають сукупність всіх формул для шуканого интерполяционного сплайна
Програма, що реалізує метод сплайн-інтерполяції виявляється досить громіздкою, тому ми обмежимося обговоренням рішення задачі про інтерполяції синуса за допомогою сплайнів, використовуючи функції пакета MathCAD: interp (VS, x, y, z), lspline (x, y), pspline (x , y), cspline (x, y).
Документ пакету MathCAD, що містить рішення задачі сплайн-інтерполяції, складається з наступних блоків.
1. Завдання табличних значень інтерпольованої функції
2. Обчислення коефіцієнтів сплайнів, що наближаються до граничних точках, як пряма лінія, парабола, поліном третього ступеня, відповідно.
3. Завдання дискретної сітки для обчислення значень сплайнів
Np: = 1000 i: = 0. Np Xi: = Np
4. Обчислення значень сплайнів в вузлах сітки
5. Візуалізація сплайнів (рис. 5.6)
6. Побудова різниці між сплайнами різного типу в вузлах координатної сітки (рис. 5.7)
7. Обчислення значень перших похідних сплайнів


8. Побудова графіків перших похідних сплайнів (рис. 5.8)
9. Обчислення значень других похідних сплайнів


9. Побудова графіків других похідних сплайнів (рис. 5.9)
10. Обчислення значень третє похідних сплайнів
11. Побудова графіків третє похідних сплайнів (рис. 5.10)

Як видно з рис. 5.8-5.10, перша і друга похідні сплайнів є безперервними функціями, третя і похідні вищого порядку - розривними функціями.