Кубический сплайн: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Oleg4280 (обсуждение | вклад) 6 правок возвращено к версии 86694403 OneLittleMouse: убрал программную реализацию |
Onuch-v (обсуждение | вклад) Нет описания правки |
||
Строка 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.
Ссылки
Для улучшения этой статьи желательно:
|