Интерполяция кубическим сплайном
Сплайн-интерполяция используется для представления данных отрезками полиномов невысокой степени – чаще всего третьей. При этом кубическая интерполяция обеспечивает непрерывность первой и второй производных результата интерполяции в узловых точках. Из этого вытекают следующие свойства кубической сплайн-интерполяции:
- график кусочно-полиномиальной аппроксимирующей функции проходит точно через узловые точки;
- в узловых точках нет разрывов и резких перегибов функции;
- благодаря низкой степени полиномов погрешность между узловыми точками обычно достаточно мала;
- связь между числом узловых точек и степенью полинома отсутствует;
- поскольку используется множество полиномов, появляется возможность аппроксимации функций с множеством пиков и впадин.
Как отмечалось, в переводе spline означает "гибкая линейка". График интерполирующей функции при этом виде интерполяции можно уподобить кривой, по которой изгибается гибкая линейка, закрепленная в узловых точках. Реализуется сплайн-интерполяция следующей функцией:
- yi = spline(x,y,xi) – использует векторы х и у, содержащие аргументы функции и ее значения, и вектор xi, задающий новые точки; для нахождения элементов вектора yi используется кубическая сплайн-интерполяция;
- рр = spline(x.y) – возвращает рр-форму сплайна, используемую в функции ppval и других сплайн-функциях.
Пример:
>> x=0:10; y=3*cos(x); >> x1=0:0.1:11; >> y1=spline(x,y,x1); >> plot(x,y,'o',x1,y1,'--')Сплайн-интерполяция дает неплохие результаты для функций, не имеющих разрывов и резких перегибов. Особенно хорошие результаты получаются для монотонных функций.
Результат интерполяции показан на рис. 17.14.


Рис. 17.14. Пример применения функции spline
Ввиду важности сплайн-интерполяции и аппроксимации в обработке и представлении сложных данных в состав системы MATLAB входит пакет расширения Spline Toolbox, содержащий около 70 дополнительных функций, относящихся к реализации сплайн-интерполяции и аппроксимации, а также графического представления сплайнами их результатов. Для вызова данных об этом пакете (если он установлен) используйте команду help splines.
