Пусть у вас имеются значения функции, измеренные в нескольких точках, возникает задача, как найти значения функции в промежуточных точках.
Такая задача называется задачей интерполяции и часто возникает на практике.
Например, в ходе медицинских исследований исследователь замеряет концентрацию вещества в крови исследуемого через определенные промежутки времени и ему известно, что концентрация находится в некоторой зависимости от времени.
Исследователя интересует вопрос, какова была концентрация заданного вещества в любой из моментов в промежутках между взятием анализов. Для того чтобы ответить на этот вопрос строится интерполяционная кривая, которая помогает «восстановить» информацию о концентрации вещества на всем временном промежутке от первого до последнего анализа.
В демографии проводится перепись населения через каждые 10 лет, с помощью интерполяции можно определить численность населения в промежуточных точках.
В геологии проводится опробование месторождение и определяется концентрация полезных ископаемых в определенных точках, с помощью интерполяции можно оценить концентрацию в промежуточных точках. Список реальных примеров легко продолжить.
Более формально, пусть нам даны значения некоторой функции в некоторых точках области определения.
Перед нами стоит задача наиболее точно определить вид этой функции по заданным значениям. Один из возможных подходов - прибегнуть к интерполяции сплайнами.
Сплайн – функция, которая вместе с несколькими производными непрерывна на всем заданном отрезке [a,b], а на каждом частичном отрезке [ ,
] в отдельности является некоторым алгебраическим многочленом.
Степенью сплайна называется максимальная по всем частичным отрезкам степень многочленов, а дефектом сплайна - разность между степенью сплайна и порядком наивысшей непрерывной на [a,b] производной. Например, непрерывная ломанная является сплайном степени 1 с дефектом 1 (так как сама функция – непрерывна, а первая производная уже разрывна).
На практике наиболее часто используются кубические сплайны - сплайны третьей степени с непрерывной, по крайней мере, первой производной. При этом величина
, называется наклоном сплайна в точке (узле)
.
Разобьём отрезок [a,b] на N равных отрезков [ ,
], где
, i=0,1,…,N-1,
.
Если в узлах ,
заданы значения
,
, которые принимает кубический сплайн, то на частичном отрезке [
,
] он принимает вид:
. (1)
В самом деле, это легко проверить, рассчитав и
в точках
,
.
Можно доказать, что если многочлен третьей степени принимает в точках ,
значения
,
и имеет в этих точках производные, соответственно,
, то он совпадает с многочленом (1).
Таким образом, для того, чтобы задать кубический сплайн на отрезке, необходимо задать значения ,
i=0,1…,N в N+1 в узле
.
Кубический сплайн, принимающий в узлах те же значения , что и некоторая функция, называется интерполяционным и служит для аппроксимации функции f на отрезке [a,b] вместе с несколькими производными.
Существует несколько способов задания наклонов интерполяционного кубического сплайна.
Способ 1 (упрощенный):
Положим:
, i=1,2,…, N-1, (2)
,
(3)
Данные формулы являются формулами численного дифференцирования второго порядка точности относительно шага h=(b-a)/N.
Способ 2:
Если у нас имеются значения производной
в узлах
, то полагаем
, i=0,1,…,N.
Первые два способа называются локальными, так как с их помощью сплайн строится отдельно на каждом частичном отрезке [ ,
] посредством применения формулы (1). Построенные таким образом сплайны, как правило, имеют деффект, равный двум, так как непрерывность первой производной в узлах соблюдается, а непрерывность второй производной при таком построении не гарантируется.
Способ 3 (глобальный):
Пусть - значение
в узле
справа, его мы найдем из выражения (1), а
значение
в узле
слева – оно находится из соответствующего выражения
на частичном отрезке [
,
], которое получается из (1) заменой i на i-1.
Тогда получим:
Потребуем непрерывность в узлах:
, i=1,2,…, N-1.
Тогда получим систему линейных алгебраических уравнений относительно наклонов:
(4)
Так как система содержит N+1 неизвестных, необходимо задать два дополнительных условия, называемые краевыми.
Приведем три варианта задания краевых условий:
1) В случае, когда известны задаем
,
.
2) Производные ,
аппроксимируем формулами численного дифференцирования третьего порядка точности:
(6)
3) Иногда бывают известны значения на концах отрезка [a,b], т.е. величины
. Тогда требования
приводят к краевым условиям
(7)
Условия (5)-(7) можно комбинировать, т.е. выбирать их независимо в левом и правом узлах.
Система (4) при всех рассмотренных краевых условиях имеет единственное решение, которое можно найти с помощью методов прогонки и итераций.
Таким образом, решая систему (4) при выбранных краевых условиях, находим наклоны i=0,1,…,N, во всех узлах. Затем по формуле (1) задаем сплайн на каждом частичном отрезке [
,
], i=0,1,…,N-1. Построенный данным глобальным способом сплайн
имеет дефект не больше единицы, так как этот сплайн обладает на отрезке [a,b] непрерывной второй производной
.