Опубликован: 25.10.2007 | Уровень: специалист | Доступ: свободно | ВУЗ: Московский физико-технический институт
Лекция 7:

Интерполяция функций

6.10. Кусочно - многочленная глобальная интерполяция (сплайны)

Определение. Пусть на отрезке [a, b] задана система узловых точек \{t_n\}_{n = 0}^{N - 1}. Сплайном Sm(t) называется определенная на [a, b] функция, имеющая l непрерывных производных и являющаяся на каждом интервале (tn - 1, tn) многочленом степени m.

Определение. Дефектом сплайна называется разность d = m - l между степенью сплайна и показателем его гладкости l.

Замечание. Для сплайнов также используется обозначение Sm, d(t). Если сплайн строится так, чтобы выполнялись условия Sm(tn) = f(tn), где f(t) — интерполируемая функция, то он называется интерполяционным сплайном. В соответствии с определением, кусочно - линейная функция является интерполяционным сплайном первой степени дефекта 1, кусочно - квадратичная функция с первой непрерывной производной — интерполяционным сплайном второй степени дефекта 1. Наиболее известным в приложениях является интерполяционный кубический сплайн дефекта 1 (естественный сплайн ), который будем обозначать S(t).

Определение. Кубическим сплайном дефекта 1, интерполирующим на отрезке [a, b] заданную функцию f(t), называется функция S(t), удовлетворяющая следующим условиям:

  1. S(tn) = f(tn) — условие интерполяции в узлах сетки \left\{{t_n}\right\}_{n = 0}^{N - 1}.
  2. S(t) \in C^2 [a, b], т.е. является непрерывной вместе с двумя первыми производными.
  3. На каждом отрезке [tn, tn + 1], S(t) является кубическим многочленом; n = 0, ..., N - 1.
  4. На краях отрезка [a, b] заданы краевые условия. Наиболее часто употребляются следующие:
    • S'(a) = f'(a), S'(b) = f'(b) ;
    • S''(a) = f''(a), S''(b) = f''(b) ; часто полагают S''(a) = S''(b) = 0 ;
    • S(a) = S(b), S'(a) = S'(b) ; эти условия называются периодическими, т.е. интерполируемая функция является периодической с периодом b - a.

Покажем, что эта задача имеет единственное решение.

Теорема. Интерполяционный кубический сплайн S(t), удовлетворяющий условиям 1 — 3 и одному из краевых условий 4, существует и единственен.

Доказательство.

Пусть S(z) — эрмитов кубический многочлен, который на каждом отрезке [ tn, tn + 1 ], n = 0, …, N - 1, представлен как

S(z) = f_n (1 - z)^2 (1 + 2z) + f_{n + 1} \cdot z^2 (3 - 2z) + m_n \tau_n z(1 - z)^2 - 
m_{n + 1} \tau_n z^2 (1 - z),

где \tau _{n} = t_{n + 1} - t_{n}, z = (t - t_{n})/\tau _{n}, m_{n} = S'(t_{n}). Тогда

\begin{gather*}
S^{\prime\prime}(t) = \frac{{(f_{n + 1} - f_n)(6 - 12z)}}{{\tau_n^2 }} + m_n \frac{{6z - 4}}
{{\tau_n}} + m_{n + 1} \frac{{6z - 2}}{{\tau_n}}, \\
S^{\prime\prime}(t_n + 0) = 6\frac{{f_{n + 1} - f_n}}{{\tau_n^2 }} - \frac{{4m_n}}{{\tau_n}} - \frac{{2m_{n + 1}}}{{\tau_n}}, \\
S^{\prime\prime}(t_n - 0) = - 6\frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}^2 }} + \frac{{2m_{n - 1}}}
{{\tau_{n - 1}}} + m_{n + 1} \frac{{4m_n}}{{\tau_{n - 1}}}.
\end{gather*}

Условие непрерывности второй производной S''(tn + 0) = S''(tn - 0) будет

\begin{gather*}
r_n m_{n - 1} + 2m_n + s_n m_{n + 1} = c_n , \\ 
c_n = 3\left({s_n \frac{{f_{n + 1} - f_n}}{{\tau_n}} + r_n \frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}}}}\right), s_n = \frac{{\tau_{n - 1}}}{{\tau_{n - 1} + \tau_n}}, r_n = 1 - s_n, \\  
n = 1, \ldots , N - 1
\end{gather*}

После добавления краевых условий получаем систему из N + 1 уравнение с N + 1 неизвестным mn. Для краевых условий первого типа (заданы первые производные) система выглядит как

m0 = f'0, 
rn mn - 1 + 2mn + snmn + 1 = cn , 
mn = f'n

Для условий второго типа (заданы вторые производные)

\begin{gather*}
2m_0 + m_1 = 3\frac{{f_1 - f_0 }}{{\tau_0 }} - \frac{{\tau_0 }}{2}f^{\prime\prime}_0, \\ 
r_n m_{n - 1} + 2m_n + s_nm_{n + 1} = c_n , \\ 
m_{N - 1} + 2m_N = 3\frac{{f_N - f_{N - 1}}}{{\tau_{N - 1}}} + \frac{{\tau_{N - 1}}}{2}f^{\prime\prime}_N 
\end{gather*}

Аналогично получается СЛАУ для третьего типа краевых условий.

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

Приведем еще одно доказательство этой же теоремы.

Доказательство.

Рассмотрим неравномерную сетку: t_{n} - t_{n - 1} = \tau _{n - 1}, t_{n + 1} - t_{n} = \tau _{n}. В узлах сетки определены значения функции: fn - 1, fn , fn + 1. Пусть mnзначение второй производной в точке tn (пока неизвестное!). На отрезке [tn, tn + 1] для второй производной кусочно - кубического сплайна имеем

$  {S^{\prime\prime}_{tt} = \frac {1}{\tau_n}(m_n (t_{n + 1} - t) + m_{n + 1} (t - t_n)).}  $ ( 6.2)

Так как сплайнполином третьей степени, то его вторая производная — линейная функция. Интегрируем (6.2) по t, получаем (на отрезке [ tn, tn + 1] )

$  S^{\prime}_{t} = \frac {1}{\tau_n} \left(m_{n + 1}\frac{{(t_{n + 1} - t)}^2}{2} - m_n \frac{{(t - t_n)}^2}{2}\right) + A_n.  $
Андрей Гальберг
Андрей Гальберг
Россия, Екатеринбург, УРФУ, 2008