Кубический сплайн

Материал из testwiki
Перейти к навигации Перейти к поиску

Кубический сплайн — гладкая функция, область определения которой разбита на конечное число отрезков, на каждом из которых она совпадает с некоторым кубическим многочленом (полиномом).

Описание

Функция f(x)задана на отрезке [a,b], разбитом на части [xi1,xi], a=x0<x1<...<xN=b. Кубическим сплайном дефекта 1 (разность между степенью многочлена и высшим порядком его непрерывной производной) называется функция S(x), которая:

  • на каждом отрезке [xi1,xi] является многочленом степени не выше третьей;
  • имеет непрерывные первую и вторую производные на всём отрезке [a,b];
  • в точках xi выполняется равенство S(xi)=f(xi), т. е. сплайн S(x) интерполирует функцию fв точках xi.

Для однозначного задания сплайна перечисленных условий недостаточно, для построения сплайна необходимо наложить дополнительные требования — граничные условия:

  1. "Естественный сплайн" — граничные условия вида: S(a)=S(b)=0;
  2. Непрерывность второй производной — граничные условия вида: S(a)=S(b)=0;
  3. Периодический сплайн — граничные условия вида: S(a)=S(b)и S(a)=S(b).

Теорема: Для любой функции f и любого разбиения отрезка [a,b]на части [xi1,xi]существует ровно один естественный сплайн Si(x), удовлетворяющий перечисленным выше условиям.

Эта теорема является следствием более общей теоремы Шёнберга-Уитни об условиях существования интерполяционного сплайна.

Построение

На каждом отрезке [xi,xi+1], i=0,N1 функция S(x) есть полином третьей степени Si(x), коэффициенты которого надо определить. Запишем для удобства Si(x) в виде:

Si(x)=ai+bi(xxi)+ci(xxi)2+di(xxi)3

тогда

Si(xi)=ai,S'i(xi)=bi,S'i(xi)=2ci,S'i(xi)=6dii=1,N.

Условия непрерывности всех производных, до второго порядка включительно, записываются в виде

Si(xi)=Si1(xi),
S'i(xi)=S'i1(xi),
S'i(xi)=S'i1(xi),

где i меняется от 1 до N1, а условия интерполяции — в виде

Si(xi)=f(xi),

где i меняется от 0 до N1, и

SN1(xN)=f(xN).

Обозначим:hi=xixi1(i=1,N),fi=f(xi)(i=0,N)

Отсюда получаем формулы для вычисления коэффициентов "Естественного сплайна":

ai=f(xi);
di=cici13hi;
bi=aiai1hi2ci1+ci3hi;
ci1hi+2ci(hi+hi+1)+ci+1hi+1=3(ai+1aihi+1aiai1hi),
причем cN=S(xN)=0 и c13d1h1=S(x0)=0 [1].

Если учесть, что c0=cN=0, то вычисление c можно провести с помощью метода прогонки для трёхдиагональной матрицы.

Литература

  1. Шаблон:Книга
  2. Шаблон:Книга
  3. Шаблон:Книга
  4. Шаблон:Книга

Ссылки

Примечания

Шаблон:Примечания

Шаблон:Rq Шаблон:Кривые