Кубический сплайн: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
6 правок возвращено к версии 86694403 OneLittleMouse: убрал программную реализацию
Нет описания правки
Строка 40: Строка 40:


Если учесть, что <math>c_0 = c_n = 0</math>, то вычисление <math>c</math> можно провести с помощью [[Метод прогонки|метода прогонки]] для [[трёхдиагональная матрица|трёхдиагональной матрицы]].
Если учесть, что <math>c_0 = c_n = 0</math>, то вычисление <math>c</math> можно провести с помощью [[Метод прогонки|метода прогонки]] для [[трёхдиагональная матрица|трёхдиагональной матрицы]].

== Компьютерный код ==
[https://github.com/ValexCorp/Cubic-Interpolation Cubic Interpolation: C#-библиотека с открытым исходным кодом кубической интерполяции сплайном. Автор: Вадим А. Онучин, Valex Corp.] {{sfn|de Boor|1978}}


== Литература ==
== Литература ==
Строка 45: Строка 48:
* {{книга|автор=Костомаров Д. П., Фаворский А. П.|заглавие=Вводные лекции по численным методам}}
* {{книга|автор=Костомаров Д. П., Фаворский А. П.|заглавие=Вводные лекции по численным методам}}
* {{книга |автор=Волков Е. А. |заглавие=Численные методы |издание=Учеб. пособие для вузов. — 2-е изд., испр. |место={{М.}} |издательство=Наука |год=1987 |страниц=248 |часть=Глава 1. Приближение функций многочленами. § 11. Сплайны |страницы=63-68}}
* {{книга |автор=Волков Е. А. |заглавие=Численные методы |издание=Учеб. пособие для вузов. — 2-е изд., испр. |место={{М.}} |издательство=Наука |год=1987 |страниц=248 |часть=Глава 1. Приближение функций многочленами. § 11. Сплайны |страницы=63-68}}
* {{книга | автор = de Boor, Carl | заглавие = A Practical Guide to Splines. | издательство=Springer-Verlag | место=New York | год = 1978 | ref = de Boor}}


== Ссылки ==
== Ссылки ==

Версия от 18:51, 26 августа 2018

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

  • на каждом отрезке является многочленом степени не выше третьей;
  • имеет непрерывные первую и вторую производные на всём отрезке ;
  • в точках выполняется равенство , т. е. сплайн интерполирует функцию f в точках .

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

Естественным кубическим сплайном называется кубический сплайн, удовлетворяющий также граничным условиям вида:

Теорема: Для любой функции и любого разбиения отрезка существует ровно один естественный сплайн S(x), удовлетворяющий перечисленным выше условиям.

Эта теорема является следствием более общей теоремы Шёнберга-Уитни об условиях существования интерполяционного сплайна.

Построение

На каждом отрезке функция есть полином третьей степени , коэффициенты которого надо определить. Запишем для удобства в виде:

тогда

Условия непрерывности всех производных до второго порядка включительно записываются в виде



а условия интерполяции в виде

Обозначим

Отсюда получаем формулы для вычисления коэффициентов сплайна:

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

Компьютерный код

Cubic Interpolation: C#-библиотека с открытым исходным кодом кубической интерполяции сплайном. Автор: Вадим А. Онучин, Valex Corp. [1]

Литература

  • Роджерс Д., Адамс Дж. Математические основы машинной графики. — М.: Мир, 2001. — ISBN 5-03-002143-4.
  • Костомаров Д. П., Фаворский А. П. Вводные лекции по численным методам.
  • Волков Е. А. Глава 1. Приближение функций многочленами. § 11. Сплайны // Численные методы. — Учеб. пособие для вузов. — 2-е изд., испр.. — М.: Наука, 1987. — С. 63-68. — 248 с.
  • de Boor, Carl. A Practical Guide to Splines.. — New York: Springer-Verlag, 1978.

Ссылки

  1. de Boor, 1978.