Сплайны
Пусть интервал [a,b] разбит узлами xi, как и выше, на n отрезков, 0 £ i £ n Сплайном Sn(x) называется функция, определенная на [a, b], принадлежащая Ck[a, b] и такая, что на каждом отрезке [xi, xi+1], 0 £ i £ n–1 – это полином n-й степени.
В частности, это могут быть, построенные специальным образом, многочлены 3-й степени (кубический сплайн), которые являются математической моделью гибкого тонкого стержня, закрепленного в двух точках на концах с заданными углами наклона a и b.
В данной физической модели стержень принимает форму, минимизирующую его потенциальную энергию. Пусть форма стержня определяется какой-то функцией y = S(x). Из курса сопротивления материалов известно, что уравнение свободного равновесия имеет вид S(IV)(x) = 0. А этому состоянию соответствует многочлен третьей степени между двумя соседними узлами интерполяции. Его выбирают в виде
S(x) = ai + bi(x – xi–1) + ci(x – xi–1)2 + di(x – xi–1)3 ; xi–1 £ х £ xi . (31)
Стоит проблема нахождения ai, bi, ci, di. Для определения их на всех n элементарных участках интервала [a,b] необходимо составить 4n уравнений. Часть этих уравнений в составе 2n получают из условия прохождения S(x) через заданные точки, т.е.
S(xi–1) = yi–1; S(xi) = yi .
Эти условия можно записать, используя (31) в виде:
(32)
(33)
Уравнения в количестве (2n–2) получают из условия непрерывности первых и вторых производных в узлах интерполяции. Условие гладкости.
Вычислим производные многочлена (31)
(x) = bi + 2ci(x – xi–1) + 3di(x – xi–1)2,
(x) = 2ci + 6di(x – xi–1); при xi–1 £ х £ xi . (34)
Приравнивая в каждом внутреннем узле x = xi значения этих производных, вычисленных на концах рассматриваемого отрезка, получают (2n–2) уравнений
bi+1 = bi + 2hici + 3hdi ; i=1,2,…,n–1; (35)
ci+1 = ci + 3hidi ; i=1,2,…,n–1 . (36)
Оставшиеся 2 уравнения получают из естественного предположения условия о нулевой кривизне этой функции на концах отрезка.
(37)
Система, составленная из (32) – (37), решается одним из методов решения СЛАУ.
Для упрощения машинных расчетов эта система уравнений приводится к более удобному виду посредством следующего алгоритма.
1. Из условия (32) можно сразу найти ai.
2. Из (36) – (37) находят:
(38)
3. После подстановки (38) и (32) в (33) находят коэффициенты bi.
bi = ;
bn = . (39)
4. Учитывая (38) и (39) из уравнения (35) исключаются di и bi, тогда исходная система приводится к трехдиагональной матрице, содержащей только коэффициенты ci. Получаем систему
hi–1ci–1 + 2(hi–1 + hi)ci + hici+1 = 3(), i=2,3,…,n. (40)
При этом c1 = 0, cn+1 = 0. Система (40) может быть решена методом прогонки. Зная ci по (38) и (39), определяют bi и di. Тогда кубический многочлен определяется для всех интервалов.
Пример составления системы (40). Пусть функция f(x) задана таблицей
i | ||||||
x | 0,1 | 0,15 | 0,19 | 0,25 | 0,28 | 0,30 |
y = f(x) | 1,1052 | 1,1618 | 1,2092 | 1,2840 | 1,3231 | 0,3499 |
h | 0,05 | 0,04 | 0,06 | 0,03 | 0,02 |
с1 = 0;
0,05c1+0,18c2+0,04c3 = 3
(коэффициент при c2 получен следующим образом: 2×(0,05+0,04) = 0,18;)
0,04c2 + 0,2c3 + 0,06c4 = 3;
0,06c3 + 0,18c4 + 0,03c5 = 3
0,03c4 + 0,1c5 = 3
c6 = 0.
В результате получим систему относительно c2 ¸ c5:
´
=
.
Найдя ci по (38), находят di и затем по (39) – bi.