B-сплайн
B-сплайн — сплайн-функция, имеющая наименьший носитель для заданной степени, порядка гладкости и разбиения области определения. Фундаментальная теорема устанавливает, что любая сплайн-функция для заданной степени, гладкости и области определения может быть представлена как линейная комбинация B-сплайнов той же степени и гладкости на той же области определения.[1] Термин B-сплайн был введён И. Шёнбергом и является сокращением от словосочетания «базисный сплайн».[2] B-сплайны могут быть вычислены с помощью алгоритма де Бура, обладающего устойчивостью.
В системах автоматизированного проектирования и компьютерной графике термин B-сплайн часто описывает сплайн-кривую, которая задана сплайн-функциями, выраженными линейными комбинациями B-сплайнов.
Определение
Когда узлы равноудалены друг от друга, говорят, что B-сплайн является однородным, в противном случае его называют неоднородным
Замечания
Когда количество узлов совпадает со степенью сплайна, B-сплайн вырождается в кривую Безье. Форма базисной функции определяется расположением узлов. Масштабирование или параллельный перенос базисного вектора не влияет на базисную функцию.
Сплайн содержится в выпуклой оболочке его опорных точек.
Базисный сплайн степени n
- [math]\displaystyle{ b_{i,n}(t)\,\; }[/math]
не обращается в нуль только на промежутке [ti, ti+n+1], то есть
- [math]\displaystyle{ b_{i,n}(t) = \left\{\begin{matrix} \gt 0 & \mathrm{if} \quad t_{i} \le t \lt t_{i+n+1} \\ 0 & \mathrm{otherwise} \end{matrix} \right. }[/math]
Другими словами, изменение одной опорной точки влияет только на локальное поведение кривой, а не на глобальное, как в случае кривых Безье.
Базисная функция может быть получена из полинома Бернштейна
P-сплайн
P-сплайн является модификацией B-сплайна и отличается использованием штрафной функции. Её введение позволяет использовать B-сплайновое сглаживание с весовыми коэффициентами для подгонки кривой в сочетании с дополнительным повышением гладкости и исключением переобучения на основе штрафной функции[3].
См. также
Ссылки
- 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) Архивная копия от 19 декабря 2007 на Wayback Machine
Примечания
- ↑ Carl de Boor. A Practical Guide to Splines (неопр.). — Springer-Verlag, 1978. — С. 113—114.
- ↑ Carl de Boor. A Practical Guide to Splines (неопр.). — Springer-Verlag, 1978. — С. 114—115.
- ↑ 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.
Литература
- Роджерс Д.,Адамс Дж. Математические основы машинной графики. — М.: Мир, 2001. — ISBN 5-03-002143-4.
- Корнейчук, Н. П., Бабенко, В. Ф., Лигун, А. А. Экстремальные свойства полиномов и сплайнов / отв. ред. А. И. Степанец; ред. С. Д. Кошис, О. Д. Мельник, АН Украины, Ин-т математики. — К.: Наукова думка, 1992. — 304 с. — ISBN 5-12-002210-3.