Introduction à MATLAB Auteur : Serge Bedwani
Page 22
3.6 Interpolation au sens des moindres carrés
La commande p=polyfit(x,y,n) retourne le polynôme p de degré n permettant
dapprocher la courbe y=f(x) au sens des moindres carrés.
Afin den déduire lerreur entre la courbe expériementale et le modèle obtenu, on
dispose de la fonction polyval(p,x) qui retourne la valeur du polynôme p pour
toutes les composantes du vecteur ou de la matrice x.
Pour expliquer lapplication de ces fonctions, nous allons simuler une courbe
expériementale par une sigmoïde à laquelle nous superposons un bruit gaussien.
%intervalle de définition et calcul de la sigmoïde
x=-5:0.1:5;
%fonction sigmoïde bruitée
y=1./(1+exp(-x))+0.05*randn(1,length(x));
%tracé de la sigmoïde bruitée
plot(x,y)
title(fonction sigmoïde bruitée)
%polynôme dordre 1 dinterpolation
p=polyfit(x,y,1);
%valeurs du polynôme dinterpolation
polyn=polyval(p,x);
%tracé du polynôme dinterpolation
hold on
plot(x,polyn,-.)
%calcul de lerreur dinterpolation
err=y-polyn;
%tracé de la courbe de lerreur
plot(x,err,:)
grid
hold off
%affichage du polynôme dinterpolation
disp(polynôme dinterpolation)
p
var_err=num2str(std(err)^2);
disp([variance de lerreur dinterpolation : ,var_err])
On obtient les résultats suivants :
polynôme d'interpolation
p =
0.12926261594795 0.50178471754000
variance de l'erreur d'interpolation : 0.010239