La fonction polyfit() sous Matlab

Laissez-moi vous présenter une fonction particulièrement astucieuse de Matlab : polyfit(). Elle est conçue pour déterminer un polynôme s'adaptant parfaitement à une série de données.

polyfit(Y)

Cette fonction utilise comme argument un tableau qui contient vos données.

Considérons, par exemple, ce jeu de données :

>> X = [ 1 2 3 4 5 6 ]
>> Y = [ 3 8 6 9 7 8 ]

Pour représenter graphiquement cette série, la fonction plot(X,Y) est idéale.

>> plot(X,Y)

Voici le graphique obtenu :

tracé de la série de données

Pour ajuster un polynôme de premier degré à ces données, il suffit d'utiliser polyfit(X,Y,1). Cette fonction retourne les coefficients du polynôme.

>> P = polyfit(X,Y,1)

Le résultat se présente ainsi :

P =
0.71429 4.33333

Ces chiffres correspondent aux coefficients du polynôme de premier degré :

$$ P_1(x) = 0.71429 \cdot x + 4.33333 $$

Pour calculer les valeurs du polynôme à chaque point du tableau X, utilisez la fonction polyval(), en lui passant les coefficients du polynôme et le tableau X.

>> polyval(P,X)

La fonction renvoie les valeurs du polynôme pour chaque élément de X :

ans =
5.0476 5.7619 6.4762 7.1905 7.9048 8.6190

Pour visualiser les données et le polynôme sur un plan cartésien, rien de mieux que la fonction plot().

 

plot(X,Y,X,polyval(P,X))

Ce polynôme de premier degré (linéaire) représente une approximation linéaire de la série de données.

fonction polynomiale linéaire

 

Exemple 2

Si maintenant votre objectif est de déterminer un polynôme de second degré pour ces données, il suffit d'utiliser polyfit() avec le paramètre 2.

>> P = polyfit(X,Y,2)

Cela vous fournit les coefficients du polynôme de second degré, à utiliser avec polyval() pour les valeurs correspondantes de chaque élément de X.

P =
-0.35714 3.21429 1.00000

Voici les coefficients obtenus pour le polynôme de second degré :

$$ P_2(x) = -0.35714 \cdot x^2 + 3.21429 \cdot x + 1.0 $$

La fonction polyval(P,X) vous permettra de calculer les valeurs du polynôme.

>> polyval(P,X)

Le résultat est un tableau des valeurs du polynôme pour chaque point de X :

ans =
3.8571 6.0000 7.4286 8.1429 8.1429 7.4286

Comme précédemment, utilisez la fonction plot() pour afficher les données et le polynôme sur un plan cartésien.

plot(X,Y,X,polyval(P,X))

Le polynôme de second degré (ligne rouge) offre une meilleure approximation de la série de données.

polynôme du deuxième degré

Exemple 3

Pour finir, vous pouvez répéter le processus avec un polynôme de troisième degré.

>> P = polyfit(X,Y,3)

Voici les coefficients obtenus :

P =
0.18519 -2.30159 9.08466 -3.66667

Ces coefficients correspondent au polynôme de troisième degré.

$$ P_3(x) = 0.18519 \cdot x^3 -2.30159 \cdot x^2 + 9.08466 \cdot x - 3.66667 $$

Utilisez polyval(P,X) pour obtenir les valeurs du polynôme.

>> polyval(P,X)

La fonction fournit les valeurs du polynôme pour chaque point de X :

ans =
3.3016 6.7778 7.8730 7.6984 7.3651 7.9841

Visualisez l'ensemble sur un graphique cartésien avec la fonction plot().

plot(X,Y,X,polyval(P,X))

Le polynôme de troisième degré (ligne rouge) s'adapte encore mieux aux données.

polynôme du troisième degré

Plus le degré du polynôme est élevé, plus l'ajustement aux données est précis. Voici donc un outil indispensable pour adapter au mieux un polynôme à vos données sous Matlab.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Mathématiques avec Matlab

Calcul

FAQ