Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
approch.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Випадки використання кубічного сплайна

При побудові інтерполяційного кубічного сплайна найчастіше використовуються граничні (крайові) умови трьох типів. Вибір граничних (крайових) умов є однією з центральних проблем при інтерполяції функцій. Він особливо важливий за необхідності забезпечити високу точність апроксимації функції сплайном поблизу кінців відрізка . Граничні значення суттєво впливають на поведінку сплайна поблизу точок а та b. Цей вплив швидко слабшає при відході від них.

Отже, якщо ( ), , то кубічний сплайн на цьому відрізку можна представити формулою

Тут . Для їх визначення накладають умови неперервності другої похідної в точках та обмеження на значення сплайна і його похідних на кінцях проміжку - крайові умови. Тобто потрібна додаткова інформація про функцію, для якої є потреба в інтерполюванні.

Якщо на кінцях відрізка відомі значення 1-ї похідної , то природно скористатися граничними (крайовими) умовами 1-го типу.

  1. Граничні (крайові) умови 1-го типу. Якщо відомо, що , то для визначення маємо систему рівнянь

(5.36)

Якщо на кінцях відрізка відомі значення 2-ї похідної , то природно скористатися граничними (крайовими) умовами 2-го типу.

  1. Граничні (крайові) умови 2-го типу. Якщо відомо

, то є система рівнянь

. (5.37)

Якщо є можливість вибору між граничними (крайовими) умовами 1-го та 2-го типів, то перевагу потрібно надати умовам 1-го типу.

У випадку, коли ніякої додаткової інформації про поведінку апроксимованої функції немає, часто використовують так звані природні граничні (крайові) умови .

Однак варто мати на увазі, що при такому виборі граничних (крайових) умов точність апроксимації функції сплайном поблизу кінців відрізка різко знижується. Іноді користуються граничними (крайовими) умовами 1-го або 2-го типу, але не з точними значеннями відповідних похідних, а з їх різницевими апроксимаціями. Точність такого підходу невисока.

Практичний досвід розрахунків показує, що в такій ситуації найбільш доцільним є вибір природних граничних ( крайових) умов. Якщо - періодична функція, то потрібно зупинитися на граничних (крайових) умовах 3-го типу.

  1. Граничні (крайові) умови 3-го типу. Якщо - періодична функція , то і система рівнянь має вигляд

. (5.38)

Приклад реалізації алгоритмів інтерполяції функцій на псевдокоді

//розв’язує СЛАР методом Гауса

//M – матриця системи і вільні члени

//X – вектор відповідей

//n – кількість невідомих

linequ(M,n,e,X):

//доступна в модулі naz.pas

end

//X – значення аргумента

//Y – значення функції

//xi – значення аргумента, для якого потрібно знайти значення

// функції

//h – крок

//змінні DY, D2Y і т.д. – скінченні різниці

//змінні SDY, SD2Y і т.д. – розділені різниці

//відшукуємо значення інтерполюючого многочлена при x=xi

Find_PX(X,Y,n,h):

  1. n:=X.length;

  2. for i:=1 to n do

  3.     DY[i]:=Y[i+1]-Y[i]

  4. done

  5. for i:=1 to (n-1) do

  6.     D2Y[i]:=DY[i+1]-DY[i]

  7. done

  8. for i:=1 to (n-2) do

  9.     D3Y[i]:=D2Y[i+1]-D2Y[i]

  10. done

  11. for i:=1 to (n-3) do

  12.     D4Y[i]:=D3Y[i+1]-D3Y[i]

  13. done

  14. for i:=1 to n do

  15.     SDY[i]:=Y[i+1]-Y[i]/(X[i+1]-X[i])

  16. done

  17. for i:=1 to (n-1) do

  18. D2Y[i]:=SDY[i+1]-SDY[i]/(X[i+2]-X[i])

  19. done

  20. for i:=1 to (n-2) do

  21. D3Y[i]:=SD2Y[i+1]-SD2Y[i]/(X[i+3]-X[i])

  22. done

  23. for i:=1 to (n-3) do

  24. D4Y[i]:=SD3Y[i+1]-SD3Y[i]/(X[i+4]-X[i])

  25. done

  26. t:=(xi-X[1])/h

  27. return X[1]+(t/factorial(1))*DY[1]+((t*(t-1))/factorial(2))*D2Y[1]+((t*(t-1)*(t-2))/factotrial(3))*D3Y[1]+((t*(t-1)*(t-2)*(t-3))/factorial(4))*D4Y[1];

end

//R­ – дані сплайна

//eps – точність обчислень

//xi – значення аргумента, при якому потрібно знайти значення функції //     

//відшукуємо значення кубічного сплайна в точці xi

Find_Spline(R,eps,xi)

  1. linequ(R,R.length,1E-6,М)

  2. k:=2

  3. s31:=(X[k+1]-xi)*(X[k+1]-xi)*(2*(xi-X[k])+1)*Y[k]+(xi-X[k])*(xi-X[k])*(2*(X[k+1]-xi)+1)*Y[k+1]

  4. s32:=(X[k+1]-xi)*(X[k+1]-xi)*(xi-X[k])*M[k]+(xi-X[k])*(xi-X[k])*(xi-X[k+1])*М[k+1]

  5. return s31+s32

end

Оцінка похибки та збіжності при інтерполяції кубічними сплайнами

Якщо , то похибка інтерполяції кубічним сплайном

, де , .

Якщо , r=1,2,3,4, то оцінка має вигляд для .

Із цих оцінок треба встановити збіжність інтерполяційного процесу на послідовності сіток .

Для простоти обчислень або при труднощах у пошуку першої та другої похідних заданої функції можна застосувати таку оцінку похибок:

.

Приклад. Апроксимувати функції на відрізку [-2;2] , використовуючи лінійний сплайн і природний кубічний сплайн.

Дослідження проведемо на рівномірних сітках з кількістю вузлів інтерполяції : 5, 7, 9, 15 , 51 , 101 відповідно. Визначимо відносну похибку інтерполяції сплайнами на різних сітках. Результати занесемо до таблиці.

Аналіз результатів показує, що точність апроксимації істотно залежить від кількості вузлових точок.

Число вузлів

Лінійний сплайн

Кубічний сплайн

Куб. сплайн по другій похідній

5

0,0625

0,024

0,0092

7

0,0278

0,011

0,0038

9

0,0156

0,0061

0,002

15

0,0051

0,002

0,0007

51

0,0004

0,00016

0,000055

101

0,0001

0,000036

0,000014

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]