В математической области численного анализа сплайн-интерполяция является формой интерполяции , где интерполянт представляет собой особый тип кусочного полинома, называемого сплайном . То есть, вместо подгонки одного полинома высокой степени ко всем значениям сразу, сплайн-интерполяция подгоняет полиномы низкой степени к небольшим подмножествам значений, например, подгоняя девять кубических полиномов между каждой из пар из десяти точек, вместо подгонки одного полинома степени девять ко всем из них. Сплайн-интерполяция часто предпочтительнее полиномиальной интерполяции, поскольку погрешность интерполяции может быть сделана небольшой даже при использовании полиномов низкой степени для сплайна. [1] Сплайн-интерполяция также избегает проблемы явления Рунге , при котором между точками могут возникать колебания при интерполяции с использованием полиномов высокой степени.
Мы хотим смоделировать подобные типы кривых, используя набор математических уравнений. Предположим, что у нас есть последовательность узлов, через . Между каждой последовательной парой узлов и между ними будет кубический многочлен , соединяющий их, где . Таким образом, будут многочлены, причем первый многочлен начинается с , а последний заканчивается на .
где и являются первыми и вторыми производными по отношению к . Чтобы сплайн принял форму, которая минимизирует изгиб (при ограничении прохождения через все узлы), мы определим и как непрерывные всюду, включая узлы. Каждый последующий полином должен иметь равные значения (которые равны значению y соответствующей точки данных), производные и вторые производные в их узлах соединения, то есть
Этого можно достичь только при использовании полиномов степени 3 (кубических полиномов) или выше. Классический подход заключается в использовании полиномов именно степени 3 — кубических сплайнов .
В дополнение к трем условиям, указанным выше, « естественный кубический сплайн » имеет следующее условие :
В дополнение к трем основным условиям, указанным выше, « закрепленный кубический сплайн » имеет условия, что и где — производная интерполированной функции.
В дополнение к трем основным условиям, указанным выше, « неузловой сплайн » имеет следующие условия: и . [2]
Мы хотим найти каждый многочлен, учитывая точки через . Для этого мы рассмотрим только один кусок кривой, , который будет интерполироваться от до . Этот кусок будет иметь наклоны и в своих конечных точках. Или, точнее,
Полное уравнение можно записать в симметричной форме
где
Но что такое и ? Чтобы вывести эти критические значения, мы должны учитывать, что
Из этого следует, что
Полагая t = 0 и t = 1 соответственно в уравнениях ( 5 ) и ( 6 ), из ( 2 ) получаем , что действительно первые производные q′ ( x 1 ) = k 1 и q′ ( x 2 ) = k 2 , а также вторые производные
Если теперь ( x i , y i ), i = 0, 1, ..., n — это n + 1 точек, и
где i = 1, 2, ..., n , и являются n полиномами третьей степени, интерполирующими y в интервале x i −1 ≤ x ≤ x i для i = 1, ..., n такими, что q′ i ( x i ) = q′ i +1 ( x i ) для i = 1, ..., n − 1, тогда n полиномов вместе определяют дифференцируемую функцию в интервале x 0 ≤ x ≤ x n , и
для i = 1, ..., n , где
Если последовательность k 0 , k 1 , ..., k n такова, что, кроме того, q′′ i ( x i ) = q′′ i +1 ( x i ) выполняется для i = 1, ..., n − 1, то полученная функция будет даже иметь непрерывную вторую производную.
Из ( 7 ), ( 8 ), ( 10 ) и ( 11 ) следует, что это имеет место тогда и только тогда, когда
для i = 1, ..., n − 1. Соотношения ( 15 ) представляют собой n − 1 линейных уравнений для n + 1 значений k 0 , k 1 , ..., k n .
Для эластичных линеек, являющихся моделью для сплайновой интерполяции, слева от самого левого «узла» и справа от самого правого «узла» линейка может свободно перемещаться и, следовательно, будет иметь форму прямой линии с q′′ = 0. Поскольку q′′ должно быть непрерывной функцией x , «естественные сплайны» в дополнение к n − 1 линейным уравнениям ( 15 ) должны иметь
то есть это
В конечном итоге ( 15 ) вместе с ( 16 ) и ( 17 ) составляют n + 1 линейных уравнений, которые однозначно определяют n + 1 параметров k 0 , k 1 , ..., k n .
Существуют и другие конечные условия, «зажатый сплайн», который определяет наклон на концах сплайна, и популярный «неузловой сплайн», который требует, чтобы третья производная также была непрерывной в точках x 1 и x n −1 . Для «неузлового» сплайна дополнительные уравнения будут выглядеть так:
^ Холл, Чарльз А.; Мейер, Уэстон В. (1976). «Оптимальные границы погрешности для интерполяции кубическим сплайном». Журнал теории приближений . 16 (2): 105–122. doi : 10.1016/0021-9045(76)90040-X .
Шенберг, Айзек Дж. (1946). «Вклад в проблему аппроксимации равноотстоящих данных аналитическими функциями: Часть A. — О проблеме сглаживания или градуировки. Первый класс аналитических формул аппроксимации». Quarterly of Applied Mathematics . 4 (2): 45–99. doi : 10.1090/qam/15914 .
Шенберг, Айзек Дж. (1946). «Вклад в проблему аппроксимации равноотстоящих данных аналитическими функциями: Часть B. — О проблеме оскуляторной интерполяции. Второй класс аналитических формул аппроксимации». Quarterly of Applied Mathematics . 4 (2): 112–141. doi : 10.1090/qam/16705 .
Внешние ссылки
Онлайн-инструмент для расчета и визуализации интерполяции кубических сплайнов (с исходным кодом JavaScript)