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

В последние годы интенсивно развивается новый раздел современной вычислительной математики – теория сплайнов. Сплайны позволяют эффективно решать задачи обработки экспериментальных зависимостей между параметрами, имеющими достаточно сложную структуру.

Рассмотренные выше методы локальной интерполяции, по существу, являются простейшими сплайнами первой степени (для линейной интерполяции) и второй степени (для квадратичной интерполяции).

Наиболее широкое практическое применение, в силу их простоты, нашли кубические сплайны. Основные идеи теории кубических сплайнов сформировались в результате попыток математически описать гибкие рейки из упругого материала (механические сплайны), которыми издавна пользовались чертежники в тех случаях, когда возникала необходимость проведения через заданные точки достаточно гладкой кривой. Известно, что рейка из упругого материала, закрепленная в некоторых точках и находящаяся в положении равновесия, принимает форму, при которой ее энергия является минимальной. Это фундаментальное свойство позволяет эффективно использовать сплайны при решении практических задач обработки экспериментальной информации.

В общем случае для функции y = f(x) требуется найти приближение y = S(x) таким образом, чтобыf(xi) = S(xi) в точках x = xi, a в остальных точках отрезка [a;b] значения функций f(x) и S(x) были близкими между собой. При малом числе экспериментальных точек для решения задачи интерполяции можно использовать один из методов построения интерполяционных полиномов. Однако при большом числе узлов интерполяционные полиномы становятся практически непригодными. Это связано с тем, что степень интерполяционного полинома лишь на единицу меньше числа экспериментальных значений функций. Можно, конечно, отрезок, на котором определена функция, разбить на участки, содержащие малое число экспериментальных точек, и для каждого из них построить интерполяционные полиномы. Однако в этом случае аппроксимирующая функция будет иметь точки, где производная не является непрерывной, т. е. график функции будет содержать точки “излома”.

Кубические сплайны лишены этого недостатка. Исследования показали, что гибкая тонкая линейка между двумя узлами достаточно хорошо описывается кубическим полиномом, и поскольку она не разрушается, то аппроксимирующая функция должна быть, по меньшей мере, непрерывно дифференцируемой.

Таким образом, сплайн– это функция, которая на каждом частичном отрезке интерполяции является алгебраическим многочленом, а на всем заданном отрезке непрерывна вместе с несколькими своими производными.

Пусть интерполируемая функция f(x)задана своими значениями yi, в узлах хi,
(i= 0, 1,...,n). Обозначим длину частичного отрезка [xi-1;xi] как hi=xi-xi-1,
(i = 1, 2,...,n).Будем искать кубический сплайн на каждом изчастичных отрезков [хi-1i] в виде:

Сплайн – интерполяция - №1 - открытая онлайн библиотека (1.3.4-1)

где Сплайн – интерполяция - №2 - открытая онлайн библиотека - четверка неизвестных коэффициентов. Можно доказать, что задача нахождения кубического сплайна имеет единственное решение.

Потребуем совпадения значений S(x)в узлах с табличными значениями функции f(x):

Сплайн – интерполяция - №3 - открытая онлайн библиотека (1.3.4-2)

Сплайн – интерполяция - №4 - открытая онлайн библиотека (1.3.4-3)

Число этих уравнений (2n) в два раза меньше числа неизвестных коэффициентов. Для того чтобы получить дополнительные условия, потребуем также непрерывности первой и второй производных сплайна во всех точках, включая узлы. Для этого следует приравнять левые и правые производные S'(x–0), S'(x+0), S"(x–0), S"(x+0) во внутреннем узле xi.

Вычислим выражения для производных S'(x), S"(x)последовательным дифференцированием (1.3.4-1):

S'(x) = bi + 2ci(x–xi-1)+3di(x–xi-l)2,

(1.3.4-4)

S''(x)=2ci+6di(x–xi-l),(1.3.4-5)

найдем правые и левые производные в узле:

S'(xi–0) = bi + 2сhi + 2dihi,

S'(xi+0) = bi+1,гдеi = 1,2,..., n -1.

Аналогично поступаем для второй производной:

S"(x–0)=2ci+6dihi,

S"(х+0)=2сi+1.

Приравняв левые и правые производные, получаем:

bi+1=bi+2cihi+2dihi2 (1.3.4-6)

сi+1 = сi- + 3dihi, гдеi = 0, 1,..., n–1. (1.3.4-7)

Уравнения (1.3.4-6), (1.3.4-7) дают еще 2(n–1) условий. Для получения недостающих уравнений накладывают требования к поведению сплайна на концах отрезка интерполяции. Если потребовать нулевой кривизны сплайна на концах отрезка интерполяции (т. е. равенство нулю второй производной), то получим:

сi=0,cn+3dnhn=0.(1.3.4-8)

Исключив из уравнений (1.3.4-2)–(1.3.4-3)nнеизвестных ai, получаем систе­му уравнений:

Сплайн – интерполяция - №5 - открытая онлайн библиотека (1.3.4-9)

где i=0, 1,...., n-1.

Система (1.3.4-9) состоит из 3(n-1)уравнений. Решив систему (1.3.4-9), получаем значения неизвестных bi, ci, di,определяющих совокупность всех формул для искомого интерполяционного сплайна:

Сплайн – интерполяция - №6 - открытая онлайн библиотека гдеi = 0,1,...,n–1.(1.3.4-10)

Программа, реализующая метод сплайн-интерполяции, доста­точно громоздка, поэтому ограничимся обсуждением решения задачи об интерполяции синуса с помощью сплайнов, используя функции пакетов п.п. 1.3.6.