Математика / Интерполяция
Рациональная интерполяция Флоатера — Хорманна при d = 1
При d = 1 рациональный интерполянт Флоатера — Хорманна сочетает соседние линейные полиномы. На равномерной сетке внутренние веса вдвое больше крайних по модулю.
Формула
Кривые совпадают в четырёх чёрных узлах. В точке 1,5 рациональная кривая даёт 2,1, а парабола — 2,25.
Обозначения
- $r(x)$
- значение рационального интерполянта, ед. y
- xⱼ, yⱼ
- абсцисса и ордината узла j, ед. x и ед. y
- $hⱼ$
- шаг xⱼ₊₁ − xⱼ, ед. x
- $wⱼ$
- барицентрический вес, 1 / ед. x
- $1условие$
- индикатор присутствия слагаемого, —
Условия применения
Нужны как минимум два отсчёта с возрастающими вещественными абсциссами. Для крайних весов отсутствующее слагаемое целиком пропускают, включая обращение несуществующего шага. Если x совпадает с узлом, возвращают его ординату.
Ограничения
Формула весов относится только к d = 1. Гладкость на вещественной оси и отсутствие вещественных полюсов в точной арифметике не дают оценки погрешности на произвольных данных. Вне узлового диапазона результат нужно рассматривать как экстраполяцию.
Подробное объяснение
Схема соединяет прямые через пары соседних узлов в одну гладкую рациональную функцию. Параметр d здесь задаёт степень каждой локальной прямой. Итоговая функция обычно не является ни ломаной, ни единым полиномом через все табличные значения.
Каждый внутренний узел входит в две пары, поэтому в его вес попадают две величины, обратные соседним шагам. Крайний узел входит только в одну пару. Общий знак всех весов можно поменять: числитель и знаменатель изменят знак одновременно, а частное сохранится.
На равномерной сетке шаг сокращается. Для четырёх узлов подойдут веса −1, 2, −2, 1. Отдельные дроби в числителе и знаменателе велики вблизи узла, но в пределе доминирующие слагаемые имеют общий множитель и дают ординату этого узла.
При любых значениях d результат воспроизводит полиномы степени не выше d. Поэтому для d = 1 удобно проверить программу на линейных данных. Квадратичная таблица в примере показывает отличие от обычного полиномиального барицентрического интерполянта: значения совпадут в узлах, но внутри промежутков могут разойтись.
Как пользоваться формулой
- Отсортируйте абсциссы, исключите повторяющиеся узлы и вычислите положительные расстояния между соседями.
- Назначьте крайним узлам по одному обратному шагу, внутренним — сумму двух, затем расставьте знаки.
- Если аргумент равен узловому, сразу верните ординату. В остальных случаях вычислите четыре или больше дробей.
- Просуммируйте дроби в знаменателе и те же дроби с ординатами в числителе, затем разделите суммы.
Историческая справка
Майкл Флоатер и Кай Хорманн опубликовали в Numerische Mathematik работу о барицентрической рациональной интерполяции в 2007 году. В ней изучается семейство функций без вещественных полюсов и с порядком приближения, зависящим от степени локальных полиномов. Формула на странице относится к одному низкому порядку этого семейства.
В современных численных библиотеках параметр d обычно передаётся отдельно от таблицы значений. Так один интерфейс позволяет сравнить несколько вариантов рациональной интерполяции при одинаковой сетке. При d = 1 локальные полиномы становятся прямыми, поэтому общая формула весов сводится к сложению обратных шагов. Именно этот случай разобран в примерах.
Историческая линия формулы
Название относится к семейству рациональных интерполянтов, построенному Майклом Флоатером и Каем Хорманном. Формула весов для d = 1 — специализация их общей схемы. Барицентрическая запись полиномиальной интерполяции составляет отдельную, более раннюю линию методов.
Пример
Возьмём xⱼ = 0, 1, 2, 3 и yⱼ = 0, 1, 4, 9. Веса −1, 2, −2, 1. В точке x = 1,5 дроби wⱼ/(x−xⱼ) равны −2/3, 4, 4, −2/3. Знаменатель равен 20/3. Числитель равен 0+4+16−6=14, так что результат r(1,5)=14/(20/3)=2,1. Полином x², совпадающий с той же таблицей, даёт 2,25, а прямая через ближайшие узлы даёт 2,5. Различие показывает, что степень локального полинома не определяет итоговую функцию. Размерности дробей в числителе и знаменателе сокращаются до единиц исходных ординат. Для безразмерной таблицы итог тоже безразмерен.
Частая ошибка
Два крайних веса на равномерной сетке отличаются по модулю от внутренних. Если подставить в дробь точную узловую абсциссу, возникнет деление на нуль, хотя значение интерполянта задано. При использовании узлов в произвольном порядке соседние шаги могут иметь разные знаки, поэтому сначала восстанавливают возрастающий порядок.
Практика
Задачи с решением
Аргумент в первом интервале
Условие. Для таблицы квадрата в узлах 0, 1, 2, 3 найдите r(0,5).
Решение. Дроби равны −2, −4, 4/3 и −2/5. Их сумма −76/15, взвешенная сумма по y равна −34/15. После сокращения получается 17/38.
Ответ. r(0,5) = 17/38 ≈ 0,4474.
Неравномерная сетка и линейная таблица
Условие. В узлах 0, 2, 3 заданы значения 1, 5, 7. Найдите r(1).
Решение. Шаги 2 и 1, веса −1/2, 3/2, −1. Дроби при x=1 равны −1/2, −3/2, 1/2. Их сумма −3/2, числитель −1/2−15/2+7/2=−9/2.
Ответ. r(1)=3, что совпадает с 2x+1.
Дополнительные источники
- https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.FloaterHormannInterpolator.html
- https://www.inf.usi.ch/faculty/hormann/papers/Floater.2006.BRI.pdf
Связанные формулы
Математика
Барицентрическая интерполяция: веса и вычисление полинома
Барицентрическая форма вычисляет полином Лагранжа через заранее рассчитанные веса узлов. Она удобна для множества запросов по одной таблице; при точном совпадении аргумента с узлом нужно сразу вернуть узловое значение.
Математика
Линейная интерполяция: значение между двумя узлами
Линейная интерполяция оценивает значение между двумя заданными точками по соединяющей их прямой. Доля положения внутри интервала задаёт веса концов; оценка учитывает наклон, но не кривизну исходного графика.
Математика
Аппроксимант Паде [1/1]: дробное приближение ряда
Аппроксимант Паде [1/1]: дробное приближение ряда даёт не только вычислительную запись, но и правило, какие данные определяют результат и как проверить его численно. Формула применяется к строго указанной модели; ниже разобраны предпосылки, два решённых задания и границы корректной интерпретации.