Reprezentarea polinoamelor.
Interpolarea
  
Polinoame
  
MATLAB-ul furnizeaza
functii pentru operatii polinomiale standard cum ar fi calculul
radacinilor, evaluarea polinoamelor, derivarea etc. O
parte din aceste operatii precum si modul de reprezentare a
polinoamelor ca vectori au fost descrise in capitolul de Fundamente de
programare.
  
Functiile polinomiale se afla in directorul polyfun:
  
 
  | 
   Functie  
   |  
   Descriere  
   | 
 
 
  | 
   conv  
   |  
   Multiplica
  polinoamele. 
   | 
 
 
  | 
   deconv  
   |  
   Imparte
  polinoamele.  
 
 
   | 
 
 
  | 
   poly  
   |  
   Returneaza coeficientii daca se dau
  radacinile; Polinomul caracteristic. 
   | 
 
 
  | 
   polyder  
   |  
   Calcul
  derivatei unui polinom. 
   | 
 
 
  | 
   polyfit  
   |  
   Gasirea coeficientilor unui polinom din
  aproximarea unui set de date. 
   | 
 
 
  | 
   polyval  
   |  
   Evaluarea
  unui polinom. 
   | 
 
 
  | 
   polyvalm  
   |  
   Evaluarea
  unui polinom cu argument matriceal. 
   | 
 
 
  | 
   residue  
   |  
   Descompunere
  in fractii simple. 
   | 
 
 
  | 
   roots  
   |  
   Gasirea
  radacinilor unui polinom. 
   | 
 
 
 
  
 
q          Dupa cum s-a precizat deja, MATLAB-ul reprezinta polinoamele ca vectori linie care contin coeficientii polinoamelor in ordinea descrescatoare a puterilor.    q          Functiile uzuale care opereaza cu polinoame au fost prezentate (de exemplu roots). In continuare sunt parcurse alte cateva exemple utile.   
v  Functia
poly returneaza
coeficientii unui polinom daca dispunem de radacinile
acestuia (este o functie inversa fata de roots):
» p=[1 -1
2 4 1];
»
r=roots(p)
r =
 1.0529 + 1.7248i
 1.0529 - 1.7248i
 -0.7995 
 -0.3063 
  
»
coef=poly(r)
coef =
 1.0000 -1.0000 2.0000 4.0000 1.0000
  
O
alta utilizare a functiei poly este
aceea de calculare a coeficientilor polinomului caracteristic al unei
matrice:
» A A =  -1 -3  1  2 -2 -1
  0 1 -3 
» poly(A) ans =  1 6 18 23   
Radacinile acestui polinom sunt chiar valorile
proprii ale matricii A 
 
			
  
v 
Functia
polyval evalueaza un polinom pentru
o valoare specificata a argumentului. 
  
Functia polyvalm permite evaluarea unui polinom in
sens matriceal. In acest caz polinomul p din exemplul anterior:  p(x) = x4 – x3 + 2x2
+ 4x + 1 devine p(X) = X4 – X3 + 2X2 + 4X + I,
unde X este o matrice patratica si I matricea unitate. 
Exemplu:
» C=polyvalm(p,A) C =  -75 -61 81 
 58 -130 75  52 -23 49 
 
v 
Functiile
conv si deconv implementeaza
operatiile de inmultire si impartire a polinoamelor. 
  
Exemple:
Fie a(x) =
x2 + 2x +3 si b(x) = 4x2 + 5x + 6.
  » a = [1 2 3]; b = [4 5 6]; » c = conv(a,b) c =  4 13 28 27 18 
  
» [q,r] = deconv(c,a) q =  4 5 6 
r =  0 0 0 0 0 
 
v  Functia polyder permite
calculul derivatei unui polinom.
  
Exemplu:
» p=[1 -1 2 4 1];
»
pderivat=polyder(p)
pderivat =
 4 -3 4 4
  
v  Functia polyfit
gaseste coeficientii unui polinom (o curba) care
aproximeaza un set de date in sensul algoritmului celor mai mici
patrate:
  p = polyfit(x,y,n) 
  
x si y sunt vectorii care contin
setul de date iar n este ordinul polinomului ai
carui coeficienti vor fi furnizati la apelarea functiei.
  
Exemplu:
  
» x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4]; » p = polyfit(x,y,3) p =  -0.1917 31.5821 -60.3262 35.3400 
  
Pentru plotarea rezultatului se utilizeaza mai intai
functia polyval pentru o trasare cat mai
exacta a graficului polinomului si apoi se ploteaza estimarea
versus datele reale pentru comparatii. 
   
 
» x2 = 1:.1:5; » y2 = polyval(p,x2); » plot(x,y,'o',x2,y2) 
 
v  Functia residue se
utilizeaza pentru descompunerea in fractii simple.
Se aplica
in cazul raportului a doua polinoame b si a 

unde r este un vector coloana, p tot un vector coloana care
contine polii iar k un vector linie cu termenii
directi.
Exemplu: 

  
» b = [-4 8]; » a = [1 6 8]; » [r,p,k] = residue(b,a) r =  -12  8 p =  -4  -2 k =  [] 
  
Daca
se folosesc trei argumente de intrare (r p, si k),
functia residue
asigura conversia inapoi in forma polinomiala: 
  
» [b2,a2] = residue(r,p,k) b2 =  -4 8 a2 =  1 6 8   
 
Interpolarea
  
Interpolarea este un proces
de estimare a valorilor dintre date (puncte) cunoscute. Aplicatiile
interpolarii sunt numeroase in domenii cum ar fi procesarea numerica
a semnalelor si imaginilor.
  
MATLAB-ul dispune de mai
multe tehnici de interpolare, alegerea unei metode sau alteia facandu-se
in functie de acuratetea necesara, de viteza de executie
si de gradul de utilizare a memoriei.
  
Functiile
de interpolare se afla in directorul polyfun 
 
  | 
   Functie  
   |  
   Descriere  
   | 
 
 
  | 
   griddata     |  
   Interpolare
  pe suprafete. 
   | 
 
 
  | 
   interp1  
   |  
   Interpolare
  monodimensionala. 
   | 
 
 
  | 
   interp2  
   |  
   Interpolare
  bi-dimensionala. 
   | 
 
 
  | 
   interp3  
   |  
   Interpolare
  tri-dimensionala. 
   | 
 
 
  | 
   interpft  
   |  
   Interpolare mono utilizand metoda FFT. 
   | 
 
 
  | 
   spline  
   |  
   Interpolare
  spline (cubica). 
   | 
 
 
 
 
  
Compararea unor
metode de interpolare bi-dimensionala
  
In continuare este preluat si prezentat (informativ)
un exemplu de folosire a unor metode de interpolare bi-dimensionala pentru
o matrice de date 7 x 7.
 - Generarea
     functiei peaks (cu rezolutie mica): 
 
[x,y] = meshgrid(-3:1:3); z = peaks(x,y); surf(x,y,z)
   
  
 - Generarea unei suprafete mesh fine
     pentru interpolare: 
 
[xi,yi] = meshgrid(-3:0.25:3);   
 - Interpolarea cu metoda celei mai apropiate
     vecinatati: 
 
zi1 = interp2(x,y,z,xi,yi,'nearest');   
 - Interpolarea
     cu metoda biliniara: 
 
zi2 = interp2(x,y,z,xi,yi,'bilinear');   
 - Interpolarea
     cu metoda bicubica: 
 
zi3 = interp2(x,y,z,xi,yi,'bicubic');   
 - Compararea
     graficelor corespunzatoare diferitelor metode de interpolare:
 

 Compararea
contururilor suprafetelor in cazul diferitelor metode de interpolare:
 
Se
observa ca metoda bicubica produce cele mai netede contururi. O
metoda cum ar fi cea a celor mai apropiate vecinatati este
preferata insa in anumite aplicatii, cum ar fi cele medicale
unde nu trebuie generate date noi.