stringtranslate.com

Сплайн-интерполяция

В математической области численного анализа сплайн-интерполяция является формой интерполяции , где интерполянт представляет собой особый тип кусочного полинома, называемого сплайном . То есть, вместо подгонки одного полинома высокой степени ко всем значениям сразу, сплайн-интерполяция подгоняет полиномы низкой степени к небольшим подмножествам значений, например, подгоняя девять кубических полиномов между каждой из пар из десяти точек, вместо подгонки одного полинома степени девять ко всем из них. Сплайн-интерполяция часто предпочтительнее полиномиальной интерполяции, поскольку погрешность интерполяции может быть сделана небольшой даже при использовании полиномов низкой степени для сплайна. [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 −1xx i для i = 1, ..., n такими, что q′ i ( x i ) = q′ i +1 ( x i ) для i = 1, ..., n  − 1, тогда n полиномов вместе определяют дифференцируемую функцию в интервале x 0xx 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 . Для «неузлового» сплайна дополнительные уравнения будут выглядеть так:

где .

Пример

Интерполяция с помощью кубических «естественных» сплайнов между тремя точками

В случае трех точек значения находятся путем решения трехдиагональной системы линейных уравнений

с

За три очка

один получает это

и из ( 10 ) и ( 11 ) следует, что

На рисунке отображена сплайн-функция, состоящая из двух кубических полиномов и заданная формулой ( 9 ).

Смотрите также

Ссылки

  1. ^ Холл, Чарльз А.; Мейер, Уэстон В. (1976). «Оптимальные границы погрешности для интерполяции кубическим сплайном». Журнал теории приближений . 16 (2): 105–122. doi : 10.1016/0021-9045(76)90040-X .
  2. ^ Берден, Ричард; Фейрес, Дуглас (2015). Числовой анализ (10-е изд.). Cengage Learning. стр. 142–157. ISBN 9781305253667.

Дальнейшее чтение

Внешние ссылки