МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
Н.Н. Гудович
ЭЛЕМЕНТЫ ЧИСЛЕННЫХ МЕТОДОВ
Выпуск 4
Кубические сплайны
Учебное пособие для вузов
Воронеж
Издательский дом ВГУ
2017
Стр.1
Содержание
1. Понятие сплайна……………………………………………………………4
2. Кубические сплайны……………………………………………………… 6
3. Вторые производные кубического сплайна……………………………..10
4. Кубический сплайн с начальными условиями…………………………..18
5. Метод прогонки решения трехдиагональных систем…………………...23
6. Пример численного алгоритма……………………………………………31
7. Упражнения и задания……………………………………………………..33
Библиографический список………………………………………………….35
3
Стр.3
счет увеличения которого стараются добиваться лучшего приближения
функции, принимают число N частичных отрезков разбиения.
Замечание 1.3. Термин «сплайн» (spline) имеет техническое
происхождение: этим словом английские чертежники-кораблестроители
прошлых веков называли длинную гибкую рейку для вычерчивания деталей
корпуса корабля в натуральную величину, то есть чертежный инструмент
для проведения гладких кривых. В современной же математике под
сплайном понимают функцию , которая локально (то есть на частичных
отрезках разбиения) задается многочленами i фиксированной степени n.
При этом упомянутые многочлены считаются подобранными так, чтобы в
любом внутреннем узле xi производные соседних многочленов i, i+1 до
порядка m включительно совпадали. Такое условие на значения
производных многочленов i, i+1 в узле xi приходится налагать, поскольку
в этой точке определены оба этих многочлена, и каждый из них при
отсутствии требований (1.3) мог бы иметь в указанном узле различные
значения производных. Последнее же исключало бы принадлежность
функции , составленной из таких многочленов, классу гладкости Cm[a, b].
Во всех же других точках x гладкость функции обеспечена
автоматически, поскольку в таких точках эта функция совпадает лишь с
одним из многочленов, а всякий многочлен обладает в этих точках
непрерывными производными любого порядка.
2. Кубические сплайны
На практике чаще всего используют сплайны третьей степени (n = 3)
второго порядка (m = 2). Такие сплайны называют кубическими, поскольку
график такого сплайна составлен из отрезков графиков многочленов
третьей степени, а графики многочленов третьей степени принято называть
кубическими параболами. Выбор для m значения 2 объясняется в том числе
и тем, что при движении обрабатывающего инструмента в станках с
числовым программным управлением (ЧПУ) по дважды непрерывно
дифференцируемой кривой удается избежать ударных нагрузок, которые в
силу 2-го закона Ньютона возникали бы в случае разрывов 2-й производной
и которые могли бы привести к разрушению обрабатывающего
6
Стр.6
инструмента или обрабатываемой поверхности. Значение же n = 3 –
минимальное значение, обеспечивающее существование интерполяционного
сплайна класса C2[a, b] при любом наборе {f(xi)} значений функции f в
узлах (1.1).
Локальные представления (1.2) для кубического сплайна имеют вид:
i(x) = a0
(i) + a1
(i) x +a2
(i) x2 + a3
поэтому для задания кубического сплайна
коэффициентов aj
{i} x3, xi–1 ≤ x ≤ xi, i = 1, 2, … , N, (2.1)
следует задать 4N
(i) (каждый из многочленов (2.1) имеет 4 коэффициента, а
всего таких многочленов N). Выбор этих коэффициентов должен быть
подчинен условиям интерполяционности (1.4), которые для данного случая
удобно записать в виде системы линейных алгебраических уравнений
a0
a0
a0
a0
(1) + a1
(i) + a1
(i+1)+a1
+ a1
(N)
(1) x0 + a2
(i) xi + a2
(i+1)xi+a2
(N) xN+a2
(1) x0
(i) xi
(i+1)xi
(N)xN
2 + a3
2 + a3
2+ a3
2+ a3
(1) x0
(i) xi
(i+1)xi
(N)xN
3 = f(x0),
3 = f(xi), i = 1, 2, … , N–1,
3 = f(xi), i = 1, 2, … , N–1,
3 = f(xN).
(2.2)
(2.3)
(2.4)
(2.5)
Заметим, что уравнение (2.3) получено приравниванием значения
i(xi) локального представителя i во внутреннем узле xi значению f(xi)
приближаемой функции f, а уравнение (2.4) для того же значения i –
приравниванием тому же значению f(xi) значения i+1(xi) соседнего
локального представителя i+1 в том же внутреннем узле xi. Выписав эту
пару уравнений, мы сразу убили двух зайцев: обеспечили выполнение
условия гладкости (1.3) с k = 0 в любом внутреннем узле xi (то есть
обеспечили непрерывность сплайна на отрезке [a, b]) и одновременно
обеспечили выполнение условия интерполяционности в любом внутреннем
узле.
Выполнение условия интерполяционности в краевых узлах x0, xN
обеспечивается соответственно уравнениями (2.2) и (2.5).
Выписанные выше уравнения (2.2)–(2.5) должны быть дополнены
уравнениями, вытекающими из условий гладкости (1.3) с k = 1и k = 2.
7
Стр.7
Для вывода этих уравнений дифференцируем представление (2.1) по
переменной x. В результате для первой производной локального
представителя i получаем формулу
i(x) = a1
(i) + 2a2
(i) x + 3a3
(i+1) + 2a2
(i) x2,
а заменяя здесь индекс i на i+1, и формулу
i+1(x) = a1
(i+1) x + 3a3
(i+1) x2
(2.6)
(2.7)
для первой производной соседнего локального представителя i+1.
Придавая затем в формулах (2.6),
к следующей группе уравнений
a1
(i) + 2a2
(i) xi +3a3
(i) xi
2 = a1
(2.7) переменной x значение xi и
приравнивая в соответствии с требованием (1.3) при k равном единице
полученные значения i(xi), i+1(xi), приходим
(i+1) + 2a2
(i+1) xi +3a3
(i+1)xi
2, i= 1, 2, … , N–1, (2.8)
которая должна быть добавлена к системе (2.2) – (2.5).
Далее дифференцированием равенств (2.6), (2.7) получаем формулы
i(x) =2a2
(i) + 6a3
i+1(x) = 2a2
(i) x,
(i+1) + 6a3
(i+1) x
(2.9)
(2.10)
для вторых производных соседних локальных представителей i, i+1.
Придавая в формулах (2.9), (2.10) переменной x значение xi и приравнивая
получившиеся при этом значения вторых производных, приходим к еще
одной группе уравнений
2a2
(i) +6a3
(i) xi = 2a2
(i+1) + 6a3
(i+1) xi, i = 1, 2, … , N–1, (2.11)
которые также должны быть добавлены к уравнениям (2.2) – (2.5).
Уравнения (2.11) обеспечивают выполнения условия гладкости (1.3)
при значении k равном двум.
Система (2.2)–(2.5), (2.8), (2.11) есть система линейных
алгебраических уравнений относительно неизвестных aj
8
(i). Число
неизвестных в этой системе равно 4N, а всего этих уравнений 4N–2. Для
получения замкнутой системы уравнений (то есть системы с числом
Стр.8
уравнений, равным числу неизвестных) не хватает двух уравнений. Эти
уравнения получаются из двух дополнительных условий, которые задаются
на концах отрезка [a, b] и потому называются краевыми условиями.
Например, можно задать значения и вторых производных сплайна в
узлах x0, xN соответственно. В этом случае с учетом формулы (2.9) получим
следующую пару дополнительных уравнений:
2a2
(1) + 6a3
(1) x0 = ,
2a2
(N) + 6a3
(N) xN =. (2.12)
Другая возможность получить пару дополнительных уравнений – это
задать в указанных узлах значения не вторых производных сплайна, а
значения , его первых производных. В силу формулы (2.6) тогда
получится другая пара дополнительных уравнений.
a1
(1) + 2a2
(1) x0 + 3a3
(1) x0
2 = , a1
(N) + 2a2
(N) xN + 3a3
(N) xN
2 = . (2.13)
Замечание 2.1. Если в формуле (2.12) положить = = 0, то получим
сплайн, который называют естественным кубическим сплайном. Дело в
том, что условия (2.12) являются математическим аналогом ситуации,
когда в точках плоскости (x0, f(x0)), (xN, f(xN)) гибкая рейка (« физический
сплайн») закреплена шарнирно, то есть может свободно поворачиваться
вокруг этих точек. В этом случае концы рейки, расположенные
соответственно левее и правее геометрических прямых на плоскости,
параллельных оси oy и проходящих через точки с абсциссами x0, xN, займут
естественное в данной ситуации прямолинейное положение, а значит,
функция (x), описывающая кривую, по которой изогнется рейка,
проходящая через точки (xi, f(xi)) (i = 0, 1, 2, … , N), вне отрезка [a, b] будет
совпадать с многочленами первой степени. А так как вторые производные
многочленов первой степени равны нулю, то вне отрезка [a, b] будет иметь
место равенство (x) 0. По непрерывности нулевые значения вторых
производных перейдут и в точки x0, xN.
Замечание 2.2. Сплайн с дополнительными условиями (2.13)
называют сплайном с жестко заделанными концами. Физически это
соответствует тому, что концы рейки, расположенные левее и правее
упомянутых выше геометрических прямых, жёстко закреплены
плоскости oxy вдоль некоторых геометрических прямых, образующих с
на
9
Стр.9
осью ox заданные углы (параметры и в уравнениях (2.13) есть тангенсы
этих углов).
Замечание 2.3. Выбор коэффициентов aj
(i) в качестве неизвестных
при построении кубических сплайнов, естественный и наглядный с
теоретической и методической точек зрения, на практике оказывается не
рациональным, поскольку при выборе в качестве параметров других
характеристик сплайна, а именно значений
s i = (x i),
i = 0, 1, ... , N,
вторых производных сплайна в узлах
(2.14)
xi, задача построения
интерполяционного кубического сплайна после простых аналитических
преобразований сведётся к решению линейной системы с существенно
меньшим количеством неизвестных и более простой матрицей.
3. Вторые производные кубического сплайна
Обозначим через h i длину i-го отрезка разбиения
hi = xi - x i–1.
Рассмотрим набор чисел
s0, s1, … , si–1, si, … , sN
и набор значений функции f
f(x0), f(x1), … , f(xi–1), f(xi), … , f(xN).
(3.2)
(3.3)
Теорема 3.1. Для любых f(x i–1), f(x i), si–1, si из наборов (3.2), (3.3)
найдется единственный многочлен степени не выше третьей, значения
которого в точках x i–1, x i совпадают соответственно с f(xi–1), f(xi), а
значения второй производной которого в этих точках равны соответственно
числам s i–1, s i.
Доказательство
Запишем многочлен степени не выше третьей в виде разложения
a0 + a1x + a2x2 + a3x3
по степеням независимой переменной x.
10
(3.4)
(3.1)
Стр.10