Upload
others
View
16
Download
0
Embed Size (px)
Citation preview
Leksion nr 7
Polinomet dhe përshtatja e kurbës me anën e një fuksioni
Polinomet
Polinomet janë të formës:Në Matlab polinomet jepen nga një vektor në të cilën elementët janë koeficientët an , an-1 , an-2 , an-3 ,………,a1 , a0
Shembuj
Në Matlabp=[8 5]
p=[2 -4 10]
p=[6 0 -150]
p=[5 0 0 6 -7 0]
n n 1 n 2f (x) an x an 1x an 2 x .......... a0
Polinomet8 x 5
2 x 2 4 x 1 0
6 x 2 1 5 0
5 x 5 6 x 2 7 x
Polinomet
7.1 Vlera e polinomit në një pikë.
Per te llogaritur vleren e nje polinomi ne nje pike te dhene x perdorimfunksionin “polyval” e cila ka formën :
polyval(p,x)
Vektori me koeficientët e polinomit
Numri ku duam të llogarisim vlerën e polinomit
x mund të jetë vektor ose matricë. Në këtë rast polinomi llogaritet për cdo element dhe përgjigja është vektor ose matricë me vlerat korresponduese të polinomit.
Vlera e polinomit në një pikë. ShembullTë llogaritet vlera e polinomit në Matlab:
a) Të llogaritet vlera e funksionit për x=9.b) Të ndërtohet grafiku per
p= [1 -12.1 40.59 -17.015 -71.95 35.88];
polyval(p,9)
ans =
7.2611e+003
x=-1.5:0.1:6.7;
y=polyval(p,x)
plot(x,y)
x5f (x) 12.1x4 40, 9x3 17.015x2 71.95x 35.88
1, 5 x 6 , 7
-2 -1 0 1 2 3 4 5 6 7
-150
-200
-100
-50
0
50
100
150
Rrenjët e polinomitGjetja e rrenjëve të një polinomi është problem që ngrihet ne shume fusha. Në Matlab rrenjët e polinomit gjenden me anë të komandës:
r=roots(p)
p është vektori rresht mekoeficientët e polinomit
Shembull:
p= [1 -12.1 40.59 -17.015 -71.95 35.88];
r=roots(p)
r =
6.5000
4.0000
2.3000
-1.2000
0.5000
r është vektori kolonë me rrënjët e polinomit
Kur njihen rrenjet, polinomi mund te shkruhet si:
)5.6)(4)(3.2)(5.0)(2.1()( xxxxxxf
Kur njihen rrenjët e një polinomi në Matlab me anë të komandës “poly” mund të përcaktojmë koeficientët e një polinomi:
Rrenjët e polinomit
p=poly(r)
r është vektori (rresht ose kolone)merrënjët e polinomit
p është vektori rresht me koeficientët epolinomit
Shembull:
r= [6.5 4 2.3 -1.2 0.5];
p=poly(r)
p =
1 -12.1 40.59 -17.015 -71.95 35.88
Mbledhja e polinomeve
Dy polinome mund të mblidhen edhe nqse nuk kanë të njëjtën rend në Matlab duke shtuar zero . Shembull:Janë dhënë ploinomet:
p1= [3 15 0 -10 -3 15 -40];
p2= [3 0 -2 -6];
p=p1+[0 0 0 p2]
p=
p2= [0 0 0 3 0 -2 -6];
p=p1+p2
p=
3 15 0 -7 -3 13 -46
Mqse p1 është polinom i rendit 6 dhe p2 polinom i rendit 3 janë shtuar zerot polinomit p2.
3 15 0 -7 -3 13 -46
ose
p1= [3 15 0 -10 -3 15 -40];
Mqse p1 është polinom i rendit 6dhe p2 polinom i rendit 3 janë shtuar zerot brenda polinomit p2.
p1 3x6 15x5 10x3 3x2 15x 40 p2 3x3 2x 6
p 3x6 15x5 7x3 3x2 13x 46
Shumëzimi polinomeveDy polinome mund të shumëzohen duke perdorur komanden “conv” :
p=conv(a,b)
p është vektori me koeficientët e polinomit mbasi është kryer shumëzimi i polinomeve
a dhe b janë vektorët me koeficientët e polinomit që do të shumëzohen
Shembull: Janë dhënë polinomet dhe
a=[1 -12 0 25 116];
b=[1 1];
p=conv(a,b)
p =
1 -11 -12 25 141 116
Shumëzimi i tre polinomeve mund të realizohet duke e përsëritur komandënconv.
x4a 12x3 25x 116 b x 1
Pjestimi i polinomeveDy polinome mund të pjestohen duke perdorur komanden “deconv” :
[q,r]=deconv(a,b)
q është vektori me koeficientët e plotë të polinomit dhe r është vektori me koeficientët e mbetjes të polinomit mbasi është kryer pjestimi i polinomeve
a dhe b janë vektorët me koeficientët e polinomit që do të pjestohen
Shembull: Të kryhet pjestimi i dy polinomeve.
a=[2 9 7 -6];
b=[1 3];
[q,r]=deconv(a,b)
q =
2 3 2
r=
0 0 0 0
a 2x3 9x2 7x 6 b x 3
Pjestimi i polinomeve
[q,r]=deconv(a,b)
q është vektori me koeficientët e plotë të polinomit dhe r është vektori me koeficientët e mbetjes të polinomit mbasi është kryer pjestimi i polinomeve
a dhe b janë vektorët me koeficientët e polinomit që do të pjestohen
Shembull: Të kryhet pjestimi i dy polinomeve.
u=[1 1 2];
v=[2 0 0 1];
[q,r]=deconv(v,u)
q =
2 -2
r=
0 0 -2 5
x2u x 2
Pas pjestimit të dy vektorëve do të marrim :
2x 52x 2
x2 x 2
Derivatet e polinomeveKomanda “polyder” është komanda e cila shërben për të llogaritur derivatin e një polinomi të vetëm, produktit të dy polinomeve dhe pjestimit të dy polinomeve si tregohet më poshtë:
K=polyder(p) Derivati i polinomit , ku p është vektori mekoeficientët e polinomit.K është vektori mekoeficientët e derivatit
K=polyder(a,b) Derivati i produktit të dy polinomeve , ku a dhe b janë vektorët me koeficientët e polinomeve . K është vektori me koeficientët e derivatit të shumëzimit.
[n,d]=polyder(u,v) Derivati i pjestimit të dy polinomeve , ku u dhe v janë vektorët me koeficientët e polinomeve ,ndërsa n dhe d janë koeficientët e numëruesit dhe emëruesit të polinomit që është derivati ipjestimit.
Derivatet e polinomeve. ShembujJanë dhënë polinomet: dhe
Përcaktoni derivatet e polinomeve , derivatet e shumëzimit dhe
pjestimit të tyre.
f2=[1 0 5];f1=[3 -2 4];
k=polyder(f1)
k=
6 -2
f=polyder(f2)
f =
2 0
h=polyder(f1,f2)
h =
12 -6 38 -10
[n,d]=polyder(f1,f2)
n =
2 22 -10
d =
1 0 10 0 25
f 1(x) 3x2 2x 4 f 1(x) 5x2
Përshtatja e kurbës me anë të një polinomiPërshtatja e kurbës është procesi i cili i përshtat një funksion disa të dhënavëtë përcaktuara . Funksioni mund të përdoret si modeli matematik i këtyre tëdhënave. Kemi disa funksione kështu qe përshtatja e kurbës me anë të njëfunksioni është një proces i vështirë.Përshtatja e një kurbe të caktuar me anë të një polinomi realizohet dukepërdorur komandën “polyfit”. Polinomet pëërdoren në dy mënyra për tjupërshtatur një kurbe të caktuar:❖Polinomi i përshtatur kalon në të gjitha pikat e dhëna.❖Polinomi i përshtatur nuk kalon në të gjitha pikat e dhëna por jep një përshkrim të mirë të të dhënave.
p=polyfit(x,y,n)
“x” jane te dhenat per boshtin e x-ve, y janë te dhenat per boshtin e y-ve, dhe “n” eshte rendi i polinomit qe ne duam te ndertojme
p është vektori me koeficientët e polinomit që i përshtatet të dhënave
Përshtatja e kurbës me anë të një funksioniPër m cift pikash të dhënë polinomi i cili përshtatet më tepër është polinomi i renditn=m-1. Nqse n=1 atëherë kurba është vijë e drejtë =, për n=2 është parabolë e kështu me radhë. Polinomi përshkon të gjitha pikat kur n=m-1.Shembull :Jepen disa të dhëna dhe përcaktojmë polinomin për këto të dhëna:
1 2 3 4 5 6 7 8 9 1000
1
2
3
4
5
6
7
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,1)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
x 0.9 1.5 3 4 6 8 9.5
y 0.9 1.5 2.5 5.1 4.5 4.9 6.3
Shembulli
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,2)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,3)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
1 2 3 4 5 6 7 8 9 100
0
2
1
3
4
5
6
70
Shembulli
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,4)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,5)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
1 2 3 4 5 6 7 8 9 1000
2
1
3
4
5
6
70
Shembulli
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,6)
yp=polyval(p,x)
plot(x,y,'o',x,yp)
1 2 3 4 5 6 7 8 9 1000
6
5
4
3
2
1
7
Përshtatja e kurbës me anë të një funksioni
Shpesh herë ndodh që funksioni që do ti përshtasim disa të dhënave të mos jetëpolinom. Përshtatja e kurbave mund të realizohet me anë të funksioneve eksponenciale, funksioneve të ngritjes në fuqi, logaritmike etje.
Funksionet :
ose
ose
➢Funksioni eksponencial➢Funksioni i ngritjes në fuqi➢Funksioni logaritmik➢Funksioni reciprok
y b10mx
y m log(x) b
y bemx
y bxm
y m ln(x) b
y1
mx b
Komanda që përdoret është komanda ‘polyfit’. Kjo realizohet duke i rishkruajtur të gjithafunksionet si një polinom i rendit të parë(n=1):
y mx bFunksioni logaritmik është në këtë form ndërsa funksioni i ngritjes në fuqi, eksponencialdhe ai reciprok mund të shkruhen:
mln(x) lnb
mx ln(b)
mx b
ln(y)
ln(y)
1/ y
Funksioni i ngritjes në fuqi
Funksioni eksponencial
Funksioni reciprok
Përshtatja e kurbës me anë të një funksioni
Këto funksione kanë një varësi lineare ln(y) dhe x për funksionin eksponencial, ln(y)dhe ln(x) për funksionin e ngritjes në fuqi, y dhe ln(x) për funksionet logaritmike etje.
Funksionet :➢Funksioni eksponencial
➢Funksioni i ngritjes në fuqi➢Funksioni logaritmik
p=polyfit(x,log(y),1) p=polyfit(x,log10(y),1) p=polyfit(log(x),log(y),1) p=polyfit(log(x),y,1 p=polyfit(log10(x),y,1)
➢Funksioni reciprok p=polyfit(x,1./y,1)y
y bemx
y b10mx
y bxm
y mln(x) by m log(x) b
1
mx b
Në zgjedhjen e një funksioni duhet te kemi parasysh:• Funksionet eksponenciale nuk mund të kalojnë përmes origjinës.• Funksionet eksponenciale mund të përshtaten vetëm me të gjitha y-të pozitive ose të gjitha y-të negative.• Funksionet logaritmike nuk mund të pershtaten x = 0 ose vlerat negative të x.• Për funksionin e fuqisë y = 0 kur x = 0.• Ekuacioni reciprok nuk mund të pershtatet kur y = 0.
ShembullJepet tabela me të dhënat e mëposhtme. Gjeni funksionin w=f(t).
0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0
1
2
3
4
5
6
Ndërtojmë grafikun e të dhënave.t=0:0.5:5;
w=[6 4.83 3.7 3.15 2.41 1.83 1.49 1.21 0.96 0.73 0.64];
plot(t,w,'o')
Nga grafiku shohim një eksponencë
rënëse, kështu që funksioni do të
ketë një trajtë eksponenciale.
Shembull
0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0
1
2
3
4
5
6
p=polyfit(t,log(w),1)
m=p(1);
b=exp(p(2));
tm=0:0.5:5;
wm=b*exp(m*tm)
plot(t,w,'o',tm,wm)
Interpolimi është vlerësimi i vlerave midis pikave të të dhënave. MATLAB kafunksionet e interpolimit që bazohen në polinome. Në interpoliminnjëdimensional çdo pikë ka një variabël të pavarur (x) dhe një variabli të varur(y). Në interpolimin dy-dimensional çdo pikë ka dy të pavarurvariablave (x dhe y) dhe një variabël të varur (z).
Interpolimi
Interpolimi njëdimensional:
yi=interp1(x, y, xi, ‘metoda’)
yi vlera e interpoluar
x eshte vektori me vlerat horizontale te tedhenave hyrese (vlariblat e pavarur). yeshte vektori me vlerat horizontale te tedhenave hyrese (variablat e varur). xi eshtevektori me vlerat horizontale te pikave teinterpolimit(variablat e pavarura).
Metoda e interpolimit, e shkruajtursi njestring
Interpolimi
➢Vektori x duhet të jetë vektor monoton (me elemente sipas rendit rrites ose zbrites➢xi mund të jetë një skalar (interpolimi i një pike) ose një vektor (interpolimi ishumë pikë). yi është një skalar ose një vektor me interpolimin vlerat korresponduese➢MATLAB mund të bëjë interpolimin duke përdorur një nga disa metoda që mund të jenë te specifikuara. Këto metoda përfshijnë:❖‘nearest‘ (Më e afërt) kthen vlerën e pikëve të të dhënave që është më e afërt mepikën interpoluar.❖‘linear' përdor interpolimin linear të spline.❖'Spline' përdor interpolimin kub spline.❖'Pchip' përdor interpolimin pjesërisht cubic Hermite, i quajtur edhe 'cubic'• Kur përdoren metodat 'nearest' dhe 'lineare', vlerat e xi duhet të jenë brenda domenit të x. Nëse janë 'spline' ose 'pchip' metodat e përdorura, xi mund të ketë vlera jashtë domenit të x dhe funksionit interp1 kryen ekstrapolim.• Metoda 'spline' mund të japë gabime të mëdha nëse pikat e të dhënave jane jo-uniforme, kështu që disa pika janë shumë më afër së bashku se të tjerët.• Specifikimi i metodës është opsinal. Nëse nuk është caktuar ndonjë metodë, është e paracaktuar ‘linear'.
Shembull (Interpolimi)Pikat e mëposhtme të të dhënave, janë pikat e funksionit . Përdorni metoda të interpolimit linear, spline dhe pchip për të llogaritur vlera e y midis pikave. Bëni një figurë për secilën prej metodave të interpolimit.Në figurë tregojnë pikat, një komplot të funksionit dhe një kurbë që korrespondon
)1.5xcos(2x f(x)
x= 0 : 1.0 : 5; y=[1.0 -0.6242 -1.4707 3.2406 -0.7366 -6.3717];xi=0: 0.1:5; yilin=interp1 (x,y,xi, 'linear'); yispl=interp1 (x,y,xi, 'spline'); yipch=interp1 (x,y,xi, 'pchip'); yfun=1. 5. ^xi. *cos (2*xi); subplot(1,3,1)plot(x,y,'o',xi,yfun,xi,yilin,'--');subplot(1,3,2)plot(x,y,' o' ,xi,yfun,xi,yispl ,'--');subplot(1,3,3)plot(x,y,'o',xi,yfun,xi,yipch ,'--');
Krijon vektoret x dhe y me kordinatat e dhena.
Krijon vektoret xi me pikat per interpolimin.
Llogarit pikat y nga interpolimi linear.
Llogarit pikat y ngainterpolimi spline.
Llogarit pikat y ngainterpolimi pchip.
Shembull (Interpolimi)