Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
05_kyrsak.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
689.66 Кб
Скачать

1.2 Побудова моделі за допомогою поліноміальної інтерполяції поліномом 7-го степеня

Для апроксимації сигналів по відомим вхідним та вихідним параметрам використовують метод найменших квадратів. В даному випадку рівняння апроксимуючої функції буде:

де – невідомі коефіцієнти.

Запишемо умову метода найменших квадратів:

тобто

Продиференціювавши даний вираз по і прирівнявши його до нуля розв’язуємо слідуючу систему рівнянь:

Використовуючи математичний пакет Matlab, виконаємо розрахунок. Нижче наведено лістинг програмного модуля:

clear;

load data.mat

for i=1:8;

for j=1:8;

A(i,j)=sum(n1t.^(i+j-2));

end;

end;

for i=1:8;

B(i)=sum(n1t.^(i-1).*n1ut);

end;

a=B/A;

t=1:150;

f=a(8)*t.^7+a(7)*t.^6+a(6)*t.^5+a(5)*t.^4+a(4)*t.^3+a(3)*t.^2+a(2)*t+a(1);

hPlot=plot(t,f);

hold on;

plot(n1t,n1ut,'red')

xlabel('t')

ylabel('U(t)')

axis([0,150,-0.2,2.2]);

set( hPlot, 'LineWidth', 2 );

Розв’язавши систему, отримаємо такі значення коефіцієнтів:

a0 = 0.9189;

a1 = 0.0754;

a2 = -0.0054;

a3 = 0.0002;

a4 = 0.0000023;

a5 = 0.000000018;

a6 = -7.045548e-011;

a7 = 1.1338095e-013.

Нижче наведемо графічну модель (рис. 1.1):

Рис. 1.1 - Поліноміальна модель вхідного сигналу U(t) поліномом n-го порядку

1.3 Побудова моделі за допомогою полінома Чебишева

За методом найменших квадратів рівняння апроксимуючої функції для полінома Чебишева буде мати вигляд:

де – невідомі коефіцієнти.

Запишемо умову метода найменших квадратів:

тобто

Продиференціювавши даний вираз по і прирівнявши його до нуля розв’язуємо слідуючу систему рівнянь:

В системі функції вибрані таким чином:

В даних виразах коефіцієнти визначаються за формулами:

Використовуючи математичний пакет Matlab, виконаємо розрахунок. Нижче наведено лістинг програмного модуля:

clear;

load data.mat;

Cheb_por=7;

n=121;

fi=ones(n,8);

for i=1:n

fi(i,2)=n1t(i)-(1/n)*sum(n1t);

end;

for p=3:Cheb_por; i=1:n;

beta(p)=-sum(n1t(i).*fi(i,p-1).^2)/sum(fi(i,p-1).^2);

gama(p)=-sum(n1t(i).*fi(i,p-1).*fi(i,p-2))/sum(fi(i,p-1).^2);

fi(i,p)=(n1t(i)+beta(p)).*fi(i,p-1)+gama(p).*fi(i,p-2);

end;

A=fi'*fi;

B=fi'*n1ut;

a=A\B;

for i=1:121; j=1:8;

Cheb(i)=a(j)'*fi(i,j)';

end;

hPlot=plot(n1t,Cheb);

hold on;

plot(n1t,n1ut,'red');

xlabel('t');

ylabel('U(t)');

set( hPlot, 'LineWidth', 2 );

Розв’язавши систему, такі значення коефіцієнтів:

a0 = 1.0358; a4 = 0.00000053;

a1 = -0.0058; a5 = 0.0000000085;

a2 = -0.0021; a6 = -1.110324e-011;

a3 = 0.000072; a7 = 1.1338093e-013.

На рис. 1.2 наведена модель вхідного сигналу U(t), побудована поліномом Чебишева.

Рис. 1.2 - Модель вхідного сигналу U(t), побудована поліномом Чебишева

1.4 Побудова моделі за допомогою перетворення Фур’є

Наведемо коротку характеристику перетворень Фур’є.

Вираз виду:

називаються тригонометричними поліномами (ступеня π). Виявляється, що будь-яка безперервна (і не тільки безперервна) функція на проміжку (,π) може бути апроксимована з попередньо заданою точністю тригонометричними поліномами з відповідними коефіцієнтами a0 ,…,an, та b0 ,…, bn.

Лінійні комбінації функцій виду і також називають тригонометричними поліномами, мають період 2πТ. Тому можна так переформулювати наше твердження: будь-яка періодична функція може бути апроксимована тригонометричними поліномами.

Припустимо, що значення функції f(x), виміряються в деякому експерименті й за даними y1,…,ym нам вдалося чисельно оцінити коефіцієнти Фур'є функції f(x).

Часто виявляється, що функція:

Тоді для знаходження коефіцієнтів Фур’є використовується наступний метод. Нехай функція , що має період , представлена рядом Фур’є:

Якщо формально помножити дану рівність на або і почленно проінтегрувати від до , то зайві гармоніки зникнуть і отримаємо формулу для коефіцієнтів:

,

В нашому випадку рівняння апроксимуючої лінії буде:

де m =7.

Запишемо формули для розрахунку коефіцієнтів:

Використовуючи математичний пакет Matlab, виконаємо розрахунок. Нижче наведено лістинг програмного модуля:

clear;

load data.mat;

n=121;

Fur_por=4;

m=Fur_por;

for k=1:m+1

A=(1/n)*sum(n1ut);

B(k)=(2/n)*sum(n1ut.*cos(k*n1t));

C(k)=(2/n)*sum(n1ut.*sin(k*n1t));

end

for k=1:m+1

for i=1:n

FS(i,1)=A+sum(B(k)*sin(k*n1t(i))+C(k)*cos(k*n1t(i)));

end

end

plot(n1t,n1ut,'red')

hold on;

hPlot=plot(n1t,FS);

xlabel('t')

ylabel('U(t)')

axis( [ 0, 150, -0.2, 2.2 ] )

set( hPlot, 'LineWidth', 2 );

Розв’язавши систему, отримаємо таку модель:

Рис. 1.3 - Модель вхідного сигналу U(t), побудована за допомогою перетворення Фур’є

і такі значення коефіцієнтів:

a0 = 1.2165;