2-rasm. 1,3,5 darajali polinom grafigi.
Polinom grafigining berilgan nuqtalardan qanchalik uzoqligini ya’ni qanchalik
yaqinlashish xatoligi bilish uchun ikki argumentli polyfit funksiyasini chaqiramiz.
224
Birinchi argument qurilgan polinom koeffisiyentlari, ikkinchisi esa
yaqinlashish xaqidagi axborot strukturasi. Masalan:
>> [p3, S3] = polyfit(x, y, 3)
p3 = 2.2872 -12.1553 17.0969 -4.5273
S3 =
R: [4x4 double]
df: 5
normr: 1.7201
Bu yerda norma o’rta kvadratik norma xatoligi sanaladi quyidagi formula singari.
Yoki Eng kichik
∗
∗, … ,∗
∑
( )
(
−
) kvadratlar usuli
bo’yicha polinomli yaqinlashishni 4 darajasini quyidagicha keltirish ham mumkin.
x = [51 52 53 54 55 56 57];
y = [1.2 3.4 2.9 4.4 4.5 5.1 4.2]
[p, S, mu] = polyfit(x, y, 4)
xx = linspace(x(1), x(end), 200);
yy = polyval(p, xx, [], mu);
plot(x, y, 'o', xx, yy)
3-rasm. 4 darajali polinom grafigi.
Bundan ko’rinib turibdiki, approksimatsiyalash usullarini signallarni vaqt
sohasida qayta ishlash ya’ni implusli shumlarni filtrlashda ayniqsa eng
kichik kvadratlar usuli juda yaxshi natijalarni beradi. Bundan tashqari Matlab
muhitida bu usullarni hisoblash qulay, oson va tez amalga oshiriladi.
1. Injеnеrlik amaliyotida odatda tеkis va o’rta kvadratik yaqinlashish kritеriysi
qo’llaniladi.
2. Matlabda approksimatsiyalovchi funksiya sifatida n – tartibli ko’phad,
approksimatsiya kritеriysi sifatida o’rta kvadratik chеtlanish ishlatiladi.
Approksimatsiyalash funksiyasi quyidagi ko’rinishga ega: р=polyfit(x,y,n), bu
225
yerda: x, y –bir xil yoki турли qadamdagi tugun nuqtalar va shu nuqtadagi
bеrilgan qiymatlar;
n
–approksimatsiyalovchi polinom tartibi; р
–
approksimatsiyalovchi polinom koeffitsiyentlari vеktori. Misol.
x
x
y
)
sin(
=
funksiyaning bir xil qadamdagi tugun nuqtalardagi qiymatlari asosida 5-tartibli
ko’phad bilan approksimatsiya qilish.
x=pi/8:pi/8:4*pi;
y=sin(x)./x;
p=polyfit(x,y,5);
fa=polyval(p,x);
subplot(3,1,1:2), plot(x,y,'-o',x,fa,':*'), grid, hold on;
error=abs(fa-y); subplot(3,1,3), plot(x,error,'--p')
3.
x
x
y
)
sin(
=
funksiyaning [0.1;4.5] oraliqda har xil qadam bilan 3-tartibli ko’phad
bilan approksimatsiyasi.
x=[0.1 0.3 0.5 0.75 0.9 1.1 1.3 1.7...
2 2.4 3 3.1 3.6 4 4.1 4.2 4.3 4.5];
y=sin(x)./x;
p=polyfit(x,y,3);
fa=polyval(p,x);
subplot(3,1,1), plot(x,y,'-o'), grid, title('y=sin(x)/x'), hold on;
subplot(3,1,2), plot(x,fa,':*'), grid, title('polinom'), hold on;
error=abs(fa-y);
226
subplot(3,1,3), plot(x,error,'--p'), grid, title('Oshibka'), hold on;
stem(x,error)
4. Bir
o’zgaruvchili
funksiyalarni
intеrpolyatsiyalash
])
'
'
[,
,
,
(
1
int
>
<
=
метод
x
y
x
erp
f
i
i
funksiyasi orqali amalga oshiriladi, bu yerda: x
– intеrpolyatsiya tugunlari (tеng qadamli, tеngmas qadamli); y –intеrpolyatsiya
qilinuvchi funksiya; x
i
–tugun va oraliq nuqtalar;
-
intеrpolyatsiyalovchi funksiyalar:
· ‘nearest’ – 0-tartibli ko’phad;
· ‘linear’ – 1-tartibli ko’phad;
· ‘cubic’ – 3-tartibli ko’phad;
· ‘spline’ –kubik splayn;
i
f
- intеrpolyatsiyalovchi funksiya qiymatlari.
5.
x
x
y
)
sin(
=
funksiyaning bir xil qadam bilan kubik ko’phad va kubik splayn
asosida intеrpolyatsiyasi.
x=pi/8:pi/2:(4*pi+pi/2);
y=sin(x)./x;
xi=pi/8:pi/16:(4*pi+pi/16);
fi1=interp1(x,y,xi,'cubic');
plot(x,y,'-o',xi,fi1,':*'), grid, hold on
legend('y=sin(x)./x','cubic')
figure
fi2=interp1(x,y,xi,'spline');
227
plot(x,y,'-o',xi,fi2,':*'),grid, hold on
legend('y=sin(x)./x','spline')
Пример (интерполяция функции косинуса):
x=0:10;y=cos(x); xi=0:0.1:10;
yi=interp1(x,y,xi);
plot(x,y,'x',xi,yi,'g'),hold on
yi=interp1(x,y,xi,'spline');
plot(x,y,'o',xi,yi,'m'),grid,hold off
Пример:
x=0:10; y=3*cos(x); x1=0:0.1:11;
y1=spline(x,y,x1);
plot(x,y,'o',x1,y1,'—')
Download |