Кубические сплайны Эрмита обычно используются для интерполяции числовых данных, указанных при заданных значениях аргумента , для получения непрерывной функции . Данные должны состоять из желаемого значения функции и производной при каждом . (Если указаны только значения, производные должны быть оценены по ним.) Формула Эрмита применяется к каждому интервалу отдельно. Полученный сплайн будет непрерывным и будет иметь непрерывную первую производную.
Кубические полиномиальные сплайны можно задать и другими способами, наиболее распространенным является кубический сплайн Безье . Однако эти два метода предоставляют один и тот же набор сплайнов, и данные можно легко преобразовать между формами Безье и Эрмита; поэтому эти названия часто используются как синонимы.
Кубические полиномиальные сплайны широко используются в компьютерной графике и геометрическом моделировании для получения кривых или траекторий движения , которые проходят через заданные точки плоскости или трехмерного пространства . В этих приложениях каждая координата плоскости или пространства отдельно интерполируется кубической сплайновой функцией отдельного параметра t . Кубические полиномиальные сплайны также широко используются в приложениях структурного анализа, таких как теория балок Эйлера–Бернулли . Кубические полиномиальные сплайны также применялись для анализа смертности [2] и прогнозирования смертности. [3]
Кубические сплайны можно расширить до функций двух или более параметров несколькими способами. Бикубические сплайны ( бикубическая интерполяция ) часто используются для интерполяции данных на регулярной прямоугольной сетке, например, значений пикселей в цифровом изображении или данных о высоте на местности. Бикубические участки поверхности , определяемые тремя бикубическими сплайнами, являются важным инструментом в компьютерной графике.
Кубические сплайны часто называют csplines , особенно в компьютерной графике. Эрмитовы сплайны названы в честь Шарля Эрмита .
Интерполяция на одном интервале
Единичный интервал [0, 1]
На единичном интервале , если задана начальная точка в и конечная точка в с начальной касательной в точке и конечной касательной в точке , многочлен можно определить как ,
где t ∈ [0, 1].
Интерполяция на произвольном интервале
Интерполяция в произвольном интервале выполняется путем отображения последнего в посредством аффинной (степень-1) замены переменной. Формула имеет вид ,
где , и относится к базисным функциям, определенным ниже. Обратите внимание, что значения тангенса были масштабированы по сравнению с уравнением на единичном интервале.
Уникальность
Указанная выше формула определяет уникальный полиномиальный путь третьей степени между двумя точками с заданными касательными.
Доказательство. Пусть — два полинома третьей степени, удовлетворяющие заданным граничным условиям. Определим тогда:
Поскольку и являются полиномами третьей степени, то не более чем полином третьей степени. Поэтому должен иметь вид
Вычисление производной дает
Мы знаем, кроме того, что
Объединяя ( 1 ) и ( 2 ), мы заключаем, что , и, следовательно, таким образом
Представления
Мы можем записать интерполяционный полином как
где , , , — базисные функции Эрмита. Их можно записать разными способами, каждый из которых раскрывает разные свойства:
Столбец "Expanded" показывает представление, используемое в определении выше. Столбец "Factorized" сразу показывает, что и равны нулю на границах. Вы можете далее заключить, что и имеют нуль кратности 2 в точке 0, а и имеют такой же нуль в точке 1, поэтому они имеют наклон 0 на этих границах. Столбец "Bernstein" показывает разложение базисных функций Эрмита в полиномы Бернштейна порядка 3:
Используя эту связь, вы можете выразить кубическую интерполяцию Эрмита в терминах кубических кривых Безье относительно четырех значений и выполнить интерполяцию Эрмита с помощью алгоритма де Кастельжау . Он показывает, что в кубическом фрагменте Безье две контрольные точки в середине определяют касательные к интерполяционной кривой в соответствующих внешних точках.
Мы также можем записать полином в стандартной форме,
где контрольные точки и касательные являются коэффициентами. Это позволяет эффективно оценивать полином при различных значениях t, поскольку постоянные коэффициенты можно вычислить один раз и использовать повторно.
Интерполяция набора данных
Набор данных для можно интерполировать, применяя вышеописанную процедуру к каждому интервалу, где касательные выбираются разумным образом, что означает, что касательные для интервалов, имеющих общие конечные точки, равны. Интерполированная кривая тогда состоит из кусочно-кубических сплайнов Эрмита и глобально непрерывно дифференцируема в .
Выбор касательных не является единственным, и существует несколько вариантов.
Конечная разность
Самый простой выбор — разница в три очка, не требующая постоянной длины интервала:
для внутренних точек и односторонней разности в конечных точках набора данных.
Кардинальный сплайн
Кардинальный сплайн , иногда называемый каноническим сплайном , [4] получается [5], если
используется для вычисления касательных. Параметр c — это параметр натяжения , который должен находиться в интервале [0, 1] . В некотором смысле это можно интерпретировать как «длину» касательной. Выбор c = 1 дает все нулевые касательные, а выбор c = 0 дает сплайн Кэтмелла–Рома в случае равномерной параметризации.
Кривая названа в честь Эдвина Кэтмелла и Рафаэля Рома . Главное преимущество этого метода заключается в том, что точки вдоль исходного набора точек также составляют контрольные точки для сплайновой кривой. [7] На каждом конце кривой требуются две дополнительные точки. Равномерная реализация Кэтмелла–Рома может создавать петли и самопересечения. Хордовая и центростремительная реализации Кэтмелла–Рома [8] решают эту проблему, но используют немного другой расчет. [9] В компьютерной графике сплайны Кэтмелла–Рома часто используются для получения плавного интерполированного движения между ключевыми кадрами . Например, большинство анимаций траектории камеры, сгенерированных из дискретных ключевых кадров, обрабатываются с помощью сплайнов Кэтмелла–Рома. Они популярны в основном из-за того, что их относительно легко вычислять, гарантируя, что каждая позиция ключевого кадра будет точно достигнута, а также гарантируя, что касательные сгенерированной кривой непрерывны на нескольких сегментах.
Сплайн Коханека–Бартельса
Сплайн Коханека–Бартельса представляет собой дальнейшее обобщение того, как выбирать касательные по заданным точкам данных , и , с тремя возможными параметрами: натяжением, смещением и параметром непрерывности.
Монотонная кубическая интерполяция
Если для интерполяции монотонного набора данных используется кубический сплайн Эрмита любого из перечисленных выше типов , интерполированная функция не обязательно будет монотонной, но монотонность можно сохранить, подстроив касательные.
Интерполяция на единичном интервале с согласованными производными в конечных точках
Рассмотрим одну координату точек и как значения, которые функция f ( x ) принимает в целочисленных ординатах x = n − 1, n , n + 1 и n + 2,
Кроме того, предположим, что касательные в конечных точках определяются как центрированные разности соседних точек:
Чтобы оценить интерполированную функцию f ( x ) для действительного x , сначала разделим x на целую часть n и дробную часть u :
где обозначает функцию пола , которая возвращает наибольшее целое число, не превышающее x .
^ Стивен Ричардс (2020). «Эрмитово-сплайновая модель смертности после выхода на пенсию». Scandinavian Actuarial Journal . Taylor and Francis: 110–127. doi : 10.1080/03461238.2019.1642239.
^ Sixian Tang, Jackie Li и Leonie Tickle (2022). «Подход сплайна Эрмита для моделирования смертности населения». Annals of Actuarial Science . Cambridge University Press: 1–42. doi : 10.1017/S1748499522000173.
^ Петцольд, Чарльз (2009). «Канонические сплайны в WPF и Silverlight».
^ "Кардинальные сплайны". Microsoft Developer Network . Получено 2018-05-27 .
^ Кубическая интерполяция не является уникальной: эта модель, использующая сплайн Катмулла-Рома и базисные полиномы Лагранжа, проходит через все четыре точки. Примечание: если черная точка находится слева от желтой точки, то желтое горизонтальное расстояние отрицательно; если черная точка находится справа от зеленой точки, то зеленое горизонтальное расстояние отрицательно.
^ Н. Дин, М. С. Флоатер и К. Хорманн. Четырехточечное подразделение кривой на основе итерированных хордовых и центростремительных параметризаций. Computer Aided Geometric Design, 26(3):279–286, 2009.
^ PJ Barry и RN Goldman. Рекурсивный алгоритм оценки для класса сплайнов Catmull-Rom. SIGGRAPH Computer Graphics, 22(4):199–204, 1988.
^ Две иерархии сплайн-интерполяций. Практические алгоритмы для многомерных сплайнов высшего порядка.