B-сплайн — сплайн-функция, имеющая наименьший носитель для заданной степени, порядка гладкости и разбиения области определения. Фундаментальная теорема устанавливает, что любая сплайн-функция для заданной степени, гладкости и области определения может быть представлена как линейная комбинация B-сплайнов той же степени и гладкости на той же области определения. Термин B-сплайн был введён И. Шёнбергом и является сокращением от словосочетания «базисный сплайн». B-сплайны могут быть вычислены с помощью алгоритма де Бура, обладающего устойчивостью.

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

Определение

Когда узлы равноудалены друг от друга, говорят, что B-сплайн является однородным, в противном случае его называют неоднородным

Замечания

Когда количество узлов совпадает со степенью сплайна, B-сплайн вырождается в кривую Безье. Форма базисной функции определяется расположением узлов. Масштабирование или параллельный перенос базисного вектора не влияет на базисную функцию.

Сплайн содержится в выпуклой оболочке его опорных точек.

Базисный сплайн степени n

не обращается в нуль только на промежутке [ti, ti+n+1], то есть

Другими словами, изменение одной опорной точки влияет только на локальное поведение кривой, а не на глобальное, как в случае кривых Безье.

Базисная функция может быть получена из полинома Бернштейна

P-сплайн P-сплайн является модификацией B-сплайна и отличается использованием штрафной функции. Её введение позволяет использовать B-сплайновое сглаживание с весовыми коэффициентами для подгонки кривой в сочетании с дополнительным повышением гладкости и исключением переобучения на основе штрафной функцииEilers, P.H.C. and Marx, B.D. (1996). Flexible smoothing with B-splines and penalties (with comments and rejoinder). Statistical Science 11(2): 89-121..

См. также Сплайн NURBS Алгоритм де Бура Атомарные функции

Ссылки Interactive java applets for B-splines B-spline on MathWorld Module B-Splines by John H. Mathews BSpline Java Applet by Stefan Beck (with C++ Source)

Примечания

Литература

Категория:Сплайны Категория:Теория приближений