stringtranslate.com

Кубический сплайн Эрмита

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

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

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

Кубические полиномиальные сплайны широко используются в компьютерной графике и геометрическом моделировании для получения кривых или траекторий движения , проходящих через заданные точки плоскости или трехмерного пространства . В этих приложениях каждая координата плоскости или пространства отдельно интерполируется кубической сплайн-функцией отдельного параметра  t . Кубические полиномиальные сплайны также широко используются в приложениях структурного анализа, таких как теория балок Эйлера – Бернулли . Кубические полиномиальные сплайны также применялись для анализа смертности [2] и прогнозирования смертности. [3]

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

Кубические сплайны часто называют csplines , особенно в компьютерной графике. Сплайны Эрмита названы в честь Чарльза Эрмита .

Интерполяция на одном интервале

Единичный интервал [0, 1]

Четыре базисные функции Эрмита. Интерполянт в каждом подинтервале представляет собой линейную комбинацию этих четырех функций.

На единичном интервале , учитывая начальную точку в и конечную точку в с начальной касательной в и конечной касательной в , полином может быть определен формулой

t

Интерполяция на произвольном интервале

Интерполяция в произвольном интервале осуществляется путем сопоставления последнего с помощью аффинной (степени-1) замены переменной. Формула

Уникальность

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

Доказательство. Пусть – два полинома третьей степени, удовлетворяющие заданным граничным условиям. Определите тогда:

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

Мы знаем, кроме того, что

Сложив ( 1 ) и ( 2 ) вместе, мы получаем, что и, следовательно, таким образом

Представительства

Мы можем записать интерполяционный полином как

В «развернутом» столбце показано представление, использованное в приведенном выше определении. Столбец «факторизованный» сразу показывает это и на границах равны нулю. Далее вы можете заключить, что и имеют ноль кратности 2 в 0, и имеют такой ноль в 1, поэтому на этих границах они имеют наклон 0. В столбце «Бернштейн» показано разложение базисных функций Эрмита на полиномы Бернштейна третьего порядка:

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

Мы также можем записать полином в стандартной форме как

t

Интерполяция набора данных

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

Выбор касательных не уникален, доступно несколько вариантов.

Конечная разница

Пример с касательными в конечной разности

Самый простой выбор — разница в три пункта, не требующая постоянной длины интервала:

для внутренних точек и односторонняя разница в конечных точках набора данных.

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

Пример кардинального сплайна в 2D. Линия представляет собой кривую, а квадраты представляют собой контрольные точки . Обратите внимание, что кривая не достигает первой и последней точек; однако эти точки влияют на форму кривой. Используемый параметр натяжения составляет 0,1.

Кардинальный сплайн , иногда называемый каноническим сплайном , [4] получается [5], если

используется для вычисления тангенсов. Параметр c — это параметр натяжения , который должен находиться в интервале [0, 1] . В каком-то смысле это можно интерпретировать как «длину» касательной. Выбор c  = 1 дает все нулевые касательные, а выбор c  = 0 дает сплайн Катмулла – Рома в случае равномерной параметризации.

Сплайн Катмулла – Рома

Геометрическая интерпретация кубической интерполяции Катмулла – Рома черной точки с равномерно расположенными абсциссами. [6]

Для касательных, выбранных в качестве

получен сплайн Катмулла–Рома, являющийся частным случаем кардинального сплайна . Это предполагает равномерное расстояние между параметрами.

Кривая названа в честь Эдвина Кэтмелла и Рафаэля Рома . Основное преимущество этого метода заключается в том, что точки исходного набора точек также являются контрольными точками сплайновой кривой. [7] На каждом конце кривой требуются две дополнительные точки. Единая реализация Catmull-Rom может создавать циклы и самопересечения. Хордальная и центростремительная реализации Катмулла-Рома [8] решают эту проблему, но используют немного другой расчет. [9] В компьютерной графике сплайны Катмулла-Рома часто используются для получения плавного интерполированного движения между ключевыми кадрами . Например, большинство анимаций траектории камеры, созданных на основе отдельных ключевых кадров, обрабатываются с помощью сплайнов Catmull-Rom. Они популярны главным образом потому, что их относительно легко вычислить, они гарантируют точное попадание в каждую позицию ключевого кадра, а также гарантируют, что касательные сгенерированной кривой непрерывны на нескольких сегментах.

Сплайн Кочанека – Бартельса

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

Монотонная кубическая интерполяция

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

Интерполяция на единичном интервале с совпадающими производными в конечных точках

Рассмотрим одну координату точек и как значения, которые функция f ( x ) принимает в целочисленных ординатах x  = n  - 1, n , n  + 1 и n  + 2,

Кроме того, предположим, что касательные в конечных точках определяются как центрированные разности соседних точек:

Чтобы оценить интерполированное значение f ( x ) для действительного x , сначала разделите x на целую часть n и дробную часть u :

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

Тогда сплайн Катмулла–Рома равен [10]

транспонирование матрицыметода Горнера

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

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

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

  1. ^ Эрвин Крейциг (2005). Высшая инженерная математика (9-е изд.). Уайли. п. 816. ИСБН 9780471488859.
  2. ^ Стивен Ричардс (2020). «Сплайновая модель Эрмита послепенсионной смертности». Скандинавский актуарный журнал . Тейлор и Фрэнсис: 110–127. дои : 10.1080/03461238.2019.1642239.
  3. ^ Сиксиан Тан, Джеки Ли и Леони Тикл (2022). «Сплайновый подход Эрмита для моделирования смертности населения». Анналы актуарной науки . Издательство Кембриджского университета: 1–42. дои : 10.1017/S1748499522000173.
  4. ^ Петцольд, Чарльз (2009). «Канонические сплайны в WPF и Silverlight».
  5. ^ "Кардинальные сплайны". Сеть разработчиков Microsoft . Проверено 27 мая 2018 г.
  6. ^ Кубическая интерполяция не уникальна: эта модель, использующая сплайн Катмулла-Рома и базисные полиномы Лагранжа, проходит через все четыре точки. Примечание. Если черная точка находится слева от желтой точки, расстояние по горизонтали желтого будет отрицательным; если черная точка находится справа от зеленой точки, зеленое расстояние по горизонтали отрицательное.
  7. ^ Кэтмалл, Эдвин ; Ром, Рафаэль (1974), «Класс локальных интерполирующих сплайнов», в Барнхилле, РЭ; Ризенфельд, РФ (ред.), Компьютерное геометрическое проектирование , Нью-Йорк: Academic Press, стр. 317–326.
  8. ^ Н. Дин, М.С. Флоатер и К. Хорманн. Подразделение кривой по четырем точкам на основе повторяющихся хордальных и центростремительных параметризаций. Компьютерное геометрическое проектирование, 26(3):279–286, 2009.
  9. ^ П. Дж. Барри и Р. Н. Голдман. Алгоритм рекурсивного вычисления для класса сплайнов Катмулла-Рома. SIGGRAPH Компьютерная графика, 22 (4): 199–204, 1988.
  10. ^ Две иерархии сплайн-интерполяций. Практические алгоритмы для многомерных сплайнов высшего порядка.

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