Сплайн

Сплайн (от англ. spline, от [flat] spline — гибкое лекало, гибкая плазовая рейка — полоса металла, используемая для черчения кривых линий) — функция, область определения которой разбита на конечное число отрезков, на каждом из которых она совпадает с некоторым алгебраическим многочленом ( полиномом). Максимальная из степеней использованных полиномов называется степенью сплайна. Разность между степенью сплайна и получившейся гладкостью называется дефектом сплайна. Например, непрерывная ломаная есть сплайн степени 1 и дефекта 1. В современном понимании сплайны — это решения многоточечных краевых задач сеточными методами.

Другими словами сплайн — это кусочно заданная функция, то есть совокупность нескольких функций, каждая из которых задана на каком-то множестве значений аргумента, причем эти множества попарно непересекающиеся.

Сплайны имеют многочисленные применения как в математической теории, так и в прикладной математике (в частности, в разнообразных вычислительных программах). В частности, сплайны двух переменных интенсивно используются для задания поверхностей в различных системах компьютерного моделирования. Сплайны двух аргументов называют би-сплайнами (например, бикубический сплайн), которые являются двумерными сплайнами, моделирующими поверхности. Их часто путают с B-сплайнами (базисными сплайнами), которые являются одномерными и в линейной комбинации составляют кривые — каркас для «натягивания» поверхностей. Также из базисных сплайнов возможно составить трёхмерную конструкцию для моделирования объёмных тел.

Определение и история

Квадратичный сплайн из шести полиномиальных сегментов. Между точками 0 и 1 — прямая линия. Между точками 1 и 2 — парабола со второй производной, равной 4. Между точками 2 и 3 — парабола со второй производной, равной −2. Между точками 3 и 4 прямая линия. Между точками 4 и 5 — парабола со второй производной, равной 6. Между точками 5 и 6 прямая линия.
Кубический сплайн, составленный из семи полиномиальных сегментов.
Вторая производная кубического сплайна, изображённого на рисунке выше.

Сплайном ( англ. spline) называли гибкую металлическую линейку — универсальное лекало [1], которое использовали чертёжники для соединения точек на чертеже плавной кривой, то есть для графического исполнения интерполяции.

Лекала

Более того, кривая, описывающая деформацию гибкой линейки, зафиксированной в отдельных точках, является сплайном. Итак, имеется физическая модель сплайн-функции (или, наоборот, сплайн-функция является математической моделью гибкой линейки). Интуитивный подход к использованию кусочных функций в задачах аппроксимации встречался в математике в течение длительного времени. Физической моделью, называемой механической аналогией сплайна, является многоопорная балка, не испытывающая внешней нагрузки, а деформации которой вызваны внутренними реакциями на заданные смещения опор в фиксированные узлы. Математически данная модель описывается дифференциальным уравнением деформации балки и является многоточечной краевой задачей, для решения которой был применён известный в то время сеточный метод, который получил решение именно в таком виде, называемом сегодня сплайном. Но, как отмечает советский учёный Николай Корнейчук, вторжение сплайнов в теорию приближения произошло из-за задачи интерполяции, благодаря их хорошим вычислительным и аппроксимативным свойствам. Сплайны обладают исключительно хорошими аппроксимативными свойствами, универсальностью и обеспечивают простоту реализации вычислительных алгоритмов, полученных на их основе. При этом алгоритмы построения сплайнов совпадают с алгоритмом метода конечных элементов, который является основным промышленным методом прочностного анализа в системах автоматизированного проектирования (САПР).

Теория интерполяции сплайнами и сам термин сплайн ведут свой отсчёт со статьи Исаака Шонберга ( англ. Isaac Jacob Schoenberg) 1946 года. Особенно интенсивное её развитие произошло в 50-70 годы. В настоящее время традиционной прикладной сферой использования интерполяционных сплайнов стали САПР. Однако потенциальные возможности сплайнов значительно шире, чем просто описание некоторых кривых. В реальном мире большое количество физических процессов по самой своей природе являются сплайнами. В механике это деформация гибкой пластины или стержня, зафиксированных в отдельных точках; траектория движения тела, если сила, действующая на него меняется ступенчато (траектория искусственного космического объекта с активными и инерционными отрезками движения, траектория движения самолёта при ступенчатом изменении тяги двигателей и изменении профиля крыла и т. д.). В термодинамике это теплообмен в стержне, составленном из фрагментов с различной теплопередачей. В химии — диффузия через слои различных веществ. В электричестве — распространение электромагнитных полей через разнородные среды. То есть сплайн не выдуманная математическая абстракция, а во многих случаях он является решением дифференциальных уравнений, описывающих вполне реальные физические процессы.

Рассмотрение сплайнов начнём с определения алгебраического сплайна. Функция , определённая и непрерывная на отрезке , называется полиномиальным сплайном порядка с узлами , если на каждом из отрезков , является алгебраическим полиномом степени, не превышающей , а в каждой из точек некоторая производная может иметь разрыв. Если функции в точках непрерывны, а производные в точках терпят разрыв, то числа называют дефектами сплайна. Множество называют сеткой узлов сплайна, а точки  — узлами, точками соприкосновения или точками склейки сплайна.

Как следует из определения, для построения сплайна, состоящего из фрагментов, требуется найти такие значения числовых параметров для каждого фрагмента — полинома степени , которые обеспечат непрерывность в узлах как самой функции, так и необходимых производных. Так, всего следует определить параметров. С учётом условия интерполяции и непрерывности первых двух производных определение параметров сводится к решению системы, состоящей из линейных уравнений. Как правило, значения коэффициентов для отрезков полиномов непосредственно не рассчитываются.

Для определения интерполяционного сплайна с непрерывной первой производной достаточно рассчитать значение первой производной в узлах. Способ определения производных в узлах сплайна определяет широкое разнообразие интерполяционных сплайнов. Часто производные определяются не как константы, а как некоторые зависимости от интерполируемой функции и сетки интерполяции.

Если значение первой производной в узлах рассчитывать исходя из условия непрерывности второй производной (решая систему, составленную из n линейных уравнений), то сплайн будет иметь две непрерывные производные. Такой способ построения сплайна, как и сам сплайн называют глобальным, поскольку при определении каждого из его коэффициентов учитывается всё множество узлов интерполяции.

В других случаях, для определения отдельного коэффициента учитываются только ближайшие узлы интерполяции и такие способы построения, как и сами сплайны, называют локальными. Параметры фрагмента такого сплайна можно определить независимо от других фрагментов.

Простым условием построения фрагмента локального сплайна является условие равенства полинома на концах отрезков соответствующим значениям интерполируемой функции.

Для простейшего сплайна — ломаной — этого условия вполне достаточно. Два коэффициента прямой однозначно определяются из двух уравнений. Такой сплайн является локальным. Для полиномов высших степеней следует добавить дополнительные условия таким образом, чтобы общее число уравнений было равно числу коэффициентов полинома. Так, для сплайна 3-й степени таким условием является равенство 1-й производной на концах отрезка некоторому значению, определяемому для соседних участков одинаковым образом (в формулах (2) через приближённое значение производной функции).

Система из 4-х уравнений

позволяет однозначно определить четыре коэффициента полинома. Для полинома 5-й степени следует добавить условие равенства 2-й производной на концах отрезка и т. д. Из сказанного должно быть ясно, почему сплайны строят в основном из полиномов нечётных степеней (с чётным количеством коэффициентов).

Для полиномов чётных степеней при сборке системы (3):

  • остаётся неопределённой производная в одном из концов отрезка;
  • и условие равенства производных (гладкости кривой) не будет выполняться,

поэтому для полинома 2-й степени невозможно достичь равенства 1-й производной в точках стыка, а для 4-й степени — 2-й производной и т. д. Для построения сплайнов с чётными степенями искусственно добавляют дополнительные условия, чтобы сформировать систему уравнений, подобную (3). Если производные полинома сплайна определяются так же, как соответствующие производные интерполируемой функции, сплайн называется эрмитовым.

Существуют локальные методы построения сплайнов Бесселя и Акими, B — сплайны []. В основном, когда речь идет о сплайнах, то имеют в виду сплайны, построенные из алгебраических полиномов. Именно к ним относится приведённое выше определение. Именно эти сплайны являются наиболее изученными. Однако, сплайн может состоять из фрагментов функций любого класса. В [] рассмотрено построение таких сплайнов и исследуются их свойства. Автор не даёт общего определения построенных сплайнов. Очевидно, что для любых классов функций, из которых состоит сплайн, приведённое в начале статьи определение не совсем подходит. Например, если сплайн состоит из отрезков экспоненты, то понятие дефекта сплайна теряет смысл. Хотя количество непрерывных производных останется важной характеристикой. Построение сплайна, фрагментами которого являются разрывные функции (рациональные функции, функции Паде), несколько выходит за рамки сплайновой идеи, поскольку одним из основных преимуществ сплайнов является их гладкость. Если произвольно расширять такие конструкции, то стираются различия сплайнов от кусковых функций. Другим преимуществом сплайнов является эффективность вычислений. Чрезмерное усложнение фрагментов существенно снижает преимущество сплайнов перед классическими функциями.

Для сплайнов характерны следующие признаки: сплайн состоит из фрагментов — функций одного класса, которые отличаются только своими параметрами, на соседние фрагменты в точках стыковки накладываются определённые условия, которые сводятся к непрерывности значений и некоторых первых производных. Сплайны — направление прикладной математики, которое интенсивно развивается. В Интернете содержится обширная библиография по сплайнам (Spline bibliography database (SBD)).

другие языки
català: Spline
čeština: Spline
Deutsch: Spline
Esperanto: Splajno
español: Spline
فارسی: اسپلاین
français: Spline
עברית: Spline
magyar: Spline
italiano: Funzione spline
қазақша: Сплайн
македонски: Сплајн
Nederlands: Spline
norsk: Spline
português: Spline
slovenščina: Zlepek
српски / srpski: Сплајн
svenska: Spline
українська: Сплайн
中文: 样条函数