Сплайн (математика) - Spline (mathematics)

Отдельные узлы в 1/3 и 2/3 образуют сплайн из трех кубических многочленов, пересекающихся с C2 преемственность. Тройные узлы на обоих концах интервала гарантируют, что кривая интерполирует конечные точки.

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

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

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

Вступление

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

Определение

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

Мы хотим S быть кусочно определенным. Для этого пусть интервал [а,б] быть покрытым k упорядоченные подынтервалы с попарно непересекающимися интерьеры,

По каждому из этих k "кусочки" [а,б], мы хотим определить многочлен, назовем его пя.

.

На я-й подынтервал [а,б], S определяется пя,

Данный к + 1 точки тя называются узлы. Вектор называется узел вектор для сплайна. Если узлы равномерно распределены в интервале [а,б] мы говорим, что сплайн униформа, иначе мы говорим, что это неоднородный.

Если полиномиальные части пя у каждого есть высшее образование п, то говорят, что сплайн имеет степень (или изпорядок п + 1).

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

Вектор так, чтобы сплайн имел гладкость в тя за называется вектор гладкости для шлица.

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

При математическом изучении полиномиальных сплайнов вопрос о том, что происходит, когда два узла, скажем, тя и тя+1, перемещаются вместе, есть простой ответ. Полиномиальный кусокпя(т) исчезает, и кускипя−1(т) и пя+1(т) объединяются с суммой потерь непрерывности длятя и тя+1.То есть,

куда

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

куда тя повторяется jя раз для .

А параметрическая кривая на интервале [а,б]

это сплайновая кривая если оба Икс и Y являются сплайн-функциями одинаковой степени с одинаковыми расширенными векторами узлов на этом интервале.

Примеры

Предположим, что интервал [а,б] равно [0,3], а подынтервалы - [0,1], [1,2] и [2,3]. Предположим, что полиномиальные части должны иметь степень 2, а части на [0,1] и [1,2] должны соединяться по значению и первой производной (на т= 1), в то время как части на [1,2] и [2,3] соединяются просто по стоимости (при т = 2). Это определило бы тип сплайна S(т) для которого

будет членом этого типа, а также

будет членом этого типа (примечание: в то время как полиномиальная часть 2т не является квадратичным, результат по-прежнему называется квадратичным сплайном. Это демонстрирует, что степень сплайна - это максимальная степень его полиномиальных частей.) Расширенный вектор узла для этого типа сплайна будет (0, 1, 2, 2, 3).

Самый простой сплайн имеет степень 0. Его также называют сплайном. ступенчатая функция. Следующий по простоте сплайн имеет степень 1. Его также называют сплайном. линейный шлиц. Замкнутый линейный сплайн (т. Е. Первый узел и последний одинаковые) на плоскости - это просто многоугольник.

Обычный шлиц - это естественный кубический шлиц степени 3 с непрерывностью C2.Слово "естественный" означает, что вторые производные полиномов сплайна устанавливаются равными нулю в конечных точках интервала интерполяции.

Это заставляет сплайн быть прямой линией за пределами интервала, не нарушая при этом его гладкости.

Алгоритм вычисления натуральных кубических сплайнов

Кубические шлицы имеют вид .
Заданный набор координат мы хотим найти набор шлицы за

Они должны удовлетворять:

  • .

Определим один кубический сплайн как пятерка куда и соответствуют коэффициентам в форме, показанной ранее, и равно

Алгоритм вычисления естественных кубических сплайнов:
Ввод: набор координат , с
Выход: установить сплайны, состоящие из п 5-кортежи.

  1. Создать новый массив а размера п + 1 и для набор
  2. Создать новые массивы б и d каждый размер п.
  3. Создать новый массив час размера п и для набор
  4. Создать новый массив α размера п и для набор .
  5. Создать новые массивы c, л, μ, и z каждый размер .
  6. Набор
  7. За
    1. Набор .
    2. Набор .
    3. Набор .
  8. Набор
  9. За
    1. Набор
    2. Набор
    3. Набор
  10. Создайте новый набор сплайнов и назовите его output_set. Заполните его п шлицы S.
  11. За
    1. Набор Sя,а = ая
    2. Набор Sя,б = бя
    3. Набор Sя,c = cя
    4. Набор Sя,d = dя
    5. Набор Sя,Икс = Икся
  12. Выход output_set

Примечания

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

на месте этой высокой множественности. По соглашению, любая такая ситуация указывает на простой разрыв между двумя соседними полиномиальными частями. Это означает, что если узел тя появляется больше чем п +1 раз в расширенном векторе узла, все его экземпляры превышают (п + 1) th можно убрать без изменения характера сплайна, так как все кратности п + 1, п + 2, п + 3 и т. Д. Имеют то же значение. Принято считать, что таким образом отбирался любой узловой вектор, определяющий любой тип сплайна.

Классический сплайн типа степени п используется в численном анализе, имеет преемственность

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

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

Этот тип сплайна также используется в PostScript а также в определении некоторых компьютерных типографских шрифтов.

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

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

Общее выражение для C2 Интерполяция кубического сплайна

Общее выражение для яth C2 интерполяция кубического сплайна в точке Икс с естественным условием можно найти по формуле

куда

  • - значения второй производной на яй узел.
  • - значения функции на яй узел.

Представления и имена

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

Размерность равна сумме степени плюс кратности

Если на тип сплайна накладываются дополнительные линейные условия, то результирующий сплайн будет находиться в подпространстве. Например, пространство всех естественных кубических сплайнов является подпространством пространства всех кубических сплайнов. C2 шлицы.

Литература по шлицам изобилует названиями специальных типов шлицев, которые связаны с:

  • Варианты, сделанные для представления сплайна, например:
  • Варианты, сделанные при формировании вектора расширенного узла, например:
    • используя отдельные узлы для Cп-1 непрерывность и равномерное расположение этих узлов на [а,б] (давая нам равномерные шлицы)
    • использование узлов без ограничения расстояния (что дает нам неоднородные шлицы)
  • Любые особые условия на сплайн, например:
    • обеспечение нулевых вторых производных на а и б (давая нам естественные шлицы)
    • требуя, чтобы заданные значения данных были на сплайне (что дает нам интерполирующие сплайны)

Часто специальное имя выбиралось для типа сплайна, удовлетворяющего двум или более основным пунктам, указанным выше. Например, Шпонка Эрмита представляет собой сплайн, который выражается с помощью полиномов Эрмита для представления каждой из отдельных частей полинома. Они чаще всего используются с п = 3; то есть как Кубические шлицы Эрмита. В этой степени они могут быть дополнительно выбраны только непрерывными по касательной (C1); откуда следует, что все внутренние узлы двойные. Было изобретено несколько способов подгонки таких сплайнов к заданным точкам данных; то есть превратить их в интерполирующие сплайны и сделать это путем оценки правдоподобных значений касательной в местах пересечения каждых двух частей полинома (что дает нам Кардинальные шлицы, Шлицы Catmull-Rom, и Шлицы Кочанека-Бартельса, в зависимости от используемого метода).

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

  • Для данного значения аргумента т, найдите интервал, в котором он лежит
  • Найдите полиномиальный базис, выбранный для этого интервала
  • Найдите значение каждого базисного полинома в т:
  • Найдите коэффициенты линейной комбинации тех базисных многочленов, которые дают сплайн на этом интервале. c0, ..., ck-2
  • Сложите эту линейную комбинацию значений базисного полинома, чтобы получить значение сплайна в т:

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

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

История

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

Принято считать, что первая математическая ссылка на сплайны - это работа 1946 г. Шенберг, что, вероятно, первое место, где слово «сплайн» используется в связи с гладкой, кусочно-полиномиальной аппроксимацией. Однако эти идеи уходят корнями в авиастроение и судостроение. В предисловии к (Bartels et al., 1987), Робин Форрест описывает "подъем ", метод, используемый в британской авиационной промышленности во время Вторая Мировая Война для создания шаблонов для самолетов, пропуская тонкие деревянные полоски (так называемые "шлицы ") через точки, расположенные на полу большого дизайнерского чердака, техника, заимствованная из проектирования корпуса корабля. В течение многих лет практика проектирования судов использовала модели для проектирования в малом. Успешный проект затем был нанесен на миллиметровую бумагу и ключевые точки графика были перенесены на увеличенную миллиметровую бумагу в полный размер. Тонкие деревянные полоски обеспечивали интерполяцию ключевых точек в плавные кривые. Полосы удерживались на месте в дискретных точках (которые Форрест назвал «утками» ; Шенберг использовал "собак" или "крыс") и между этими точками принимал формы с минимальной энергией деформации. По словам Форреста, одним из возможных стимулов для математической модели этого процесса была потенциальная потеря критических компонентов конструкции для всего самолета. на случай попадания в чердак вражеской бомбы. Это привело к «коническому подъему», при котором конические сечения использовались для моделирования положения кривой между утками. Конический подъем был заменен тем, что мы назвали бы сплайнами в начале 1960-х годов. Эд на работе Дж. К. Фергюсон в Боинг и (несколько позже) М.А. Сабин в Британская авиастроительная корпорация.

Слово «сплайн» изначально было Восточноанглийский диалектное слово.

Использование шлицев для моделирования автомобильных кузовов имеет несколько независимых начал. Кредит запрашивается от имени de Casteljau в Citroën, Пьер Безье в Renault, и Биркофф, Карабедян, и де Бур в Дженерал Моторс (см. Birkhoff and de Boor, 1965), все для работ, происходивших в самом начале 1960-х или в конце 1950-х годов. По крайней мере, одна из статей де Кастельжау была опубликована, но не широко, в 1959 году. Дженерал Моторс в результате в начале 1960-х годов был опубликован ряд статей, в том числе некоторые фундаментальные работы по B-шлицы.

Работа также велась в компании Pratt & Whitney Aircraft, где были задействованы два автора (Ahlberg et al., 1967) - первой трактовки шлицев в целую книгу, а также Модель бассейна Дэвида Тейлора, Федора Тейльхаймера. Работа на Дженерал Моторс подробно описано в (Birkhoff, 1990) и (Young, 1997). Дэвис (1997) резюмирует некоторые из этих материалов.

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

  • Фергюсон, Джеймс К., Многопараметрическая интерполяция кривой, J. ACM, т. 11, вып. 2, стр. 221-228, апрель 1964 г.
  • Альберг, Нильсон и Уолш, Теория сплайнов и их приложения, 1967.
  • Биркгоф, Гидродинамика, расчеты реакторов и представление поверхностей, в: Стив Нэш (ред.), История научных вычислений, 1990.
  • Бартельс, Битти и Барский, Введение в сплайны для использования в компьютерной графике и геометрическом моделировании, 1987.
  • Биркгоф и де Бур, Кусочно-полиномиальная интерполяция и аппроксимация, в: Х.Л. Гарабедян (ред.), Proc. Симпозиум General Motors 1964 г., С. 164–190. Эльзевир, Нью-Йорк и Амстердам, 1965 год.
  • Дэвис, B-шлицы и геометрический дизайн, Новости SIAM, т. 29, нет. 5, 1997.
  • Эпперсон, История сплайнов, Дайджест НС, т. 98, нет. 26, 1998.
  • Стоер и Булирш, Введение в численный анализ. Springer-Verlag. п. 93-106. ISBN  0387904204
  • Шенберг, Вклад в проблему аппроксимации эквидистантных данных аналитическими функциями, Кварта. Appl. Математика, т. 4. С. 45–99 и 112–141, 1946.
  • Янг, Гаррет Биркгоф и прикладная математика, Уведомления AMS, т. 44, нет. 11. С. 1446–1449, 1997.
  • Чапра, Канале, "Численные методы для инженеров", 5-е издание.

внешняя ссылка

Теория

Функция Excel

Онлайн-утилиты

Компьютерный код