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