Занятие № 12. Понятие сплайна. Виды сплайнов
Цель - ознакомить студентов с понятием сплайн, видами сплайнов.
Помимо «классических» интерполяционных полиномов, в XX веке получила широкое распространение в практике еще одна разновидность интерполянтов, называемых сплайнами. Исторически они возникли в авиастроении при конструировании обтекаемых профилей.
Сплайном S(x) является интерполирующая функция, которая обладает наименьшей кривизной и имеет квадратично интегрируемую вторую производную. Так как сплайн является интерполянтом, то для него должно выполняться условие (2.1):
(1)
Вид функции сплайна S(x) находится из условия минимальности функционала
(2)
Эта функция физически моделируется гибким и упругим стержнем, который проходит через все заданные точки интерполяции. Минимум функционала (2) соответствует минимуму упругой потенциальной энергии этого стержня.
Особенно часто используется естественный кубический сплайн - полином 3-й степени, удовлетворяющий требованиям (1) и (2). Такой естественный кубический сплайн является непрерывной функцией и имеет непрерывные первую и вторую производную на интервале интерполяции (x0, xn).
Как и в предыдущих параграфах данной главы, интерполянт строится на базе таблицы данных типа
Таблица с n+1 узлами определяет n подинтервалов между этими узлами. Кубический полином (естественный сплайн) необходимо построить для каждого подинтервала. Таким образом, интерполяция кубическими сплайнами относится к классу кусочно-многочленной интерполяции. Так как каждый кубический полином характеризуется четырьмя константами, поэтому для построения сплайна S(x) на всем интервале [x0; xn]необходимо определить 4n параметров.
Требование непрерывности функции, ее первой и второй производных во внутренних (n-1) узлах дает 3(n-1) уравнения для определения неизвестных параметров. Условие (1) для всех (n+1) узлов дает еще (n+1) уравнений. Недостающие два условия для однозначного определения естественного сплайна задаются приравниванием нулю вторых производных в точках x0 и xn
(3)
что означает нулевую кривизну сплайна на концах интервала.
Иногда при построении сплайнов задаются другие граничные условия на концах интервала интерполяции для самих функций или первых производных.
После формулировки общих положений займемся конструированием явного вида коэффициентов кубического сплайна. Для этого вначале рассмотрим отдельный подинтервал (xi, xi+1). Введем обозначения
(4)
(5)
(6)
Сплайн на подинтервале (xi, xi+1) удобно представить формулой:
(7)
где σi+1 и σi- константы, которые необходимо выразить через известные величины xi, yi. Очевидно, что функция (7) - полином 3-й степени относительно аргумента x.
Легко убедиться непосредственной подстановкой, что
(8)
Получим выражения для трех производных функции (7):
(9)
(10)
(11)
Формула (9) позволяет получить выражение для первой производной на концах любого подинтервала. Декларированная непрерывность первой производной сплайна S(x) на всем интервале (x0 , xn) позволяет приравнять правые и левые производные в точках узлов xi. В результате получается соотношение
(12)
В уравнении (12) и последующих этого параграфа использовано новое обозначение:
(13)
Заметим, что в этом параграфе величины определенные формулой (13), называются разделенными разностями, в отличие от конечных разностей, введенных в раннее.
Соотношения (12) получены для всех n-1 внутренних узлов. Индекс i пробегает значения 1, ... , n-1.
Таким образом, получена система (n-1) линейных уравнений относительно неизвестных величин σi.
В качестве недостающих условий можно взять уравнения, выражающие требования (3). Можно поступить иначе - использовать единственные кубические полиномы, которые проходят точно через 4 первые и 4 последние точки из заданных xi, yi (i = о,. . ., n). Тогда два дополнительных условия на концах интервала (x0 , xn) выразятся следующим образом:
(14)
где
(15)
Полученная система линейных уравнений (12) и (14) для нахождения n+1 параметров σi( i = 0, ..., n) имеет единственное решение. Матрица коэффициентов при неизвестных σiможет быть записана в следующем виде:
(16)
Правые части уравнений (свободные члены) соответственно равны:
Решение полученной системы линейных уравнений удобно реализовать, пользуясь трехдиагональностью матрицы коэффициентов при неизвестных, применяя метод прогонки. В результате искомые величины σi представятся в виде рекуррентных выражений:
(17)
где коэффициенты выражаются так:
(18)
(19)
При необходимости многократно вычислять сплайн его удобнее представить в несколько иной форме:
(20)
где xi <x<xi+1, i = 0, …, n - 1.
Преобразование функции (7) к форме (20) дает следующие выражения для искомых коэффициентов:
(21)
где i = 0,…, n - 1.
Подстановка коэффициентов (21) в выражение (20) дает функцию сплайна в явном виде для аргументов xi<x<xi+1, лежащих в i-м поддиапазоне интерполяции.
Пример.Пусть необходимо построить сплайн-интерполянт по набору шести точек.
Для вычисления коэффициентов сплайна целесообразно по формулам (4) - (6), (11) и (13) вычислить промежуточные данные и свести их в таблицу:
Пользуясь полученными величинами можно составить систему линейных уравнений (12 и (14). Запишем эту систему в матричном виде:
(22)
Решением системы (22) является следующий набор значений
которые мы представили в виде обыкновенных дробей.
Вычисленные значения σiи hi (i = 0, 1,. . 5) подставляются в формулы (4) - (7) или (20), (21), по которым можно получить явный вид сплайна S(x) на каждом i-м поддиапазоне xi < x < xi+1.
Например, на интервале х∈[3, 6] (т.е. между узлами i=1 и i=2) сплайн-интерполянт может быть выражен аналитически следующим кубическим полиномом:
S12(x) = 1,6102 + 0,0226 х + 0,3701 х2 - 0,0374 х3 ,
где коэффициенты вычислены с точностью до 0,0001. График полученного сплайна представлен на рис. 1.
Аналогичным образом можно построить кубические интерполирующие полиномы на всех интервалах, ограниченных узлами интерполяции. В результате получается сплайн-интерполянт для диапазона 1 < x < 9, график которого изображен на рис. 2.
Рис. 1. График сплайн-интерполянта на интервале х∈[3, 6].
Кружки - исходные данные, линия - график полинома (23)
Рис. 2. График сплайн-интерполянта на интервале х∈ [1, 9].
Задания: выполнить задание 4 ИДЗ№2.