
Шпоры по вычмату / 004
.docКубический сплайн - это функция, которая:
-
проходит через все заданные
точки
,
;
- на каждом отрезке между соседними точками является кубической параболой;
- непрерывна вместе со своими первой и второй производными во всех точках.).
интерполяция |
||||
локальная |
глобальная |
|||
|
|
|
|
|
линейная |
параболическая |
кубическая парабола |
полином степени (N-1) |
кубический сплайн |
Рис. 1.5. |
Очевидно,
что при локальной интерполяции в местах
стыка кусочков полиномов получаются
разрывы производных, что в ряде задач
может быть нежелательным, например, при
вычислении скорости по координатам
точек. При глобальной интерполяции
полиномом все
производных полинома степени
непрерывны, но из-за использования
высоких степеней полиномов при
непрерывная функция может иметь много
максимумов и минимумов, т.е. могут
появиться на кривой значительные
выбросы, которых нет в исходной функции.
Из-за этих выбросов полиномы степени
выше пятой или шестой для интерполяции
не применяют. Для глобальной интерполяции
в настоящее время используют кубические
сплайны.
При
интерполяции значения функции должны
иметь малую погрешность, т.к. непрерывная
кривая
проводится точно через заданные точки.
Если
функция измеряется или вычисляется
приближенно и погрешности существенны,
то не имеет смысла проводить интерполяцию
и переходят к аппроксимации. В латыни
слово ap-proximo
означает "почти близкий". При
аппроксимации кривая
проводится вблизи заданных точек в
соответствии с некоторым критерием
близости, например, критерием наименьших
квадратов или минимаксным критерием.
Различия интерполяции и аппроксимации
иллюстрирует рис.1.6.
|
|
|
|
интерполяция |
аппроксимация |
интерполяция или аппроксимация |
сглаживание |
Рис.1.6. |
Если имеем непрерывную или дискретную функцию, то обычно используют 5 видов преобразований функций:
- непрерывная в дискретную (дискретизация),
- дискретная в непрерывную (интерполяция),
- дискретная в непрерывную (аппроксимация),
- непрерывная в непрерывную (интерполяция),
- дискретная в дискретную (сглаживание).
Отметим, что при сглаживании, которое широко применяется в цифровой обработке, непрерывная функция не строится, и преобразуются только ординаты точек.
Кубический сплайн.
Кубические сплайны для интерполяции предложил использовать Шенберг в 1949 г. Слово "сплайн" происходит от названия длинных тонких металлических реек, которые с давних времен немецкие чертежники крепили гвоздиками на кульмане вместо лекал для проведения сложных кривых.
Кубический сплайн - это функция, которая:
-
проходит через все заданные
точек
,
;
- на каждом отрезке между соседними точками является кубическим полиномом;
- непрерывна вместе со своими первой и второй производными во всех точках.
Заметим,
что, благодаря третьему условию,
кубическая парабола
через две точки проводится однозначно.
Формула
для кубического сплайна записывается
для произвольного отрезка с номером
,
левый конец которого имеет абсциссу
.
На этом отрезке для любого
результат интерполяции вычисляется по
кубическому сплайну.
|
(2.1) |
Причем
между
заданными точками имеем
отрезок, так что в этой формуле
.
Если
переходит на другой отрезок, то следует
изменить номер
текущего отрезка и при этом изменятся
все коэффициенты в формуле. На основании
трех условий можно показать, что
|
(2.2) |
где
штрих означает дифференцирование по
.
Следовательно, коэффициенты сплайна
характеризуют значения его производных
в узлах интерполяции. Третья производная
сплайна является разрывной функцией,
но в задачах моделирования третьи
производные используются очень редко.
Для
проведения интерполяции, т.е. вычисления
для любого
,
предварительно по заданным точкам
должны быть вычислены все коэффициенты
сплайна, т.е. массивы
,
,
каждый из которых имеет длину
в соответствии с количеством отрезков
между
точками.
Постановка
задачи: даны
точек
,
.
Определить все коэффициенты сплайна
,
,
,
т.е. всего
коэффициентов,
,
т.к.
отрезок.
Рассмотрим
два любых соседних отрезка
и
с номерами
и
.
Точка
для них является общей, см. рис. 2.1.
|
Рис. 2.1. Кубический сплайн. |
Для
правого отрезка кубический сплайн имеет
вид (2.1), а для левого, т.е. при
|
(2.3) |
.
В
общей точке
приравняем левые и правые значения
и производных
и
в соответствии с определением кубического
сплайна. Используя обозначение
для длины левого отрезка, получаем три
уравнения для пяти неизвестных
коэффициентов
,
,
,
,
.
Такие
тройки уравнений можно записать для
всех внутренних узлов
,
,
что даёт
уравнений.
|
(2.4) |
(здесь
это номера участков).
Ещё
одно уравнение получаем, записывая для
последнего узла
первое из условий
|
(2.5) |
В
результате получаем
уравнений. Эти уравнения содержат
неизвестных, т.к. для каждого отрезка
между узлами имеем 3 неизвестных.
Очевидно, что для однозначного определения
коэффициентов нужны ещё два уравнения.
Эти
дополнительные два уравнения могут
быть произвольными, но обычно полагают,
что функция
вблизи её концов является линейной
|
(2.6) |
откуда
,
=0
В
результате введения двух дополнительных
условий получается система
уравнений с
неизвестными коэффициентами
,
,
.
Эти уравнения можно преобразовать,
выразив коэффициенты
и
через
.
Введем формально
.
Тогда, имеем из последнего и первого
уравнений (2.4) и уравнения (2.5):
|
(2.7) |
Подставляя
эти выражения во второе уравнение (2.4),
получим СЛАУ для коэффициентов
:
|
(2.8) |
,
при
,
.
В
результате система из
линейных уравнений для неизвестных
коэффициентов
.
Матрица системы (2.8) состоит, в основном,
из нулей и имеет только три ненулевых
диагонали, а поэтому для её решения
применяют не метод Гаусса, а специальный
эффективный метод прогонки, резко
сокращающий количество операций.
Часто
систему уравнений (2.8) записывают для
вторых производных в узлах, обозначая
их
.
Тогда она принимает вид (Бахвалов,
Численные методы, М., 2002):
|
(2.9) |
,
причем
и формально введено
.