Jump to content

B-сплайн

(Перенаправлено с B-Spline )
Сплайновая кривая, нарисованная как взвешенная сумма B-сплайнов с контрольными точками/контрольным многоугольником и отмеченными компонентными кривыми.

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

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

Введение

[ редактировать ]

По словам Джеральда Фарина, B-сплайны были исследованы еще в девятнадцатом веке Николаем Лобачевским в Казанском университете в России. [1] Термин . «B-сплайн» был придуман Исааком Якобом Шенбергом [2] в 1978 году и является сокращением от базисного сплайна. [3] Сплайн-функция порядка является кусочно- полиномиальной функцией степени . Места соединения частей называются узлами. Ключевым свойством сплайн-функций является то, что они и их производные могут быть непрерывными в зависимости от кратности узлов.

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

Определение

[ редактировать ]
Кардинальный квадратичный B-сплайн с вектором узла (0, 0, 0, 1, 2, 3, 3, 3) и контрольными точками (0, 0, 1, 0, 0) и его первой производной
Кардинальный кубический B-сплайн с вектором узла (−2, −2, −2, −2, −1, 0, 1, 2, 2, 2, 2) и контрольными точками (0, 0, 0, 6, 0, 0, 0) и его первая производная
Кардинальный квартический B-сплайн с вектором узла (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 5, 5, 5, 5) и контрольными точками (0, 0, 0, 0, 1). , 0, 0, 0, 0), а также его первая и вторая производные

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

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

Если мы добавим дополнительное ограничение, которое

для всех между узлами и , то масштабный коэффициент становится фиксированным. Узлы между ними (и не включая) и называются внутренними узлами.

B-сплайны можно построить с помощью рекурсивной формулы Кокса – де Бура. Начнем с B-сплайнов степени , т.е. кусочно-постоянные полиномы.

Чем выше B-сплайны -степени определяются рекурсией

Характеристики

[ редактировать ]

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

B-сплайн порядка является кусочно-полиномиальной функцией степени в переменной . Это определено свыше локации , называемые узлами или точками останова, которые должны быть в неубывающем порядке. . B-сплайн дает вклад только в диапазоне между первым и последним из этих узлов и равен нулю в остальных местах. Если каждый узел находится на одинаковом расстоянии (где ) от своего предшественника вектор узла и соответствующие B-сплайны называются «равномерными» (см. кардинальный B-сплайн ниже).

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

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

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

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

Выражения для частей полинома можно получить с помощью рекурсивной формулы Кокса – де Бура. [7]

То есть, кусочно-постоянная единица или ноль, указывающая, в каком участке узла x находится (ноль, если участок узла j повторяется). Уравнение рекурсии состоит из двух частей:

меняется от нуля до единицы по мере того, как x изменяется от к , и

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

Это соотношение ведет непосредственно к алгоритму BSPLV, закодированному на FORTRAN , который генерирует значения B-сплайнов порядка n в точке x . [8] Следующая схема иллюстрирует, как каждая часть порядка n представляет собой линейную комбинацию частей B-сплайнов порядка n - 1 слева от нее.

Применение формулы рекурсии с узлами при дает куски однородного B-сплайна порядка 3

Эти детали показаны на схеме. Свойство непрерывности квадратичной сплайн-функции и ее первой производной во внутренних узлах иллюстрируется следующим образом.

Вторая производная B-сплайна степени 2 разрывна в узлах:

Были предложены более быстрые варианты алгоритма де Бура, но они обладают сравнительно меньшей стабильностью. [9] [10]

Кардинальный B-сплайн

[ редактировать ]

Кардинальный B-сплайн имеет постоянное расстояние h между узлами. Кардинальные B-сплайны данного порядка n представляют собой просто сдвинутые копии друг друга. Их можно получить из более простого определения. [11]

Обозначение «заполнитель» используется для обозначения того, что n разделенная разность функции из двух переменных t и x следует взять, зафиксировав x и приняв во внимание как функция только t .

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

Например, если мы хотим интерполировать три значения между узлами B-сплайна ( ), мы можем записать сигнал как

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

Быструю интерполяцию B-сплайном в однородной выборочной области можно выполнить с помощью итеративной средней фильтрации. Альтернативно, прямоугольная функция равна sinc в области Фурье . Следовательно, интерполяция кубическим сплайном равна умножению сигнала в области Фурье на sinc 4 .

См. Распределение Ирвина – Холла # Особые случаи для алгебраических выражений для кардинальных B-сплайнов степени 1–4.

Термин P-сплайн означает «штрафной B-сплайн». Это относится к использованию представления B-сплайна, где коэффициенты определяются частично данными, которые необходимо подгонять , а частично дополнительной штрафной функцией , целью которой является обеспечение гладкости во избежание переобучения . [12]

Двумерные и многомерные аппроксимации данных P-сплайнами могут использовать произведение матриц с разделением граней для минимизации вычислительных операций. [13]

Производные выражения

[ редактировать ]

Производная B-сплайна степени k — это просто функция B-сплайнов степени k − 1: [14]

Это означает, что

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

Моменты одномерных B-сплайнов

[ редактировать ]

Одномерные B-сплайны, то есть B-сплайны, в которых положения узлов лежат в одном измерении, могут использоваться для представления одномерных функций плотности вероятности. . Примером может служить взвешенная сумма B-сплайновые базисные функции порядка , каждый из которых нормирован по площади к единице (т.е. не оценивается напрямую с использованием стандартного алгоритма де-Бура)

и с постоянным ограничением нормализации . -ый k необработанный момент нормализованного B-сплайна можно записать как среднее Дирихле Карлсона. , [15] который, в свою очередь, может быть решен точно с помощью контурного интеграла и итерационной суммы [16] как

с

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

Связь с кусочным/композитным Безье

[ редактировать ]

Кривая Безье также является полиномиальной кривой, которую можно определить с помощью рекурсии из кривых более низкой степени того же класса и закодировать в терминах контрольных точек, но ключевым отличием является то, что все члены рекурсии для сегмента кривой Безье имеют одинаковую область определения. определение (обычно ), тогда как носители двух терминов в рекурсии B-сплайна различны (крайние подинтервалы не являются общими). Это означает, что кривая Безье степени данный контрольные точки состоят из примерно в основном независимые сегменты, тогда как B-сплайн с теми же параметрами плавно переходит от подинтервала к подинтервалу. Чтобы получить что-то подобное из кривой Безье, нужно было бы наложить условие гладкости на переходы между сегментами, что привело бы к некоторому виду сплайна Безье (для которого многие контрольные точки будут определяться требованием гладкости).

Кусочная /составная кривая Безье — это серия кривых Безье, соединенных с непрерывностью не менее C0 (последняя точка одной кривой совпадает с начальной точкой следующей кривой). В зависимости от применения могут быть добавлены дополнительные требования к плавности (например, непрерывность C1 или C2). [17] Непрерывные кривые C1 имеют одинаковые касательные в точке разрыва (где две кривые встречаются). Непрерывные кривые C2 имеют одинаковую кривизну в точке излома. [18]

Подгонка кривой

[ редактировать ]

Обычно при подборе кривой набор точек данных аппроксимируется кривой, определяемой некоторой математической функцией. Например, распространенные типы аппроксимации кривой используют полином или набор экспоненциальных функций . Когда нет теоретической основы для выбора аппроксимирующей функции, кривая может быть аппроксимирована сплайновой функцией, состоящей из суммы B-сплайнов, с использованием метода наименьших квадратов . [19] [примечание 2] Таким образом, целевая функция для минимизации методом наименьших квадратов для сплайн-функции степени k равна

где W ( x ) — вес, а y ( x ) — исходное значение в точке x . Коэффициенты являются параметрами, которые необходимо определить. Значения узлов могут быть фиксированными или рассматриваться как параметры.

Основная трудность в применении этого процесса заключается в определении количества используемых узлов и места их размещения. де Бур предлагает различные стратегии решения этой проблемы. Например, расстояние между узлами уменьшается пропорционально кривизне (2-я производная) данных. [ нужна ссылка ] Опубликовано несколько приложений. использование B-сплайнов для аппроксимации одиночных кривых Лоренца и Гаусса Например, было исследовано . Вычислены оптимальные сплайн-функции степеней 3–7 включительно, основанные на симметричном расположении 5, 6 и 7 узлов, и метод применен для сглаживания и дифференцирования спектроскопических кривых. [20] В сопоставимом исследовании двумерная версия фильтрации Савицкого-Голея и метод сплайнов дали лучшие результаты, чем скользящее среднее или фильтрация Чебышева . [21]

Компьютерное проектирование и компьютерная графика

[ редактировать ]

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

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

Веса , и можно объединять в точки в трехмерном пространстве. Эти точки обычно называют контрольными точками.

Работая в обратном порядке, последовательность контрольных точек, значений узлов и порядка B-сплайна определяют параметрическую кривую. Такое представление кривой контрольными точками имеет несколько полезных свойств:

  1. Контрольные точки определить кривую. Если все контрольные точки каким-либо образом преобразуются вместе, например, перемещаются, поворачиваются, масштабируются или перемещаются с помощью любого аффинного преобразования, то соответствующая кривая преобразуется таким же образом.
  2. Поскольку B-сплайны отличны от нуля только для конечного числа узловых интервалов, если перемещается одна контрольная точка, соответствующее изменение параметрической кривой происходит чуть выше диапазона параметров небольшого количества узловых интервалов.
  3. Потому что , и всегда каждый , то кривая остается внутри ограничивающей рамки контрольных точек. Кроме того, в некотором смысле кривая в целом повторяет контрольные точки.

Менее желательной особенностью является то, что параметрическая кривая не интерполирует контрольные точки. Обычно кривая не проходит через контрольные точки.

Кубические B-сплайны

[ редактировать ]

Кубическая B-сплайновая кривая с нормированным параметром определяется четырьмя узлами (т.е. контрольными точками ) , , , и . Он образует многочлен степени 3, который можно записать как

.

Это соответствует полиномам B-сплайна

и кривую можно оценить как . Расширив это, мы можем записать полную полиномиальную форму, как показано ниже.

.

Поскольку это кубический полином, мы также можем записать его как кубическую кривую Безье с контрольными точками. , , , и , такой, что

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

Кривая NURBS - полиномиальная кривая, определенная в однородных координатах (синий) и ее проекция на плоскость - рациональная кривая (красный).

В компьютерном проектировании , компьютерном производстве и компьютерной графике мощным расширением B-сплайнов являются неоднородные рациональные B-сплайны (NURBS). NURBS — это по сути B-сплайны в однородных координатах . Как и B-сплайны, они определяются своим порядком, вектором узла и набором контрольных точек, но в отличие от простых B-сплайнов, каждая контрольная точка имеет вес. Когда вес равен 1, NURBS представляет собой просто B-сплайн, и поэтому NURBS обобщает как B-сплайны, так и кривые и поверхности Безье , причем основное отличие заключается в взвешивании контрольных точек, что делает кривые NURBS «рациональными».

Оценивая NURBS при различных значениях параметров, кривую можно проследить в пространстве; аналогично, оценивая поверхность NURBS при различных значениях двух параметров, поверхность можно представить в декартовом пространстве.

Как и B-сплайны, контрольные точки NURBS определяют форму кривой. Каждая точка кривой вычисляется путем взвешивания суммы нескольких контрольных точек. Вес каждой точки варьируется в зависимости от определяющего параметра. Для кривой степени d влияние любой контрольной точки не равно нулю только в d +1 интервалах (промежутках узлов) пространства параметров. Внутри этих интервалов вес изменяется в соответствии с полиномиальной функцией (базисной функцией) степени d . На границах интервалов базисные функции плавно стремятся к нулю, причем гладкость определяется степенью полинома.

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

Кривая NURBS имеет следующий вид: [22]

Здесь обозначения следующие. u — независимая переменная (вместо x ), k — количество контрольных точек, N — B-сплайн (используется вместо B ), n — степень полинома, P — контрольная точка, а w — вес. Знаменатель — это нормализующий коэффициент, который равен единице, если все веса равны единице.

Это принято писать так

в котором функции

известны как рациональные базисные функции.

Поверхность NURBS получается как тензорное произведение двух кривых NURBS с использованием двух независимых параметров u и v (с индексами i и j соответственно): [23]

с

как рациональные базисные функции.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Строго говоря, B-сплайны обычно определяются как непрерывные слева.
  2. ^ де Бур дает процедуры FORTRAN для аппроксимации экспериментальных данных методом наименьших квадратов.
  1. ^ Фарин, GE (2002). Кривые и поверхности для CAGD: практическое руководство . Морган Кауфманн. п. 119.
  2. ^ де Бур, с. 114.
  3. ^ Гэри Д. Нотт (2000), Интерполирующие кубические сплайны . Спрингер. п. 151.
  4. ^ Хартмут Праутч; Вольфганг Бём; Марко Палушны (2002). Методы Безье и B-сплайна . Математика и визуализация. Берлин, Гейдельберг: Springer Science & Business Media. п. 63. дои : 10.1007/978-3-662-04919-8 . ISBN  978-3-540-43761-1 . OCLC   851370272 .
  5. ^ Талебитоти, Р.; Шоджаифард, Миннесота; Ярмохаммадисатри, Садег (2015). «Оптимизация конструкции цилиндрического резервуара с использованием b-сплайновых кривых». Компьютер и жидкости . 109 : 100–112. doi : 10.1016/j.compfluid.2014.12.004 .
  6. ^ де Бур, с. 113.
  7. ^ де Бур, стр. 131.
  8. ^ де Бур, с. 134.
  9. ^ Ли, ETY (декабрь 1982 г.). «Упрощенная процедура расчета B-сплайна». Вычисление . 29 (4): 365–371. дои : 10.1007/BF02246763 . S2CID   2407104 .
  10. ^ Ли, ETY (1986). «Комментарии к некоторым алгоритмам B-сплайна». Вычисление . 36 (3): 229–238. дои : 10.1007/BF02240069 . S2CID   7003455 .
  11. ^ де Бур, с. 322.
  12. ^ Эйлерс, PHC и Маркс, BD (1996). Гибкое сглаживание с помощью B-сплайнов и штрафов (с комментариями и ответами). Статистическая наука 11 (2): 89–121.
  13. ^ Эйлерс, Пол ХК; Маркс, Брайан Д. (2003). «Многомерная калибровка с учетом температурного взаимодействия с использованием двумерной регрессии штрафных сигналов». Хемометрика и интеллектуальные лабораторные системы . 66 (2): 159–174. дои : 10.1016/S0169-7439(03)00029-7 .
  14. ^ де Бур, с. 115.
  15. ^ Карлсон, Британская Колумбия (1991). «B-сплайны, гипергеометрические функции и средние значения Дирихле» . Журнал теории приближения . 67 (3): 311–325. дои : 10.1016/0021-9045(91)90006-В .
  16. ^ Глюзенкамп, Т. (2018). «Вероятностная обработка неопределенности конечного размера взвешенных данных Монте-Карло». ЭПЖ Плюс . 133 (6): 218. arXiv : 1712.01293 . Бибкод : 2018EPJP..133..218G . дои : 10.1140/epjp/i2018-12042-x . S2CID   125665629 . )
  17. ^ Евгений Владимирович Шикин; Александр Иванович Плис (14 июля 1995 г.). Руководство по сплайнам для пользователя . ЦРК Пресс. стр. 96–. ISBN  978-0-8493-9404-1 .
  18. ^ Вернеке, Джози (1993). «8» . Наставник Inventor: программирование объектно-ориентированной 3D-графики с помощью Open Inventor, выпуск 2 (1-е изд.). Addison-Wesley Longman Publishing Co., Inc. Бостон, Массачусетс, США: ISBN  978-0201624953 .
  19. ^ де Бур, Глава XIV, с. 235.
  20. ^ Ганс, Питер; Гилл, Дж. Бернард (1984). «Сглаживание и дифференцирование спектроскопических кривых с использованием сплайн-функций». Прикладная спектроскопия . 38 (3): 370–376. Бибкод : 1984ApSpe..38..370G . дои : 10.1366/0003702844555511 . S2CID   96229316 .
  21. ^ Вичек, Мария; Нил, Шэрон Л.; Уорнер, Исайя М. (1986). «Фильтрация во временной области двумерных данных флуоресценции» . Прикладная спектроскопия . 40 (4): 542–548. Бибкод : 1986ApSpe..40..542V . дои : 10.1366/0003702864508773 . S2CID   28705788 . Архивировано из оригинала 23 июня 2017 года.
  22. ^ Пигль и Тиллер, глава 4, разд. 2
  23. ^ Пигль и Тиллер, глава 4, разд. 4

Цитируемые работы

Дальнейшее чтение

[ редактировать ]
  • Ричард Х. Бартельс; Джон С. Битти; Брайан А. Барски (1987). Введение в сплайны для использования в компьютерной графике и геометрическом моделировании . Морган Кауфманн. ISBN  978-1-55860-400-1 .
  • Жан Галье (1999). Кривые и поверхности в геометрическом моделировании: теория и алгоритмы . Морган Кауфманн. Глава 6. Кривые B-сплайна. Эта книга больше не издается и находится в свободном доступе у автора.
  • Хартмут Праутч; Вольфганг Бём; Марко Палушны (2002). Методы Безье и B-сплайна . Springer Science & Business Media. ISBN  978-3-540-43761-1 .
  • Дэвид Саломон (2006). Кривые и поверхности для компьютерной графики . Спрингер. Глава 7. Приближение B-сплайном. ISBN  978-0-387-28452-1 .
  • Хови, Чад (2022 г.). Формулировка и реализация на Python геометрии Безье и B-сплайна. ПЕСОК2022-7702C . (153 страницы)
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 36151bf5867b9a6e20a663e58cfd1531__1720258440
URL1:https://arc.ask3.ru/arc/aa/36/31/36151bf5867b9a6e20a663e58cfd1531.html
Заголовок, (Title) документа по адресу, URL1:
B-spline - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)