’)
Типічний
графік кубічного В-сплайну показано на мал. 3:
Мал. 3 - Типічний графік кубічного
В-сплайну
2.2
Базис у просторі кубічних сплайнів
Функція
:
а) двічі
неперервно диференційовна на відрізку ;
б)відмінна
від нуля тільки на чотирьох відрізках
Відрізок
називають носієм функції [6].
Доповнимо
розбиття допоміжними вузлами:
,взятими довільно.
За розширеною
сіткою:
:можна побудувати сім’ю з кубічних В-сплайнів:
,
Ця сім’я
утворює базис в просторі кубічних сплайнів на відрізку .
Тим самим довільний кубічний сплайн , побудований по розбиттю
із вузла,
може бути представлений на цьому відрізку в вигляді лінійної комбінації:
Умовами
задачі коефіцієнти цього розбиття визначаються однозначно
[7].
2.3
Задачі інтерполяції з граничними умовами першого та другого роду
У випадку
коли задані значення функції в вузлах сітки і значення і першої
похідної функції на кінцях сітки (задача інтерполяції з граничними умовами першого
роду), коефіцієнти обчислюються із системи наступного
вигляду:
, де (16)
Після
виключення і отримується
лінійна система з невідомими і 3-діагональною матрицею,
яку можна розв’язати, як методом Гауса, так і методом прогонки [8].
При розв’язанні
задачі інтерполяції другого роду використовують значення похідних другого порядку
на кінцях сітки: і . І коефіцієнти
вже обчислюються із системи:
(16’)
таким
самим чином, як і під час розв’язування задачі інтерполяції першого роду.
2.4
Апроксимація кубічними В-сплайнами
Нехай
задана таблиця чисел і , котрі
є значеннями функції і її першої похідної у вузлах ai, i =0,1, ...,
N. Необхідна апроксимувати функцію W(a) з допомогою цих
даних.
Розглянемо
апроксимацію кубічними В-сплайнами. Конструкція нормованого
кубічного
В-сплайна зазвичай задається так:
(17)
В правій
частині (17) стоять многочлени третього степеня виду:
(18)
Коефіцієнти
ai , bi , ci , di визначаються
із системи чотирьох рівнянь, отриманих при умовах: и . В результаті її розв’язку можна записати:
(19)
, ,
При конкретизації
виразу (18) використовуються формули (19), що задовольняють умови стику у вузлах
ai-2, ai-1, ai , ai+1 для сплайнів:
Та їх
похідних по a, позначених штрихом:
(21)
В роботі
Б.Зав’ялова [6] для рівномірної сітки i=0,1,
... , N, задовольняючи наступні умови (20), (21), отримано такий вираз для
Тут , а також
з’ясовано, що S0=2/3, S*=1/6, S**=1/2h.
Загальний
інтерполяційний вираз, в якому використовуються нормовані кубічні В-сплайни
(22), записуються так:
, (23)
де , а . Коефіцієнти
bi+1,bi+2 визначаються
із умов, що задовольняють значення функції W(a), відомих в деяких
вузлах . Зазвичай
вибирають , , а задовольняють нерівність: .
Запишемо
(23) в розгорнутому вигляді. Для цього, використавши (22) отримаємо всі вирази для
. Сплайн отримаємо
із четвертої рівності (22), якщо там формально замінити x на 1+ x . Тоді
(24)
Вираз
для береться безпосередньо із (22)
(25)
Сплайн
записується на основі другої рівності (22)
шляхом формальної заміни x на x-1
(26)
І, нарешті
із першого виразу (22), замінюючи x на x-2, отримаємо:
. (27)
Тоді остаточний
варіант інтерполяційного виразу, основаного на застосуванні нормованих кубічних
В-сплайнів, отримаємо шляхом підстановки виразів (24)-(27) в (23)
(28)
Вираз
(28) дає четвертий порядок апроксимації функції по кроку
h 0( h4 ) . Якщо в формулі (28) виключити коефіцієнти,
виразивши їх через значення апроксимуючої функції у вузлах, то отримаємо:
, де (29)
(30)
Більш
високий порядок апроксимації можна отримати за допомогою так званих напружених
сплайнів, при цьому інтерполяційний вираз (29) зберігає свій вигляд, а функції,
які входять до його складу задаються так:
, (31) де
; ; ;
; ; .
Інтерполяційний
вираз виду (29) використовується, як для визначення шуканих величин між вузлами
координатної сітки, так і для апроксимації частинних похідних, котрі входять до
складу повної системи рівнянь [8].
2.5
Практичність вивчення кубічних В-сплайнів у вищих навчальних закладах
В-сплайни
є більш практичні у використанні ніж природні сплайни, оскільки поліноміальні коефіцієнти
природних сплайнів вимагають всіх вузлових точок. Їх обчислення
залучає розв’язання вимірних матриць. У цьому є два
недоліки: переміщення однієї вузлової точки зачіпає всю криву і під час розв’язування
матриці можна зіткнутися з швидкою зміною кривої. З іншого боку, В-сплайни складаються
з сегментів кривих, залежних тільки від кількох вузлових точок. Це називається локальним
контролем. Таким чином, переміщення вузлової точки зачіпає тільки маленьку частину
кривої. B-сплайни мають ту
ж саму неперервність, як і природні сплайни, але не інтерполюють їх вузлові точки.
Тому, ми говоримо про наближення багатокутника, а не про вставку вузлової точки.
Першим
кроком є вибір порядку базису сплайнів, щоб досягати бажану гладкість і полегшити
обчислювання.
Як найефективніші,
були вибрані кубічні В-сплайни, тобто сплайни третього порядку, через наступні причини:
1. Поліноми
нижніх степенів дають дуже низьку гнучкість в управлінні формою кривої. В-сплайни
першого порядку (прямі лінії) не дають задовільної гладкості апроксимуючої кривої.
В-сплайни другого порядку дають гладку криву, але проблема виникає в точках, де
з'єднуються сегменти кривої. Щоб зрозуміти цю проблему, ми введемо нове означення:
Означення. Позначимо сегмент кривої. Якщо напрям і величина і рівні
в точці з'єднання, крива, що складається з цих двох сегментів, називається неперервною.
В-сплайни
другого порядку і неперервні,
що не гарантує задовільну неперервність в об'єднаних точках. Проблема вирішується,
використовуючи кубічні В-сплайни, які є , і і неперервними.
2.Поліноми
вищого степеня віднімають багато часу в обчислювальному процесі і можуть нести небажані
скачки. Крива може "скакати" назад і вперед важко керованими способами.
3. Кажучи,
що кубічні В-сплайни дають "задовільну" неперервність, мається на увазі,
що око не може виявити геометричну неоднорідність степеня вище, ніж два і практично
досить використовувати В-сплайни третього ступеня [9].
Отже,
хоч кубічні В-сплайни і є методом, важчим у розрахунках, ніж інші, відомі методи,
які застосовуються у задачах для наближення, але він дає набагато точніший результат,
і є просто незамінним при розв’язуванні задач, які неможливо розв’язати іншими методами.
3. Практична
частина
3.1
Задача №1
Потрібно
інтерполювати (використовуючи задачу першого або другого роду) одну з відомих функцій,
з допомогою кубічних В-сплайнів, у випадку рівномірної сітки розбиття.
Розв’язання: Для розв’язання цієї
задачі візьмемо функцію і будемо її інтерполювати
на відрізку , розбивши його на 6 рівних частин (). Маємо рівномірну сітку, отже будемо користуватися
формулою (15’). Знайдемо і (задача інтерполяції першого роду): ,
(15’’) Виключимо із системи (16) і : , , (32)
і отримаємо
наступну систему:
, (33) де
, ,
, ,(34)
, .
Розв’язавши
систему (33), знайдемо коефіцієнти , для шуканого сплайна:
(де у
нашому випадку ).
Отже необхідно
знайти і підставити відповідні значення та розв’язати матричне рівняння:
,
де - тридіагональна матриця, а - шуканий вектор коефіцієнтів.
Для нашої
функції маємо наступні дані:
,,
,,
,,
,,
,,
,,
,,
,.
Тоді три
діагональна матриця і вектор відповідно дорівнюватимуть:
, ,
підставивши
їх у матричне рівняння, отримаємо вектор :
,
,.
Отже,
маємо інтерполяційний сплайн функції на проміжку :
Мал. 4, 5 – Графіки функції
На малюнку
4 зображено графік функції , а на малюнку 5 – графік
функції (зображено зеленим кольором), яка накладається
на графік функції . Як бачимо наш інтерполяційний
сплайн фактично повністю співпадає з і лише при великому збільшенні
можна побачити розбіжності (малюнок 6 і 7), тобто має місце незначна похибка. Знайдемо
її.
Мал. 6, 7 – Розбіжності
Для цього
будемо шукати максимальну похибку на кожному з відрізків розбиття. Скористаємося
наступними формулами:
,(35)
Отже на проміжку маємо
графік зображений на малюнку 8 (побудований в середовищі Mathcad). Неозброєним оком похибки
не видно, але вона є, і це показано на малюнку 9, який зображає функцію .
Мал. 8
– Графік, побудований в середовищі Mathcad
Мал. 9
– Найбільша похибка відрізку
Як видно
з малюнка 9, найбільша похибка на даному відрізку приблизно дорівнює:
при і відповідно
.
Аналогічно
розглянемо всі проміжки розбиття і знайдемо максимальні значення похибок на кожному
з них, які представлені в наступній таблиці:
сегмент
|
|
|
|
|
0,27
|
-2,023
|
0,021%
|
|
0,82
|
-1,472
|
0,022%
|
|
1,36
|
-0,584
|
0,028%
|
|
1,78
|
0,584
|
0,028%
|
|
2,34
|
1,489
|
0,021%
|
|
2,88
|
2,023
|
0,021%
|
З таблиці
видно, що максимальна похибка менша за 0,03%, і, оскільки, задовільною вважається
похибка менша чим 5%, то отриману можна вважати практично нульовою.
3.2
Задача №2
Потрібно
інтерполювати (використовуючи задачу першого або другого роду) одну з відомих функцій,
з допомогою кубічних В-сплайнів, у випадку нерівномірної сітки розбиття.
Розв’язання: Для розв’язання цієї
задачі візьмемо функцію і будемо її інтерполювати
на відрізку , розбивши його на 5 частин ([0,1], [1,9/5], [9/5,12/5],
[12/5,14/5], [14/5,3]). Маємо нерівномірну сітку, отже будемо користуватися формулою
(15). Знайдемо і (задача
інтерполяції першого роду). Аналогічно, як і в першій задачі використаємо формули
(34) і розв’яжемо систему (33). Для нашої функції маємо
наступні дані:
|
|
|
|
-2
|
-2
|
|
|
-1
|
-1
|
|
|
0
|
0
|
1
|
1
|
1
|
1
|
|
|
2
|
|
|
|
3
|
|
|
|
4
|
|
|
5
|
3
|
|
|
6
|
3,1
|
|
|
7
|
3,2
|
|
|
,,
,,
,,
,,
,,
,,
,,
,
,.
Тоді
тридіагональна матриця і вектор відповідно дорівнюватимуть:
,,
підставивши
їх у
матричне рівняння, отримаємо вектор :
,. Отже,
маємо інтерполяційний сплайн функції на проміжку :
Побудуємо
його графік (в середовищі Matlab):
Мал. 10
і 11 – Графік функції
На
малюнку 10 зображено графік функції , а на малюнку 11 –
графік функції (зображено синім кольором),
яка накладається на графік функції . Як бачимо наш
інтерполяційний сплайн фактично повністю співпадає з і
лише при великому збільшенні можна побачити розбіжності (малюнок 12 і 13),
тобто має місце незначна похибка. Знайдемо її.
Мал. 12,
13 – Розбіжності
Для
цього будемо шукати максимальну похибку на кожному з відрізків розбиття.
Скористаємося наступними формулами:
,(36)
Неозброєним
оком похибки не видно, але вона є, і це показано на малюнку 14, який зображає
функцію на кожному проміжку розбиття.
Мал.
14 – Похибки
Аналогічно,
як і в попередній задачі розглядаємо всі проміжки розбиття і знаходимо
максимальні значення похибок на кожному з них, які представлені в наступній
таблиці:
Таблиця
5. - Всі проміжки розбиття
сегмент
|
|
|
|
[0,1]
|
0,5
|
1,786
|
0,1049%
|
[1,]
|
1,38
|
-3,141
|
0,0682%
|
[,]
|
2,12
|
-1,431
|
0,0228%
|
[,]
|
2,63
|
1,548
|
0,0028%
|
[,3]
|
2,82
|
1,813
|
0,0002%
|
З
таблиці видно, що максимальна похибка менша за 0,11%, і, оскільки, задовільною
вважається похибка менша чим 5%, то отримана нас повністю задовольняє. Ще можна
відзначити, що найменша величина похибки досягається на найменшому із сегментів
розбиття, тобто чим менші проміжки розбиття тим більша точність (але розбиття
на занадто малі сегменти може значно ускладнити обрахунки).
Висновки
У курсовій
роботі було розглянуто лінійні , квадратичні та кубічні В-сплайни. Було отримано
форми запису цих сплайнів та виведено деякі формули для розрахунків
інтерполяційних задач. А також представлені рекурентні формули для виведення
В-сплайнів 1-го, 2-го, 3-го та вищих порядків.
Із розглянутих
сплайнів найкращі інтерполяційні якості мають кубічні В-сплайни, тому що саме вони
забезпечують задовільну гладкість, на відмінно від лінійних і квадратичних В-сплайнів,
а також для кубічних В-сплайнів використовуються порівняно нескладні обчислення,
що не скажеш про сплайни вищих порядків, які до того ж можуть мати небажані скачки.
Необхідно
відмітити перевагу В-сплайнів над звичайними сплайн-функціями. В-сплайни складаються з сегментів
кривих, залежних тільки від кількох вузлових точок, і тому при локальних змінах
крива змінюється лише на одному сегменті, ніяк не впливаючи на криві на інших сегментах.
Як було
перевірено на практиці кубічні В-сплайни забезпечують дуже високу точність у розрахунках,
яка складає менше ніж 0,2%, в той час як задовільною вважається похибка не більше
5%.
Отже,
хоч кубічні В-сплайни, і є методом важчим у розрахунках ніж інші відомі методи,
які застосовуються у задачах для наближення, але він дає набагато точніший результат,
і є просто незамінним при розв’язуванні задач, які неможливо розв’язати іншими методами.
Це дуже важливо, і тому В-сплайни доцільно вивчати у ВНЗ, щоб студенти могли розв’язувати,
нерозв’язні раніше, задачі, і отримувати результати високої точності.
Кубічні
В-сплайни мають численні застосування як в математичній теорії, так і в різноманітних
обчислювальних задачах. Сплакни застосовують при вивченні «Чисельних методів», як
додатковий метод інтерполяції, та при розв’язуванні рівнянь математичної фізики.
Особливо зручно з допомогою сплайн-функцій розв’язувати апроксимаційні та інтерполяційні
задачі.
1. Корнейчук Н. П. Сплайны в теории приближения.
/ Н. П. Корнейчук. – М. : Наука, 1984. – 352с.
2. Сплайн – интерполяция. // Електронний ресурс:
http://petrsu.karelia.ru/psu/Deps/IMO/Complex/part3/part34_a.htm
3. Калиткин Н. Н. Численные методы.
/ Н. Н. Калиткин. – М. : Нака, 1978. – 512с.
4. Селиванова И. А. Интерполяция сплайнами.
/ И. А. Селиванова.–Свердловск: УПИ, 1989. – 11с.
5. Пак Т. В. Лабораторные работы
по Численным методам. / Т. В. Пак. Учебно-методическое пособие. – Владивосток: Изд-во
Дальневост. ун-та, 2006. – 24с.
6. Завьялов Ю. С. Методы сплайн-функций.
/ Ю. С. Завьялов, Б. И. Квасов, В. Л. Мирошниченко. – М. : Наука, 1980. – 280с.
7. В-сплайн. // Електронний
ресурс: http://uk.wikipedia.org/wiki/B-сплайн
8. Шикин Е. В. Кривые и поверхности на экране
компьютера. / Е. В. Шикин, Л. П. Плис. Руководство по сплайнам для пользователей.
– М. : ДИАЛОГ-МИФИ, 1996. – 240с.
9. В-сплайны. // Електронний ресурс: http://www.masters.donntu.edu.ua/2005/kita/tribrat/library/splines.htm