Иллюстрированный самоучитель по MatLab

Интерполяция кубическим сплайном

Сплайн-интерполяция используется для представления данных отрезками полиномов невысокой степени – чаще всего третьей. При этом кубическая интерполяция обеспечивает непрерывность первой и второй производных результата интерполяции в узловых точках. Из этого вытекают следующие свойства кубической сплайн-интерполяции:

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

Как отмечалось, в переводе 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.

Иллюстрированный самоучитель по MatLab › Обработка данных › Интерполяция кубическим сплайном

Иллюстрированный самоучитель по MatLab › Обработка данных › Интерполяция кубическим сплайном
Рис. 17.14. Пример применения функции spline

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.