Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие_Математические_методы_в_экологии_360.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2.7 Mб
Скачать

4.3 Интерполирование сплайнами

На практике многие кривые нельзя описать простыми функциями. Однако их можно составить из отрезков полиномов или других сравнительно простых кривых.

В теории приближения функций такие кривые называются сплайнами. На практике чаще всего применяются кубические сплайны.

Постановка задачи

Пусть на отрезке [a, b] задана сетка a = x0 < x1 < …< xn = b, в узлах которой заданы значения f(xi) (i = 0, 1, 2, …, n) функции f(x), определенной на [a, b].

Причем узлы сетки a = x0 < x1 < …< xn = b не обязательно расположены равномерно.

Выберем, например, интервал между xj и xj+1.

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

Рассмотрим задачу построения интерполяционного кубического сплайна, приближающего функцию f(x), заданную на отрезке [a, b].

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

  1. на каждом из отрезков [xi, xi+1] (i = 0, 1, 2,…, n) функция S(x) является многочленом третьей степени вида

    i = 0, 1, 2, …, n1;

    (4.26)

  2. непрерывны на [a, b];

  3. должно выполняться условие интерполяции, т. е.

, i = 0, 1, 2, …, n1.

(4.27)

Сказанное иллюстрируется на рис. 4.4, где показаны первые три отрезка сетки разбиения.

Р ис. 4.4. Интерполирование кубическими сплайнами. Сплайн строится для каждого отрезка

Поскольку на каждом из n отрезков [xi, xi+1] между узлами сетки сплайн S(x) определяется четырьмя коэффициентами a, b, c, d, то для его полного построения необходимо найти 4n чисел.

Построение сплайна

Найдем первую, вторую и третью производные многочлена Si(x):

;

(4.28)

;

.

(4.29)

Для любой точки x = xi из (4.26), (4.28), (4.29) получаем

.

Согласно условию интерполяции (4.27), будем иметь

, ;

, i = 0, 1, 2, …, n–1.

(4.30)

.

(4.31)

Введем шаг разбиения интервала [a, b] (шаг сетки):

hi = xi – xi-1 (hi+1 = xi+1 – xi) .

Тогда (4.31) запишем в виде

.

Т. к. Si(xi) = ai = yi, то

.

(4.32)

Согласно условию б) (условие непрерывности), в каждом узле xi левая и правая производные должны быть равны, т. е. не должно быть точек разрыва и должны выполняться условия

;

;

(4.33)

(4.34)

;

.

Тогда

, i = 0, 1, 2, …, n–2.

(4.35)

Используя (4.34), получим

;

;

, i = 0, 1, 2, …, n2.

(4.36)

Полученные соотношения представляют собой алгебраическую систему для определения (4n–2) коэффициентов. Недостающие два уравнения получают из граничных условий. В общем случае рассматривают три вида граничных условий, которым должен удовлетворять сплайн S(x):

  1. или ;

  2. или ;

  3. .

Условия 1), 2) применяют, если известны значения соответствующих производных функции f(x) на концах отрезка [a, b].

Условия вида 3) называют периодическими и их выполнения требуют, если функция f(x) периодическая с периодом (b–a).

Для концевых узлов x0, xn полагаем (что соответствует нулевой кривизне графика на концах рассматриваемого отрезка). Тогда используя условия (4.11), получим

.

(4.37)

Заметим, что условие совпадает с (4.36) при i = n – 1, если положить cn = 0.

Из (4.36) получим

.

(4.38)

После подстановки ai и di в (4.31) получим выражение для bi:

.

(4.39)

Далее подставим bi и di в (4.35) (и уменьшим значение индекса i на единицу для симметрии записи) и приходим к уравнениям:

, i = 1, 2, …, n–1.

(4.40)

Система (4.40) вместе с условиями c0 = 0, cn = 0 образует систему для определения коэффициентов.

Другие коэффициенты сплайна вычисляются по формулам (4.30), (4.38) и (4.39).