MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Анализ и обработка данных

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

Аппроксимация и интерполяция данных

SPLINE, PPVAL,
MKPP, UNMKPP
Интерполяция функции одной переменной кубическим сплайном

Синтаксис:

yi = spline(x, y, xi) v = ppval(pp, xx)
pp = spline(x, y) [breaks, coefs, l, k] = unmkpp(pp)
pp = mkpp(breaks, coefs)

Описание:

Функция yi = spline(x, y, xi) интерполирует значения функции y в точках xi внутри области определения функции, используя кубические сплайны [1].

Функция pp = spline(x, y) возвращает pp-форму сплайна, используемую в М-файлах ppval, mkpp, unmkpp.

Функция v = ppval(pp, xx) вычисляет значение кусочно-гладкого полинома pp для значений аргумента xx.

Функция [breaks, coefs, l, k] = unmkpp(pp) возвращает характеристики кусочно гладкого полинома pp:
            breaks - вектор разбиения аргумента;
            coefs - коэффициенты кубических сплайнов;

            l = length(breaks) - 1;
            k = length(coefs)/l.

Функция pp = mkpp(breaks, coefs) формирует кусочно-гладкий полином pp по его характеристикам.

Пример:

Зададим синусоиду всего 10 точками и проведем интерполяцию кубическими сплайнами, используя мелкую сетку.

            x = 0:10; y = sin(x);
            xi = 0:.25:10;
            yi = spline(x, y, xi);
            plot(x, y, 'o', xi, yi, ‘g’), grid

image811.gif (3250 bytes)

Определим pp-форму сплайна.

           pp = spline(x, y);
           [breaks, coeffs, l, k] = unmkpp(pp)
           breaks = 0   1    2   3   4   5   6   7    8   9   10
           coeffs =

-0.0419 -0.2612 1.1446 0
-0.0419 -0.3868 0.4965 0.8415
0.1469 -0.5124 -0.4027 0.9093
0.1603 -0.0716 -0.9867 0.1411
0.0372 0.4095 -0.6488 -0.7568
-0.1234 0.5211 0.2818 -0.9589
-0.1684 0.1509 0.9538 -0.2794
-0.0640 -0.3542 0.7506 0.6570
0.1190 -0.5463 -0.1499 0.9894
0.1190 -0.1894 -0.8856 0.4121

          l =    10
          k =    4
Вычислим pp-форму в узловых точках сетки.

          v = ppval(pp,x)
          v =

0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 0.4121 -0.5440

Алгоритм:

Интерполяция сплайнами использует вспомогательные функции ppval, mkpp, unmkpp, которые образуют небольшой пакет для работы с кусочно-гладкими полиномами.

Существенно большие возможности для работы со сплайнами предо-ставляет пользователю специализированный пакет Spline Toolbox [2].

Сопутствующие функции: ICUBIC, INTERP1, POLYFIT, Spline Toolbox.

Ссылки:

  1. Carl de Boor. A Practical Guide to Splines. Berlin, 1978.
  2. Spline Toolbox. User’s Guide. Natick: The MathWorks, Inc., 1992.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика