Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MatLab_Лаб. раб.1-5.doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
1.36 Mб
Скачать

Лабораторна робота № 5 Апроксимація функцій

5.1 Робота в Matlab

5.1.1. Функція polyfit(X, y, n) - Апроксимація даних поліномом

Синтаксис:

            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.5

000

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])

З аналізу графіка випливає, що апроксимація за межами відрізка [0 2.5] розходиться.

Алгоритм:

Апроксимація поліномом пов’язана з розрахунком матриці Вандермонда V, елементами якої є базисні функції

           ,

та з подальшим розв’язком системи лінійних рівнянь

          Vp = y.

Користувач може самостійно внести зміни в М-файл polyfit, щоб застосувати інші базисні функції.

5.1.2. Polyval - Розрахунок полінома

Синтаксис:

              y = polyval(p, s)               Y = polyval(p, S)

Опис:

Функція  y = polyval(p, s), где p = [p1 p2 ... pn pn+1] - вектор коефіцієнтів полінома p(x) = p1xn + p2xn-1 + ... + pnx + pn+1, розраховує значення цього полінома у точці x = s.

Функція Y = polyval(p, S), де S - одномірний або двумірний масив, розраховує значення цього полінома для кожного елементу масива, тому size(Y) = size(V).

Приклад:

Розрахуємо значення полінома p(x) = 3x2 + 2x +1 у точці x = 5.

             p = [3    2   1]              p = 3    2   1              y = polyval(p, 5)              y = 86

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]