Аппроксимирование функции многочленом по методу наименьших квадратов. Интерполирование функций

Страницы работы

Содержание работы

Лабораторная работа №1

Аппроксимирование функции многочленом

Тема работы: “Интерполирование функций”

Для решения задачи интерполирования функции алгебраическим многочленом в системе MATLAB предназначены функции polyfit() (POLYnomial FITing – аппроксимация многочленом) и polyval() (POLYnomial VALue – значение многочлена).

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

Функция polyval(P,z) вычисляет значения  полинома, коэффициенты которого являются элементами вектора P, от аргумента z. Если z вектор или матрица, то многочлен вычисляется во всех точках z.

Пример решения задачи интерполирования:

Функция задана таблицей своих значений.

x

0

1

2

3

y

1.0

1.8

2.2

1.4

Построить интерполяционные многочлены степени 2 и 3, записать многочлены в канонической форме и построить их графики.

Протокол программы:

x=[0 1 2 3]                               % исходные

y=[1.0 1.8 2.2 1.4]                   % данные

P2=polyfit(x(1:3),y(1:3),2)     %  Коэффициенты интерполяционного многочлена

                                                %            второй степени

P3= polyfit(x(1:4),y(1:4),3)     %  Коэффициенты интерполяционного многочлена

                                                %            третьей степени

% по результатам можно записать многочлены в каноническом виде.

% Для построения графиков необходимо задать векторы x1 и x2, моделирующие

% интервалы [0, 2] и[0, 3], и вычислить значения многочленов для элементов этих

%  векторов.

x1=0:0.05:2;

y1=polyval(P2,x1);

x2=0:0.05:3;

y2=polyval(P3,x2);

plot(x,y,'ok',x1,y1,'r',x1,y2,'--b'); grid

Функция  plot() строит табличные значения функции черными кружочками, графики многочленов красной линией – второй степени, синей пунктирной линией – третьей степени.

Тема работы: “Аппроксимирование функции многочленом по методу наименьших квадратов”

 В системе MatLAB построить аппроксимирующий многочлен степени 2 для заданной функции f(x) методом наименьших квадратов на отрезке [a,b].

     а) y=f(x) = sin(x/k)                                               б) y=f(x) = cos(x/k)

         [a,b] = [0, k*pi]                                                  [-pi*k/2, pi*k/2]

Порядок выполнения:

1.  Задать вектор значений переменной  x, от a до b с шагом pi*k/16

2.  Вычислить значения функции f(x) в этих точках (вектор  y)

3.  Найти элементы (si) матрицы нормальной системы метода наименьших квадратов (S)

4.  Найти элементы (ti) вектора правых частей (t) нормальной системы метода наименьших квадратов

5.  Составить матрицу системы (S) и вектор правых частей (t)

6.  Решить полученную систему (S*a = t), т.е. найти коэффициенты (ai) аппроксимирующего многочлена Q(x)

7.  Построить аппроксимирующий многочлен (Q)

8.  Построить графики y и Q на [a,b] на одном рисунке

9.  Найти коэффициенты аппроксимирующего многочлена с помощью оператора polyfit(). Сравнить результаты.

Список функций и операторов MatLAB, полезных при выполнении работы:

A= – оператор присваивания значения (A – скалярная величина, вектор или матрица);

sum(V) – производит суммирование элементов вектора V;

length(x) – функция вычисляет длину (количество элементов) вектора x

A.^p – возведение в p –ю  степень элементов вектора A;

A.*B – поэлементное умножение вектора А на вектор B, в результате получается вектор, элементы которого равны произведениям соответствующих элементов векторов;

‘\’ – деление справа налево, A\B = inv(A)*B.

A’  –  операция транспонирования вектора A;

A(k) – взятие k-го элемента вектора A;

polyfit(x,y,n) – оператор находит коэффициенты многочлена Q(x) степени n, аппроксимирующего y(x) по методу наименьших квадратов

clc – очищает командное окно от предыдущих результатов.

Похожие материалы

Информация о работе