Математика / Интерполяция
Сплайн с условием not-a-knot на концах
Условие not-a-knot выбирает кубический сплайн без заданных наклонов или нулевой кривизны на концах. Оно требует, чтобы первые два интервала составляли один кубический полином, и то же делает для последних двух интервалов.
Формула
При четырёх узлах not-a-knot даёт один кубический полином; показан S(x)=x−x(x−1)/6+x(x−1)(x−3)/4.
Обозначения
- $S(x)$
- кусочно-кубический интерполянт, единица функции
- $x_i$
- i-й узел интерполяции, единица аргумента
- $S″″′(x_i±)$
- односторонняя третья производная у узла, единица функции / аргумент³
- $n$
- число узлов, —
Условия применения
Для стандартной кубической интерполяции нужны как минимум четыре различных узла с возрастающими координатами и соответствующими значениями. В каждом узле функция и первые две производные сплайна непрерывны; в первом внутреннем и предпоследнем узлах дополнительно совпадают значения третьей производной слева и справа. Эти два дополнительных уравнения замыкают систему вместо условий непосредственно на крайних узлах. Узлы могут быть неравномерными.
Ограничения
Не следует путать not-a-knot с натуральной границей S″(a)=S″(b)=0 или с условием с заданными наклонами, где задают S′(a),S′(b). Условие не гарантирует монотонность, отсутствие выбросов или устойчивость к шуму: как и другие точные сплайны, оно проходит через все данные. При четырёх узлах итогом служит обычный глобальный кубик; при трёх или меньшем числе узлов стандартное правило вырождается и программные пакеты могут выбирать специальные соглашения.
Подробное объяснение
Кубический сплайн на каждой ячейке — полином третьей степени, а в обычном внутреннем узле у него непрерывны значение, первая и вторая производные. Для полной определённости остаются два боковых условия. В not-a-knot случае третья производная также непрерывна в первом внутреннем узле и в последнем внутреннем узле. Поскольку третья производная кубика постоянна, её совпадение означает, что соседние куски являются одним и тем же кубическим полиномом. Иными словами, первый внутренний узел не является настоящим узлом смены полинома; аналогично для предпоследнего.
При четырёх узлах оба условия объединяют две пары интервалов, поэтому получается единый кубик, проходящий через четыре точки. Его удобно находить по форме Ньютона через разделённые разности, а затем подставлять x. Для большего числа узлов стандартная система использует кривизны M_i и выражает условия not-a-knot через равенство первых двух локальных третьих производных, а также последних двух. Это позволяет сохранить кусочную форму в центральных интервалах.
Различные расстояния между узлами важны: коэффициенты уравнений зависят от длины каждой ячейки, так что равномерную схему нельзя без поправок переносить на произвольную сетку. Пример с узлами 0,1,3,4 специально неравномерен. Разделённые разности для значений 0,1,2,5 равны сначала 1,1/2,3, затем −1/6 и 5/6, а третья разность равна 1/4. Полученный единственный кубик S(x)=x−x(x−1)/6+x(x−1)(x−3)/4 в точке x=2 даёт 7/6.
Выбор бокового условия — часть модели границы, а не косметическая настройка решателя. Натуральный сплайн предполагает нулевую кривизну на концах, clamped-сплайн использует известные наклоны, а not-a-knot переносит требование гладкости на ближайшие внутренние узлы. Если значения представляют шумные измерения, сглаживающий сплайн может быть уместнее точного прохождения через каждую точку.
Как пользоваться формулой
- Упорядочьте как минимум четыре различных узла и запишите значения в них; вычислите каждый шаг h_i=x_{i+1}−x_i, не предполагая равномерную сетку.
- Задайте непрерывность значения, первой производной S′ и второй производной S′′ во всех внутренних узлах.
- На первом и предпоследнем внутренних узлах потребуйте совпадения односторонних третьих производных слева и справа.
- Для четырёх узлов найдите один кубик через таблицу разделённых разностей; для большего набора решите систему коэффициентов сплайна.
- Подставьте аргумент в полином нужного интервала и проверьте, что крайние пары интервалов совпадают с точностью до кубического коэффициента.
Историческая справка
Условия not-a-knot появились как один из способов полностью задать кубический интерполирующий сплайн без измеренных наклонов на концах. В ранней литературе по сплайнам задача естественно записывалась через данные в узлах и дополнительные боковые условия; по мере развития вычислительных методов стали сравнивать выбор нулевой кривизны, заданных наклонов и продолжения одного полинома у краёв. Карл де Бур в техническом отчёте 1985 года подробно формулирует условие: третья производная сплайна должна быть непрерывна в двух ближайших к концам внутренних узлах.
Де Бур объясняет смысл названия: такие соседние узлы формально присутствуют в таблице, но не являются местами смены кубического полинома. В том же отчёте обсуждается доказательство сходимости интерполяции с этим боковым условием и приводятся более ранние ссылки на работы о кубических сплайнах. Поэтому материал связывает современное правило с эволюцией численной теории сплайнов, но не объявляет автора изобретателем условия без отдельного подтверждения. Сегодня not-a-knot широко используется как стандартный автоматический выбор в программных реализациях, когда пользователь не задаёт другую границу.
Историческая линия формулы
Понятие not-a-knot закрепилось как боковое условие кубической сплайн-интерполяции. В отчёте 1985 года Карл де Бур описал его как непрерывность третьей производной у ближайших к концам внутренних узлов и исследовал сходимость этого варианта. Не приписываем ему единоличное изобретение правила.
Пример
Рассмотрим неравномерные узлы (0;0), (1;1), (3;2), (4;5). При четырёх узлах not-a-knot делает весь интерполянт одним кубиком. Первые разделённые разности: 1, 1/2, 3. Вторые: (1/2−1)/(3−0)=−1/6 и (3−1/2)/(4−1)=5/6. Третья: (5/6−(−1/6))/(4−0)=1/4. Кубик в форме Ньютона S(x)=x−x(x−1)/6+x(x−1)(x−3)/4. При x=2 получаем 2−2/6+2·1·(−1)/4=7/6. Ответ: 7/6. Проверка: S(0)=0, S(1)=1, S(3)=2 и S(4)=5; одна и та же формула действует по обе стороны от обоих внутренних узлов, как требует not-a-knot. Дополнительная проверка показывает, что третья производная постоянна и равна 3/2 на обоих первых интервалах и на обоих последних; значит, обе пары действительно сливаются в один кубик.
Частая ошибка
Не интерпретируйте условие как зануление третьей производной: оно приравнивает её левое и правое значения у двух внутренних узлов, но общий кубический коэффициент может быть ненулевым. Для неодинаковых шагов сравнивайте третьи производные с делением на длины интервалов в формулах сплайна, а не только разности соседних значений M. Также не делайте вывод, что весь сплайн становится глобальным кубиком при любом числе узлов: это происходит именно в минимальном стандартном случае из четырёх узлов.
Практика
Задачи с решением
Кубик задан четырьмя узлами
Условие. Через узлы x=0,1,2,3 проходят значения p(x)=x³−2x+1. Найдите not-a-knot интерполянт в x=1,5.
Решение. При четырёх узлах not-a-knot интерполянт является одним кубиком. Значения в узлах равны 1,0,5,22 и точно совпадают с заданным кубиком. Подстановка: p(1,5)=1,5³−2·1,5+1=3,375−3+1=1,375.
Ответ. 1,375
Пять узлов и один настоящий стык
Условие. Для узлов 0, 1, 2, 4, 5 заданы значения 0, 1, 4, 24, 52. Найдите not-a-knot сплайн в x=3.
Решение. Условия в 1 и 4 сливают по две секции, а в 2 совпадают значение, наклон и кривизна. Значит, справа к левому кубику добавляется C(x−2)³. Слева p=ax³+bx²+cx, первые три точки дают b=1−3a и c=2a. Правая пара даёт 3a+C=1 и 60a+27C=27. Отсюда a=0, C=1. На участке справа S=x²+(x−2)³, поэтому S(3)=10.
Ответ. 10 единиц функции.
Дополнительные источники
- https://ftp.cs.wisc.edu/Approx/notaknot.pdf
- https://pages.cs.wisc.edu/~deboor/412/l2.pdf
- https://assets.cambridge.org/97805218/84327/excerpt/9780521884327_excerpt.pdf
Связанные формулы
Математика
Натуральный кубический сплайн: уравнения для вторых производных
Натуральный кубический сплайн: уравнения для вторых производных даёт не только вычислительную запись, но и правило, какие данные определяют результат и как проверить его численно. Формула применяется к строго указанной модели; ниже разобраны предпосылки, два решённых задания и границы корректной интерпретации.
Математика
Кубический сплайн с заданными наклонами на концах
Две краевые строки системы кубического сплайна позволяют задать наклон в начале и в конце таблицы. Внутренние вторые производные при этом находят вместе с краевыми.
Математика
Интерполяция Ньютона: таблица разделённых разностей
Форма Ньютона строит интерполяционный полином по треугольной таблице разделённых разностей. Новый узел добавляет коэффициент при очередном произведении, не требуя переписывать уже найденные нижние порядки.
Математика
Интерполяция Лагранжа: полином через заданные точки
Формула Лагранжа строит полином степени не выше n по n+1 различным узлам. Каждый базисный множитель выбирает значение своего узла и обращает вклады остальных узлов в ноль.