Математика / Интерполяция
Центрированный кубический B-сплайн на равномерной сетке
Центрированный кубический B-сплайн — базисная функция с опорой от −2 до 2. Внутри равномерной сетки значение сплайна зависит только от нескольких ближайших коэффициентов.
Формула
Копии с центрами −1, 0 и 1 имеют одинаковую форму и сдвинуты на шаг. Центральный базис достигает максимума 2/3 и обращается в нуль на расстоянии двух шагов.
Обозначения
- $B₃$
- центрированная кубическая базисная функция, —
- $t$
- смещение (x − xⱼ)/h в шагах сетки, —
- $h$
- одинаковый шаг между центрами, ед. x
- $cⱼ$
- коэффициент при j-й сдвинутой копии базиса, ед. y
Условия применения
Формула относится к кубическому базису на равномерной сетке. Центр базиса имеет t=0. Для вычисления функции используют сумму cⱼB₃((x−xⱼ)/h). Коэффициенты на участке должны быть известны и относиться к тому же базису.
Ограничения
У конца конечного набора узлов часто вводят повторные узлы либо специальные краевые функции. Для таких участков и неравномерной сетки используют общую рекурсию, учитывающую узлы. Коэффициенты базиса обычно отличаются от значений интерполируемой функции в узлах.
Подробное объяснение
B₃(t) ненулевая только на четырёх единичных промежутках. Поэтому удалённые коэффициенты не влияют на вычисление в данной точке. Для сетки с шагом h физическая ширина этой опоры равна 4h, а её центр совпадает с абсциссой соответствующего коэффициента.
Кубическую форму можно получить последовательной свёрткой четырёх копий единичного прямоугольного импульса. В каждой свёртке опора удлиняется, а кусочный полином получает ещё одну степень. Центрирование делает функцию чётной и позволяет записать её с двумя ненулевыми ветвями через модуль t.
В самом центре вес равен 2/3, в соседних центрах на расстоянии одного шага — 1/6. Значение суммы в узле поэтому зависит от трёх коэффициентов. Этот факт объясняет, почему подстановка исходных отсчётов в качестве коэффициентов обычно приводит к сглаживанию, а для интерполяции требуется решать отдельную систему.
Между соседними узлами вклад дают четыре сдвига. На середине ячейки веса зеркально совпадают. Сумма всех четырёх весов равна единице, поэтому постоянные коэффициенты восстанавливают постоянную функцию. Для проверки вычисления полезны также симметрия и нулевой вклад за пределом опоры.
Как пользоваться формулой
- Разделите смещение от каждого из ближайших центров до точки вычисления на положительный шаг сетки.
- Оставьте только центры с расстоянием меньше двух шагов; в самой границе вес также равен нулю.
- Для каждого оставшегося центра выберите ветвь по модулю смещения и посчитайте вес базисной функции.
- Умножьте полученные веса на коэффициенты и сложите, проверив единичную сумму весов во внутренней ячейке.
Историческая справка
Кардинальные сплайны на равномерной сетке связаны с работами Исаака Шёнберга 1940-х годов об аппроксимации данных через функции с локальной опорой. Опубликованная Шёнбергом работа о приближении равноотстоящих данных аналитическими функциями разделяет математические свойства базиса и практические формулы для табличных значений.
Для произвольных узлов численные библиотеки используют общую рекурсию B-сплайнов, называемую рекурсией Кокса — де Бура. Она приведена в документации SciPy вместе с представлением сплайна в виде суммы базисных функций. Явная центрированная запись для равномерного случая удобна тем, что позволяет проверять простые веса без запуска рекурсии.
Историческая линия формулы
Исторический контекст равномерного кардинального базиса дают работы Исаака Шёнберга. Рекурсия Кокса — де Бура описывает общее вычисление B-сплайнов. Выражение на странице представляет один центрированный кубический базис с одинаковым расстоянием между соседними узлами.
Пример
Для шага h = 1 центры −1, 0, 1, 2 имеют коэффициенты 1, 2, 4 и 5. Вычислим сплайн при x=0,5. Смещения t равны 1,5, 0,5, −0,5, −1,5. Ближние веса равны (4−6·0,25+3·0,125)/6=23/48, дальние веса равны (2−1,5)³/6=1/48. Весовая сумма составляет (1+46+92+5)/48=3. Проверка нормировки: (1+23+23+1)/48=1. Результат имеет единицы коэффициентов cⱼ. Если выбрать ближайшие центры 0 и 1 и отбросить остальные два, сумма весов уменьшится до 46/48 и получится другой результат. Даже постоянные коэффициенты при таком усечении перестанут возвращать константу.
Частая ошибка
Смещение в физических единицах нельзя подставлять без деления на h. Умножение весов на узловые отсчёты вместо коэффициентов обычно изменяет смысл расчёта. Для кубического базиса у границы с кратными узлами эта равномерная формула требует замены. Значение B₃ при |t|=2 равно нулю.
Практика
Задачи с решением
Веса в центральном узле
Условие. Коэффициенты при центрах −1, 0, 1 равны 1, 2, 4. Найдите значение сплайна при x = 0 и h = 1.
Решение. Два крайних веса равны 1/6, центральный 2/3. Сумма равна 1/6+2·2/3+4/6 = (1+8+4)/6.
Ответ. 13/6 ≈ 2,167.
Перевод смещения в шаги
Условие. Коэффициент стоит в центре xⱼ = 3 см, шаг 2 см. Найдите его вес при x = 3,5 см.
Решение. t=(3,5−3)/2=1/4. Первая ветвь даёт (4−6/16+3/64)/6 = 235/384.
Ответ. 235/384 ≈ 0,612.
Дополнительные источники
- https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BSpline.html
- https://doi.org/10.1090/qam/15914
Связанные формулы
Математика
Натуральный кубический сплайн: уравнения для вторых производных
Натуральный кубический сплайн: уравнения для вторых производных даёт не только вычислительную запись, но и правило, какие данные определяют результат и как проверить его численно. Формула применяется к строго указанной модели; ниже разобраны предпосылки, два решённых задания и границы корректной интерпретации.
Математика
Кубическая интерполяция Эрмита по значениям и наклонам
Кубический полином Эрмита согласует значения и первые производные на двух концах интервала. Четыре заданных условия определяют единственную кубическую или более простую кривую между узлами.
Математика
Кубический сплайн с заданными наклонами на концах
Две краевые строки системы кубического сплайна позволяют задать наклон в начале и в конце таблицы. Внутренние вторые производные при этом находят вместе с краевыми.