1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| % abscisse des données
xdata = [1:20 1:20 1:20];
% paramètres de la fonction
A1 = 4;
B1 = 0.132;
c = [ones(1,20) ones(1,20)*100 ones(1,20)*1000]; % Ici c représente Pin
% Calcul d'un set de données en y ajoutant un peu d'aléatoire
ydata = (A1*3.6822*xdata+B1*32.1233*xdata.^2+c)+((-1)^(round(rand))*rand(1,60)*50);
% Affichage des données
figure
plot(xdata(1:20),ydata(1:20),'ro');
hold on
plot(xdata(21:40),ydata(21:40),'go');
plot(xdata(41:60),ydata(41:60),'ko');
% Ajustement des paramètres
x = lsqcurvefit(@(x,xdata) myfun(x,xdata,c),[0;0],xdata,ydata)
% Calcul des nouvelles valeurs en fonction des nouveaux paramètres
ydata2 = (A1*x(1)*xdata+B1*x(2)*xdata.^2+c);
% Affichage des données
figure
plot(xdata(1:20),ydata(1:20),'ro');
hold on
plot(xdata(21:40),ydata(21:40),'go');
plot(xdata(41:60),ydata(41:60),'ko');
plot(xdata(1:20),ydata2(1:20));
plot(xdata(21:40),ydata2(21:40));
plot(xdata(41:60),ydata2(41:60)); |
Partager