Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы численных методов - ЛЕКЦИИ.doc
Скачиваний:
57
Добавлен:
25.09.2019
Размер:
4.01 Mб
Скачать

5.5. Сплайны

Пусть интервал [a, b] разбит узлами xi на n отрезков, 0  i n. Сплайном Sn(x) называется функция, определенная на [a, b], принадлежащая Ck[a, b] и такая, что на каждом отрезке [xi, xi+1], 0  i n – 1 – это полином n-й степени.

В частности, это могут быть построенные специальным образом многочлены 3-й степени (кубический сплайн), которые являются математической моделью гибкого тонкого стержня, закрепленного в двух точках на концах с заданными углами наклона  и  (рис. 5.6).

Рис. 5.6

В данной физической модели стержень принимает форму, минимизирующую его потенциальную энергию. Пусть форма стержня определяется какой-то функцией 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 . (5.31)

Следовательно, стоит проблема нахождения 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 + 3h di ; 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

0

1

2

3

4

5

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.