stringtranslate.com

B-сплайн

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

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

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

Введение

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

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

Определение

Кардинальный квадратичный 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-сплайна и функции Безье широко применяются в методах оптимизации формы. [4]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

P-сплайн

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

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

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

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

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

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

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

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

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

с

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

Развернув это, мы можем написать

.

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

Кусочно-кубический 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 имеет следующий вид: [21]

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

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

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

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

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

с

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

Смотрите также

Примечания

  1. ^ Строго говоря, B-сплайны обычно определяются как непрерывные слева.
  2. ^ де Бур дает процедуры FORTRAN для аппроксимации экспериментальных данных методом наименьших квадратов.

Рекомендации

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

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

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

Внешние ссылки