Апроксимація сплайнами.
Якщо функція f(х) задана своїми значеннями в (n + 1) – точці, то її можна апроксимувати інтерполяційним поліномом Лагранжа або Ньютона Рn(x) степені n . Але при великих n виникають пульсації многочлена Рn(x) між вузлами (оскільки він має точки максимуму і мінімуму у дійсних нулях похідної). Усунути це можна зменшенням степені полінома, інтерполюючи тільки частину точок (кускова інтерполяція). Тоді для всієї множини точок одержується результуюча “зшита” або “склеєна” крива, яка неперервна на всьому інтервалі, але у вузлах “склеювання” окремих кривих її похідні матимуть розрив. Похибка такого наближення може виявитися значною. Крім того, таке наближення неможливе у тих випадках, коли важливе значення має гладкість апроксимуючої функції.
У ряді випадків інтерполяційний поліном Рn(x) може не наближатись до f(х) при n → ∞ навіть для диференційованої довільне число разів функцій, наприклад, функції
–функція Рунге на відрізку [-1,1]
для якої
Як видно з рисунку, розходження відбувається в інтервалі 0,726…≤│х│< 1.
Побудова полінома невисокої степені для великого числа точок методом найменших квадратів не забезпечує задовільну відповідність кривої заданим точкам (сума квадратів різниць між значеннями многочлена і функції в даних точках хоча і мінімальна, але значна). Підвищення ж степені многочлена приводить до значного ускладнення в обчисленнях.
Останнім часом в теорії апроксимації широкого використання набули сплайни (spline-рейка, пружний брусок), які дозволяють в деякій мірі усунути недоліки класичних методів наближення.
Гладкість і гнучкість сплайнів обумовлює їх широке використання в машинній графіці, САПР, а також в математиці. Сплайни мають ряд переваг:
простота реалізації на ЕОМ;
висока точність апроксимації одночасно і функції і її похідних;
в ряді випадків дозволяють отримати наближення з мінімально можливою похибкою на даному класі функцій (порівняно з іншими методами).
Інтерполяція кубічними сплайнами. Одержали найбільш широке застосування в інженерній практиці. Це обумовлено тим, що поліном 3-го порядку є найпростішою кривою, яка має точку перегину, що забезпечує її хороші інтерполяційні можливості. Кубічні сплайни мають на всьому відрізку апроксимації неперервні похідні до другого порядку. Така гладкість звичайно достатня для більшості практичних задач. Невисока степінь полінома спрощує обчислення і зменшує похибку обчислення.
Візьмемо n + 1 [х0…xn, у0…уn] експериментальних точок, або точок, які задовольняють деяку функцію. При сплайновій інтерполяції (кубічній) виконуються наступні умови:
через кожні дві сусідні точки проводять поліном третьої степені;
для і-го полінома Рі, який проходить через точки з координатами хі-1, уі-1 і хі, уі є справедливою умова інтерполяції
; (1), (2)
Для n = 4 з’єднання інтерполюючих поліномів Р1(х)… Р4(х) буде таким:
Перехід від полінома Рі, що з’єднує точки ( хі-1, уі-1 ), та ( хі, уі ) до полінома Рі+1, котрий проходить через точки ( хі, уі ) та ( хі+1, уі+1 ), повинен бути плавним (без зламів). Щоб виконалась ця умова, значення першої та другої похідної сусідніх поліномів Рі та Рі+1 в їх спільній точці ( хі, уі ) повинні бути рівні
(3)
(4)
Таким чином, для всіх внутрішніх поліномів формалізовані чотири умови, котрі достатні для побудови цих поліномів.
Обидві кінцеві точки ( на кінцях відрізку апроксимації ) мають тільки по одній сусідній. Тому для кінцевих поліномів потрібні додаткові умови. Будемо вважати, що точки, які лежать зовні інтервалу [ x0, xn ], можна апроксимувати прямими; тоді одержимо ще дві додаткові умови
(5)
(6)
Таким чином, маємо шість умов (1) – (6).
Кубічний поліном будемо шукати у вигляді:
(7)
Необхідно визначити коефіцієнти для кожного полінома Рі(х). Таких коефіцієнтів всього 4n , де n – число інтерполяційних поліномів на відрізку [ x0, xn ].
Із умови (1) маємо (при х = хі-1) враховуючи (7)
(8)
Із умови (2) випливає, що
(9)
де
Для того, щоб використати умови рівності першої та другої похідних двох сусідніх поліномів (3), (4) необхідно знайти похідні
(10)
(11)
Із умов неперервності першої (3) і другої (4) похідних випливає:
а)
Отже
(12)
б)
Звідси
або
(13)
Умови (12) та (13) справедливі для всіх внутрішніх поліномів, тобто .
Таким чином ми маємо систему рівнянь
(14)
Для перших двох рівнянь системи
індекс і змінюється .
Для наступних двох рівняннях індекс і змінюється в межах . Отже, із системи (14) можна однозначно визначити 2·n + 2( n – 1 ) = 4·n – 2 коефіцієнтів типу . Всього їх 4n. Значення двох решти коефіцієнтів можна отримати, використовуючи умови (5) і (6).
Використовуючи (11) і (5), можна записати
Звідси (15)
Використовуючи (11) і (6), одержимо
Отже, (16)
Таким чином, рівняння (14), (15), (16) дають змогу знайти 4n коефіцієнтів (), оскільки це системи алгебраїчних рівнянь, які можна розв’язати відомими методами. Однак цю систему рівнянь можна звести до більш зручного вигляду ( дає економію машинного часу ).
З умови (13) знайдемо, що
(17)
Крім того, врахувавши (16), маємо
(18)
Підставивши вираз (17) в рівняння (9)
одержимо
,
або .
Об’єднаємо коефіцієнти с
Оскільки з (8) пам’ятаємо, що , то перепишемо:
Звідси (19)
оскільки , то одержимо
(20)
Підставляючи в рівняння (12) вирази для та , одержимо систему рівнянь, що складається виключно із коефіцієнтів с:
, враховуючи, що
; (формула 19)
; (формула 19)
(формула 17)
Після перетворення одержимо для визначення сі наступну систему:
(21)
с1 = 0; сn+1 = 0. (22)
Система лінійних рівнянь (21) з умовами (22) розв’язується методом прогонки.
Знайшовши сі з (21) просто знайти далі коефіцієнти di з (17), (18), а з (19), (20) коефіцієнти bi .
Коефіцієнти аі шукаються із (14) аі = уі-1 .