Documente Academic
Documente Profesional
Documente Cultură
CURS 12
Polinomul este o funcție de o singură variabilă, care poate fi exprimat sub următoarea formă
generală:
p ( x ) = a1x +a2x
n n-1 2
+...+an-1x +anx +an+1
1. Evaluarea polinoamelor
În MATLAB există mai multe metode pentru evaluarea polinoamelor. Vor fi exemplificate, cu
polinomul:
a) Evaluarea cu scalari, adică pentru o singură valoare a variabilei. În acest caz se efectuează
operațiile cu scalari
Informatica aplicată 2 - MATLAB 2
b) Evaluarea polinomului în mai multe puncte. În acest caz se efectuează operații cu tablouri
(matrice sau vectori). Programul se execută mai rapid decât ansamblul calculelor pentru
fiecare valoare scalară în parte. Sintaxa evaluării presupune în acest caz plasarea unui punct
înaintea operatorilor înmulțire, împărțire sau ridicare la putere. Dimensiunea matricei în care
se returnează valorile polinomului este identică cu cea a matricei care conține punctele în care
se face evaluarea
Exemplu: Evaluarea polinomului p pentru x=-2, 0, 0.5, 1, 3
x=[-2 0 0.5 1 3];
p=x.^4+2*x.^2+0.5*x-6.5
p =
16.5000 -6.5000 -5.6875 -3.0000 94.0000
c) Evaluarea polinomului în unul sau mai multe puncte utilizând funcția polyval
Se apelează cu sintaxa:
Y=polyval(p,X)
h=p1-p2
h =
1.0000 0 -1.0000 2.5000 -11.5000
[v,r]=deconv(p1,p2)
v =
0.3333 0.2222 0.2593
Informatica aplicată 2 - MATLAB 4
r =
0 0 0 -0.0926 -7.7963
d(x)= ( a ( x ) b ( x ) ) = a ( x ) b ( x ) + a ( x ) b ( x )
m (x) a ( x ) a ( x ) b ( x ) -a ( x ) b ( x )
= =
n (x) b(x) b(x)
2
Exemplu: Se consideră polinoamele: p1( x ) = x4 +2x2 +0,5x -6,5 ; p2( x ) = 3x2 -2x +5 . Să se calculeze
coeficienții derivatelor polinoamelor p1 și p2, ai produsului p1∙p2, respectiv ai numărătorului și
numitorului raportului p1/p2
p1=[1 0 2 0.5 -6.5]; p2=[3 -2 5];
d1=polyder(p1)
d1 =
4.0000 0 4.0000 0.5000
d2=polyder(p2)
d2 =
6 -2
d3=polyder(p1,p2)
d3 =
18.0000 -10.0000 44.0000 -7.5000 -21.0000 15.5000
Informatica aplicată 2 - MATLAB 5
[m,n]=polyder(p1,p2)
m =
6.0000 -6.0000 20.0000 -5.5000 59.0000 -10.5000
n =
9 -12 34 -20 25
Exemplu: Să se calculeze integrala polinoamelor p1( x ) = x4 +2x2 +0,5x -6,5 ; p2( x ) = 3x2 -2x +5
p1=[1 0 2 0.5 -6.5]; p2=[3 -2 5];
in1=polyint(p1)
in1 =
0.2000 0 0.6667 0.2500 -6.5000 0
in2=polyint(p2,2)
in2 =
1 -1 5 2
Exemplu: Să se găsească rădăcinile polinoamelor: p1( x ) = x4 +2x2 +0,5x -6,5 ; p2( x ) = 3x2 -2x +5
p1=[1 0 2 0.5 -6.5];p2=[3 -2 5];
r1=roots(p1)
r1 =
0.0456 + 1.9345i
0.0456 - 1.9345i
-1.3640
1.2727
r2=roots(p2)
r2 =
0.3333 + 1.2472i
0.3333 - 1.2472i
Funcțiile roots și poly sunt funcții reciproce, realizând trecerea de la coeficienți la rădăcini,
respectiv de la rădăcini la coeficienți.
Informatica aplicată 2 - MATLAB 7
INTERPOLAREA DATELOR
Interpolarea unui set discret de perechi de date experimentale (xk,yk) presupune determinarea
unei funcții f(x) astfel ca f(xk)=yk, în vederea estimării setului de date în orice alt punct xi≠xk.
Interpolarea răspunde la nevoia de a găsi o estimare a valorilor yi în punctele xi pentru care nu
s-a realizat experimentul.
Spre exemplu, fie punctele de coordonate (x1,y1) și (x2,y2) care au fost stabilite experimental;
se cere estimarea valorii f(xi)=yi, unde x1 < xi < x2 (valoarea xi nu a fost inclusă în
experiment, deci valoarea yi nu se cunoaște). Dacă punctele sunt unite printr-o dreaptă,
interpolarea se numește liniară, iar dacă sunt unite printr-un polinom, interpolarea este spline.
Extrapolarea reprezintă estimarea unei valori f(xe)=ye, unde xe se află în afara intervalului
valorilor din experiment (xmin, xmax)
Principalele funcții MATLAB pentru interpolarea datelor sunt:
interp1 Interpolează date din tabele unidimensionale
interp2 Interpolează date din tabele bidimensionale
interp3 Interpolează date din tabele tridimensionale
interpn Interpolează date din tabele N-dimensionale
Exemplul 2: Să se reprezinte grafic o interpolare liniară și spline prin șase puncte date, pe o rețea de
10 ori mai "fină".
x=[0 1 2 3 4 5];y=[0.0 20.0 60.0 68.0 77.0 110.0];
xi=0:0.1:5;
yil=interp1(x,y,xi,'linear');
Informatica aplicată 2 - MATLAB 9
yis=interp1(x,y,xi,'spline')
plot(x,y,'o',xi,yil,xi,yis);grid;title('Interpolare liniara vs. spline')
x=[1 2 5 9];
y=[1 3 10]';
Z=[2,6,7,5;3,4,8,6;4,6,9,5];
xi=1:9;
yi=[1:10]';
Zil=interp2(x,y,Z,xi,yi,'linear');
surf(x,y,Z);hold on;surf(xi,yi,Zil+25);
Zil=interp2(x,y,Z,3.72,5.68,'linear')
Zil =
6.8395
Zic=interp2(x,y,Z,3.72,5.68,'spline')
Zic =
5.7064
Bibliografie
1. ***, Fundamente de Matlab, telecom.etti.tuiasi.ro/
2. Iulian Lupea, Curs Matlab
3. Nicoleta Breaz ș.a., Modelarea matematică prin Matlab
4. ***, MATLAB User’s Guide, The Mathworks Inc., SUA