MATLAB représente un polynôme sous la forme d’un vecteur de ses coefficients classés dans l’ordre des puissances décroissantes.

 

Représentation d’un polynôme

Le polynôme P d’expression : P (x) = x2 – 6x + 9, est représenté par le vecteur suivant :

>> P = [1 -6 9]
P =
     1   -6     9

 

Le nombre d’éléments du vecteur est égal au degré du polynôme + 1.

Le polynôme Q (x) = x3 + 2x2 – 3 est représenté par :

>> Q = [1 2 0 -3]
Q =
     1     2     0   -3

 

Les principaux problèmes liés aux polynômes sont:

  • la recherche de racines;
  • l’évaluation;
  • l’adaptation à des données.

 

Racines d’un polynôme

On peut déterminer les racines des polynômes P et Q à l’aide de la fonction roots.

>> roots (P)
ans =
3.0000 + 0.0000i
3.0000 - 0.0000i

Ceci est exact car P (x) = (x – 3)2.

 

>> roots (Q)

ans =
 -1.5000 + 0.8660i
 -1.5000 - 0.8660i
 1.0000 + 0.0000i

Le polynôme Q pouvant être mis en facteur comme suit : Q (x) = (x – 1) (x2 + 3x +3)

Ses racines sont bien :

racines_pol1

 

Évaluation de polynômes

Pour évaluer un polynôme en un point, on utilise la fonction polyval.

Essayons de trouver la valeur du polynôme P en 1 et celle du polynôme Q en 0

>> polyval (P, 1)
ans =
4
>> polyval (Q, 0)
ans =
-3

 

Détermination d’un polynôme à partir de ces racines

On peut déterminer les coefficients d’un polynôme à partir de ses racines en utilisant la fonction poly.

 

On cherche, par exemple, le polynôme qui a pour racines : 1, 2 et 3.

Celles-ci peuvent être définies comme les éléments d’un vecteur r.

>> r = [1 2 3]
r =
1     2     3

Le polynôme cherché est alors :

>> K = poly (r)
K =
1   -6   11   -6

Qui correspond à : K (x) = x3 – 6x2 + 11x – 6. En multipliant par un réel non nul, tous les coefficients de K, on trouve un autre polynôme ayant les mêmes racines que K.

On vérifie bien que les racines du polynôme K sont 1, 2 et 3.

>> racines = roots (K)

racines =
3.0000
2.0000
1.0000

 

Représentation graphique

Pour tracer la représentation graphique du polynôme K (x), définissons un domaine pour la variable x qui contient les racines de K.

Domaine des valeurs de la variable x et évaluation du polynôme K:

>> x = 0:0.1:4;
>> y = polyval (K, x);

 

Tracé la fonction y = K (x) :

>> plot (x, y)
>> grid on
>> title ('tracé de y = x^3 - 6x^2 + 11x -6')
>> xlabel ('x')
>> ylabel ('y')

 

Grace au bouton Data Curseur, nous montrons sur le graphique les solutions du polynôme.graphe_popynome

  • plot : tracé d’unr représentation graphique.
  • grid : affiche une grille.
  • title : attribue un titre au graphique
  • xlabel : attribue un texte à l’axe des abscisses
  • ylabel : attribue un texte à l’axe des ordonnées
  • Le titre, les labels de x et y peuvent être insérés directement par le menu Insert de la fenêtre graphique.

 

Les opérations de polynôme

La multiplication et la division de polynôme peuvent être réalisées facilement avec MATLAB. Soit deux polynômes P1 et P2 définis par :

P (x) = x + 2

P2 (x) = x2 – 2x + 1

>> P1 = [1 2]
P1 =
1     2
>> P2 = [1 -2 1]
P2 =
1   -2     1

 

Le résultat de la multiplication de P1 par P2 est le polynôme P3 qui s’obtient avec la fonction conv.

>> P3 = conv (P1, P2)
P3 =
1     0   -3     2

 

La division de deux polynômes se fait par la fonction deconv. Le quotient Q et le reste R de la division peuvent être obtenus sous forme d’élément d’un tableau.

>> [Q, R] = deconv (P2, P1)
Q =
1   -4
R =
0     0     9

 

En divisant P3 par P1, on retrouve bien le polynôme P2 (le reste R est nul).

>> [Q, R] = deconv (P3, P1)
Q =
1   -2     1
R =
0     0     0     0

R est le polynôme nul si la division est exacte.

 

L’intégration de polynôme

La fonction polyint retourne les coefficients q de la primitive Q(x) du polynôme P(x):

>> Q = [1 2 0 -3]

Q =
1 2 0 -3

>> polyint(Q)

ans =
0.2500 0.6667 0 -3.0000 0

 

La dérivation de polynôme

La fonction polyder retourne les coefficients q du polynôme Q(x) dérivé de P(x):

>> Q = [1 2 0 -3]

Q =
1 2 0 -3

>> polyder(Q)

ans =
3 4 0

 

L’interpolation de données

L’interpolation est une opération mathématique permettant de construire une courbe à partir de la donnée d’un nombre fini de points, ou une fonction à partir de la donnée d’un nombre fini de valeurs.

 

Interpolation en dimension 1

Pour faire une interpolation de dimension 1 sous MATLAB, il faut utiliser la fonction interp1.

Elle propose quatre interpolants:
‘nearest’ plus proche voisin
• ‘linear‘ linéaire
• ‘spline‘ spline
• ‘cubic‘ cubique

>> x = [1 2 3 4 5];
v = [12 16 31 10 6];
xq = [0 0.5 1.5 5.5 6];
vq1 = interp1(x,v,xq,'linear')
vq2 = interp1(x,v,xq,'cubic')
vq3 = interp1(x,v,xq,'linear', 'extrap')

vq1 =
NaN NaN 14 NaN NaN

vq2 =
19.3684 13.6316 13.2105 7.4800 12.5600

vq3 =
8 10 14 4 2

 

Interpolation en dimension 2

MATLAB a aussi des fonctions pour interpoler des données surfaciques zi = f (xi , yi):

z = interp2(xi,yi,zi,x,y);
z = griddata(xi,yi,zi,x,y);

selon que les zi sont régulièrement échantillonnées en des points (xi , yi) définissant une grille ou pas.

[X,Y] = meshgrid(-3:3);
V = peaks(X,Y);
figure;
surf(X,Y,V)
title('Original Sampling');

 

 

[Xq,Yq] = meshgrid(-3:0.25:3);
Vq = interp2(X,Y,V,Xq,Yq);
figure;
surf(Xq,Yq,Vq);
title('Linear Interpolation Using Finer Grid');