% fait le fit de sin(x) sur -pi/2, pi avec bruit uniforme % exercice 7 du TD 1 du Master IAC 2010 % tronc commun ASO (Apprentissage Statistique et Optimisation) function [erreurTrain erreurTest] = fitSinusBruitee(nbPoints, degre, bruit, affichage=0) % paramtres % nbPoints : nombre de points % degre : degr de l'approximation polynomiale % bruit : niveau de bruit (uniforme) % affichage : fautil afficher ou pas % % retour % erreur : erreur au sens des moindres carrs % x=[-pi/2:pi/nbPoints:pi]; y=sin(x); trainData=y+bruit*(2*rand(1,size(x,2))-1); testData=y+bruit*(2*rand(1,size(x,2))-1); % Calculate fit parameters [p,ErrorEst] = polyfit(x,trainData,degre); % disp("Le polynme") ; disp (p); % Evaluate the fit pop_fit = polyval(p,x); erreurTrain = sqrt(sumsq(pop_fit-trainData)); erreurTest = sqrt(sumsq(pop_fit-testData)); % disp(['Norme de l''erreur ' num2str(erreur)]); % Plot the data and the fit if (affichage) plot(x,pop_fit,'-',x,trainData,'+',"MarkerSize",15,x,testData,'go',"MarkerSize",15,x,y,"r-"); endif % pause return ;