Пусть интервал [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 (рис. 5.6).
Рис. 5.6
В данной физической модели стержень принимает форму, минимизирующую его потенциальную энергию. Пусть форма стержня определяется какой-то функцией y = S(x). Из курса сопротивления материалов известно, что уравнение свободного равновесия имеет вид S(IV)(x) = 0. Такому состоянию соответствует многочлен третьей степени между двумя соседними узлами интерполяции. Его выбирают в виде
Следовательно, стоит проблема нахождения ai, bi, ci, di. Для их определения на всех элементарных участках интервала [a, b] необходимо составить 4n уравнений. Часть этих уравнений получают из условия прохождения S(x) через заданные точки, т. е.
S(xi–1) = yi–1; S(xi) = yi,
используя (5.31), эти условия можно записать в виде:
(5.32)
(5.33)
Уравнения в количестве (2n – 2) получают из условия непрерывности первых и вторых производных в узлах интерполяции.
Вычислим производные многочлена (5.31):
(x) = bi + 2ci(x – xi–1) + 3di(x – xi–1)2,
(x) = 2ci+ 6di(x – xi–1) при xi–1 £ х £ xi . (5.34)
Приравнивая в каждом внутреннем узле x = xi значения этих производных, вычисленных на концах рассматриваемого отрезка, получают (2n – 2) уравнений:
bi+1 = bi+ 2hici+ 3hdi ; i = 1, 2, …, n – 1; (5.35)
ci+1 = ci+ 3hidi; i = 1, 2, …, n – 1. (5.36)
Оставшиеся два уравнения получают из естественного предположения условия о нулевой кривизне этой функции на концах отрезка:
(5.37)
Система, составленная из (5.32) – (5.37), решается одним из методов решения СЛАУ.
Для упрощения машинных расчетов эта система уравнений приводится к более удобному виду посредством следующего алгоритма.
1. Из условия (5.32) можно сразу найти ai.
2. Из (5.36) – (5.37) находят
(5.38)
3. После подстановки (5.38) и (5.32) в (5.33) находят коэффициенты bi:
(5.39)
4. С учетом (5.38) и (5.39) из уравнения (5.35) исключаются diи bi, тогда исходная система приводится к трехдиагональной матрице, содержащей только коэффициенты ci. Получаем систему
hi–1ci–1 + 2 (hi–1 + hi)ci+ hici+1 = 3×, i = 2, 3, …, n. (5.40)
При этом c1 = 0, cn+1 = 0. Система (5.40) может быть решена методом прогонки. Зная ciпо (5.38) и (5.39), определяют bi и di. Тогда кубический многочлен определяется для всех интервалов.
Пример 5.3. Составим систему (5.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 и c6 = 0, остальные значения сi находим следующим образом:
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×
В результате получим систему относительно c2, …, c5:
´ = .
Вычислив ciпо (5.38), найдем diи затем по (5.39) – bi.