Смекни!
smekni.com

Базисные сплайны (стр. 1 из 4)

Введение

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

Типичной задачей приближения является задача интерполяции: по заданной таблице чисел

, восстановить функцию
с той или иной точностью на отрезке [а, b] действительной оси. Классический метод ее решения состоит в построении интерполяционного многочлена Лагранжа, определяемого равенством

Хотя согласно теореме Вейерштрасса всякая непрерывная функция

на отрезке
может быть как угодно хорошо приближена многочленами, практические возможности применения многочленов Лагранжа ограничены. Прежде всего, используя подобный аппарат, мы должны быть уверены, что, выбрав достаточно большое число узлов интерполяции, получим хорошее приближение интерполируемой функции. Однако, как показывает ряд простых примеров, это часто нельзя гарантировать.

С. Н. Бернштейном (1916 г.) было установлено, что последовательность интерполяционных многочленов Лагранжа построенных для непрерывной функции

на отрезке [—1, 1] по равноотстоящим узлам
, с возрастанием
не стремится к
. Еще более любопытен другой пример, восходящий к Рунге (1901 г.) и состоящий в том, что указанный интерполяционный процесс не сходится на [—1, 1] даже для гладкой сколь угодно раз дифференцируемой функции
(рис. 0.1). В обоих случаях

Иногда эти трудности удается преодолеть путем специального выбора узлов интерполяции или за счет перехода к каким-либо обобщенным многочленам. Однако такой путь, как правило, весьма усложняет вычисления и к тому же не избавляет нас от второй проблемы — быстрого накопления ошибок округления с ростом степени многочлена. Поэтому на практике для того, чтобы достаточно хорошо приблизить функцию, вместо построения интерполяционного многочлена высокой степени используют интерполяцию кусочными многочленами.

Примером такого рода является кусочно-линейная интерполяция. В общем случае отрезок

точками
разбивается на части и на каждом промежутке
, строится свой интерполяционный многочлен. Полученные таким образом многочлены (обычно одной и той же степени) дают интерполяцию функции
на всем отрезке
, которая, вообще говоря, не обеспечивает гладкого перехода от одного звена к другому и может быть даже разрывной, если точки
не включаются в число узлов интерполяции. Это допустимо, если не требуется восстанавливать функцию с заданной степенью гладкости. В частности, различные таблицы составляются с таким шагом, чтобы промежуточные значения функции с принятой точностью можно было вычислить с помощью линейной или квадратичной интерполяции. Для гладкого восстановления таблично заданной функции нужно увеличить степень составляющих многочленов, а остающиеся свободными коэффициенты определять из условий гладкого сопряжения многочленов на соседних промежутках. Получающиеся при этом гладкие кусочно-многочленные функции с однородной структурой (составленные из многочленов одной и той же степени) называются сплайн-функциями или просто сплайнами. Простейший и исторически самый старый пример сплайна - ломаная.

Термин сплайн произошел от английского spline, что в переводе означает рейка, стержень — название приспособления, которое применяли чертежники для проведения гладких кривых через заданные точки. Возьмем гибкую стальную линейку, поставим ее на ребро и, закрепив один конец в заданной точке

, поместим между опорами, которые располагаются так, чтобы линейка проходила через заданные точки (рис, 0.2).

Согласно закону Бернулли—Эйлера линеаризованное дифференциальное уравнение изогнутой оси линейки имеет вид


где

— вторая производная прогиба,
— изгибающий момент, изменяющийся линейно от одной точки опоры к другой,
— жесткость. Проинтегрировав это уравнение, получим, что функция
, описывающая профиль линейки, является кубическим многочленом между двумя соседними точками опоры и дважды непрерывно дифференцируемой функцией на всем промежутке интегрирования. Для определенности задачи на концах должны быть заданы краевые условия, в частности, при отсутствии внешних нагрузок па линейку
.

Функция

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

В отличие от интерполяционных многочленов Лагранжа, последовательность интерполяционных кубических сплайнов на равномерной сетке узлов всегда сходится к интерполируемой непрерывной функции, причем сходимость повышается с улучшением дифференциальных свойств функции

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

Алгоритмы построения кубических сплайнов являются весьма простыми и эффективно реализуются на ЭВМ, причем влияние ошибок округления при вычислениях оказывается незначительным.

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

§1. Определение сплайнов. Пространство сплайнов

Пусть на отрезке [a, b] задано разбиение

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

Определение. Функция

называется сплайном степени
дефекта
(
— целое число,
) с узлами на сетке
, если

а) на каждом отрезке

функция
является многочленом степени
, т. е.

(1)