Математика / Начала анализа
Кубическая интерполяция Эрмита по значениям и наклонам
Кубический полином Эрмита согласует значения и первые производные на двух концах интервала. Четыре заданных условия определяют единственную кубическую или более простую кривую между узлами.
Формула
H(x) = 3x² − 2x³
Обозначения
- $x_0,x_1,\ell$
- концы и длина интервала; ℓ > 0, единица аргумента
- $s$
- нормированный аргумент от 0 до 1, 1
- $y_0,y_1$
- значения на концах, единица функции
- $m_0,m_1$
- производные по исходному аргументу, единица функции / единица аргумента
- $h_{00},h_{10},h_{01},h_{11}$
- четыре кубические базисные функции, 1
Условия применения
Заданы два различных аргумента, значения и производные по тому же аргументу на обоих концах. Базисы: h₀₀ = 2s³−3s²+1, h₁₀ = s³−2s²+s, h₀₁ = −2s³+3s², h₁₁ = s³−s². Наклоны умножаются на длину ℓ исходного интервала.
Ограничения
Произвольные заданные наклоны могут создавать выбросы или немонотонность даже при упорядоченных концах. Оценка производной из шумных измерений добавляет неопределённость. Один кубический участок не гарантирует непрерывную вторую производную при соединении с соседним.
Подробное объяснение
Два значения и два наклона дают четыре линейных условия на коэффициенты кубического полинома. Базис Эрмита устроен так, что каждый из четырёх членов отвечает за одно условие и не меняет остальные. Поэтому можно независимо задать положение и касательную на обоих концах.
Нормирование s = (x−x₀)/ℓ переносит любой интервал на [0;1]. Однако производные m₀ и m₁ заданы по x, а не по s. По правилу цепочки производная по s в ℓ раз больше, поэтому у наклонных базисов в формуле появляется множитель ℓ.
Базисы h₀₀ и h₀₁ дают единицу на соответствующем конце и ноль на другом, а их производные на концах нулевые. Базисы h₁₀ и h₁₁ сами обращаются в ноль на обоих концах, зато задают нужную единичную производную в нормированном аргументе.
Если оба концевых наклона нулевые, кривая выходит и приходит горизонтально. Если наклоны совпадают с наклоном секущей, все четыре условия удовлетворяет одна прямая, и кубический полином вырождается в неё. Степень не обязана быть ровно третьей.
Проверка только значений недостаточна: ошибочный множитель длины может оставить правильные концы и испортить скорости. После построения следует продифференцировать полином по исходному x и проверить оба наклона, а при физической модели — допустимость поведения внутри интервала.
Как пользоваться формулой
- Запишите значения и производные в двух узлах, проверьте единицы наклона и найдите положительную длину ℓ интервала.
- Переведите аргумент в s и вычислите четыре базиса Эрмита; для внутренних точек s лежит между нулём и единицей.
- Сложите два значения с их базисами и два наклонных вклада, обязательно умножая каждый m на длину ℓ.
- Проверьте четыре условия на концах, включая производные по x; затем оцените выбросы и монотонность внутри участка.
Историческая справка
Название Эрмита связано с математической традицией XIX века, в которой интерполяционные условия расширяются от значений функции к её производным. В отличие от обычного полинома по различным узлам здесь дополнительная информация относится к поведению кривой в тех же точках. Справочник NIST DLMF описывает эрмитов тип интерполяции отдельно от формул, использующих только значения. Современная кубическая двухузловая запись делает этот принцип удобным для локальных участков и плавного соединения касательных. При переходе к программной геометрии особенно важным становится нормирование интервала: коэффициенты базисов универсальны, а реальные производные требуют масштаба длины. Это вычислительное применение шире биографии Шарля Эрмита и не служит утверждением, что все нынешние сплайны и методы движения были предложены им.
Историческая линия формулы
Используется имя Эрмита для интерполяции, учитывающей производные. Конкретная кубическая двухузловая форма представлена как стандартное локальное построение. Современные приложения в геометрии и движении не приписываются одной исторической публикации.
Пример
Пусть x₀ = 0, x₁ = 1, y₀ = 0, y₁ = 1 и оба наклона равны нулю; все данные безразмерны. Тогда ℓ = 1 и остаётся H(x) = −2x³+3x². При x = 0,25 получаем H = −2·0,015625+3·0,0625 = 0,15625. Проверим все условия: H(0) = 0, H(1) = 1, H′(x) = 6x−6x², поэтому H′(0) = H′(1) = 0. Независимо при s = 0,25 базис h₀₁ = 0,15625, а вклад y₀ и обоих наклонов нулевой. Ответ отличается от линейного значения 0,25, потому что у прямой наклон равен единице и она не выполнила бы заданные горизонтальные касательные. На [0;1] производная 6x(1−x) неотрицательна, так что именно этот участок монотонен.
Частая ошибка
Не забывайте длину интервала при производных по x. Не проверяйте только положения, игнорируя наклоны. Не называйте любой кубический участок монотонным по одним концевым значениям. Не путайте базисы значений с базисами производных. Не считайте степень обязательно третьей, если условия удовлетворяет прямая.
Практика
Задачи с решением
Совпадение с прямой
Условие. На [0;1] заданы y₀ = 0, y₁ = 1, m₀ = m₁ = 1. Найдите H(0,4).
Решение. Прямая H(x) = x выполняет оба значения и оба наклона. Единственность полинома степени не выше трёх даёт ту же прямую. Ответ 0,4.
Ответ. H(0,4) = 0,4.
Положение и скорость
Условие. На времени [0;2] с заданы положения 0 и 4 м, скорости на концах нулевые. Найдите положение и скорость в 1 с.
Решение. Нормирование s = t/2 даёт H = 4(3s²−2s³) = 3t²−t³ в метрах. При t = 1 положение 2 м; производная 6t−3t² даёт 3 м/с.
Ответ. В 1 с: 2 м и 3 м/с.
Дополнительные источники
- https://dlmf.nist.gov/3.3
- https://mathshistory.st-andrews.ac.uk/Biographies/Hermite/
Связанные формулы
Математика
Линейная интерполяция: значение между двумя узлами
Линейная интерполяция оценивает значение между двумя заданными точками по соединяющей их прямой. Доля положения внутри интервала задаёт веса концов; оценка учитывает наклон, но не кривизну исходного графика.
Математика
Интерполяция Лагранжа: полином через заданные точки
Формула Лагранжа строит полином степени не выше n по n+1 различным узлам. Каждый базисный множитель выбирает значение своего узла и обращает вклады остальных узлов в ноль.
Математика
Интерполяция Ньютона: таблица разделённых разностей
Форма Ньютона строит интерполяционный полином по треугольной таблице разделённых разностей. Новый узел добавляет коэффициент при очередном произведении, не требуя переписывать уже найденные нижние порядки.
Математика
Барицентрическая интерполяция: веса и вычисление полинома
Барицентрическая форма вычисляет полином Лагранжа через заранее рассчитанные веса узлов. Она удобна для множества запросов по одной таблице; при точном совпадении аргумента с узлом нужно сразу вернуть узловое значение.