Лаба 9 / Цель работы
.docПостроение интерполяционного кубического сплайна.
Цель работы:
ознакомление с интерполяционными сплайнами.
Теоретическое введение.
-
Для заданной функции F(x) построить таблицу значений в шести равноудаленных узлах:
-
xi
0
0.2
…
1.0
yi
y0
y1
…
y5
Требуется построить дважды непрерывно-дифференцируемую функцию S(x), удовлетворяющую следующим условиям:
а) S(xk)=yk=f(xk), k=0,…,5;
б) на каждом промежутке [xk-1,xk] функция S(x) – полином третьей степени.
в) выполнен один из двух граничных условий:
-
S’’(x0)=S’’(x5)=0
-
S’’(x0)=f’’(x0), S’’(x5)=f’’(x5).
2. Обозначим mk= S’’(xk), k=0…5. Значения m0 и m5 уже определены, а в курсе лекций показано, что mk, k=1,…m4, удовлетворяют системе линейных уравнений
1/6 mk-1 + 2/3 mk + 1/6 mk+1 = (1/h2)(yk-1 – 2yk + yk+1), k=1,…,4.
3 . Решив указанную систему уравнений, можно записать выражение для функции S(x) на промежутке [xk-1,xk] (k-тая порция сплайна)
где h = xi+1 - xi , i=0,…4.
4 . Используя функцию CHI(xk-1,x,xk) системы DERIVE, записываем выражение для S(x):
5. Строим сплайн-функцию (x) в системе MATLAB с помощью команды spline. Здесь для заданного набора точек X={xk}, Y={yk}, (k=0,…,5) и заданных значений аргумента x предложение
y=spline(X,Y,x)
обеспечивает вычисление значений y по аргументам х, соответствующих сплайн-функций S(x).