Сплайны
Сейчас широкое распространение для интерполяции получило использование кубических сплайн-функций — специальным образом построенных многочленов третьей степени. Они представляют собой некоторую математическую модель гибкого тонкого стержня из упругого материала.
Если закрепить его в двух соседних узлах интерполяции с заданными углами наклонов ?и ? (рис. 9), то между точками закрепления этот стержень (механический сплайн) примет некоторую форму, минимизирующую его потенциальную энергию.
Пусть форма этого стержня определяется функцией у = S( x). Из курса сопротивления материалов известно, что уравнение свободного равновесия имеет вид SIV( x) = 0. Отсюда следует, что между каждой парой соседних узлов интерполяции функция S (x) является многочленом третьей степени. Запишем ее в виде
Для определения коэффициентов на всех п элементарных отрезках необходимо получить 4n уравнений. Часть из них вытекает из условий прохождения графика функции S (х) через заданные точки, т. е,
. Эти условия можно записать в виде
Эта система содержит 2п уравнений. Для получения не достающих уравнений зададим условия непрерывности первых и вторых производных в узлах интерполяции, т. е. условия гладкости кривой во всех точках.
Вычислим производные многочлена (2.29):
Приравнивая в каждом внутреннем узле х = х i значения этих производных, вычисленные в левом и правом от узла интервалах, получаем 2п — 2 уравнений
Недостающие два соотношения получаются из условий закрепления концов сплайна.
В частности, при свободном закреплении концов (см, рис. 9) можно приравнять нулю кривизну линии в этих точках. Такая функция, называемая свободным кубическим сплайном, обладает свойством минимальной кривизны, т. е. она самая гладкая среди всех интерполяционных функций данного класса. Из условий нулевой кривизны на концах следуют равенства нулю вторых производных в этих точках:
Уравнения (2.30) — (2.34) составляют систему линейных алгебраических уравнений для определения 4 n коэффициентов (i = 1, 2, ..., n ).
Многочлен Лагранжа
Перейдем к случаю глобальной интерполяции, т. е. построению интерполяционного многочлена, единого для всего отрезка [х0, хп]. При этом, естественно, график интерполяционного многочлена должен проходить через все заданные точки.
Запишем искомый многочлен в виде
Из условий равенства значений этого многочлена в узлах хi соответствующим заданным табличным зпачеппям yi получим следующую систему уравнений для нахождения коэффициентов а0, а1, ..., а n:
Можно показать, что эта система имеет единственное решение, если среди узлов интерполяции нет совпадающих, т. е. если . Решив эту систему, найдем коэффициенты интерполяционного многочлена (2.38). Заметим вместе с тем, что такой путь построения интерполяционного многочлена требует значительного объема вычислений, особенно при большом числе узлов. Существуют более простые алгоритмы построения интерполяционных многочленов.
Будем искать многочлен в виде линейной комбинации многочленов степени п:
При этом потребуем, чтобы каждый многочлен li (x ) обращался в нуль во всех узлах интерполяции, за исключением одного (i-го), где он должен равняться единице. Легко проверить, что этим условиям отвечает многочлен вида
Действительно, l0 (х) = 1 при х = х0. При числитель выражения (2.41) обращается в нуль. По аналогии с (2.41) получим
Подставляя в (2.40) выражения (2.41), (2.42), находим
Эта формула называется интерполяционным многочленом Лагранжа.
Теорема о единственности.
Покажем, что этот многочлен является единственным. Допустим противоположное: пусть существует еще один многочлен F(x ) степени п , принимающий в узлах интерполяции заданные значения, т. е. F( xi)= yi. Тогда разность R{ x) = L(x)— F(x), являющаяся многочленом степени п(или ниже), в узлах xiравна
Это означает, что многочлен R (x) степени не больше п имеет п + 1 корней. Отсюда следует, что R (х)? 0 и F{x)= L{x).
Из формулы (2.43) можно получить выражения для линейной (п = 1) и квадратичной (п= 2) интерполяций:
Интерполяционные многочлены Эрмита
Существует несколько обобщений интерполяционного многочлена Лагранжа. Например, довольно широко используются интерполяционные многочлены Эрмита. Здесь наряду со значениями функции уi в узлах хiзадаются значения ее производной . Задача состоит в том, чтобы найти многочлен ?(х) степени 2n + 1, значения которого и его производной в узлах xi удовлетворяют соответственно соотношениям
В этом случае также существует единственное решение, если все xi различны.