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

MATLAB\MATLAB

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

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

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

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

Синтаксис:

            p = polyfit(x, y, n)

Описание:

Функция p = polyfit(x, y, n) находит коэффициенты полинома p(x) степени n, который аппроксимирует функцию y(x) в смысле метода наименьших квадратов. Выходом является строка p длины n +1, содержащая коэффициенты аппроксимирующего полинома.

Пример:

Рассмотрим аппроксимацию функции ошибки erf(x), которая является ограниченной сверху функцией, в то время как аппроксимирующие полиномы неограниченны, что приводит к ошибкам аппроксимации.

             x = (0:0.1:2.5)';
             y = erf(x);

вычислим коэффициенты аппроксимирующего полинома степени 6:

             p = polyfit(x, y, 6)
             p = 0.0084     -0.0983    0.4217    -0.7435     0.1471    1.1064    0.0004

вычислим значения полинома в точках сетки:

             f = polyval(p, x);

сформируем следующую таблицу данных:

             table = [x y f y-f]
             table =

0 0 0.0004 -0.0004
0.1000 0.1125 0.1119 0.0006
0.2000 0.2227 0.2223 0.0004
0.3000 0.3286 0.3287 -0.0001
0.4000 0.4284 0.4288 -0.0004
.... .... .... ....
2.1000 0.9970 0.9969 0.0001
2.2000 0.9981 0.9982 -0.0001
2.3000 0.9989 0.9991 -0.0003
2.4000 0.9993 0.9995 -0.0002
2.5000 0.9996 0.9994 0.0002

Из таблицы видно, что на отрезке [0 2.5] точность аппроксимации находится в пределах 3-4 знаков; построим графики функции и аппроксимирующего полинома на отрезке [0 5].

            x = (0:0.1:5)';
            y = erf(x);
            f = polyval(p, x);
            plot(x, y, 'ob', x, f, '-g'), » axis([0 5 0 2])

image807.gif (2197 bytes)

Как следует из анализа графика, аппроксимация вне отрезка [0 2.5] расходится.

Алгоритм:

Аппроксимация полиномом связана с вычислением матрицы Вандермонда V, элементами которой являются базисные функции

           image808.gif (218 bytes),

и последующим решением переопределенной системы линейных уравнений

          Vp = y.

Пользователь может самостоятельно внести изменения в М-файл polyfit, чтобы применить другие базисные функции.

Сопутствующие функции: POLY, POLYVAL, VANDER.

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

 


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

Система Orphus

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