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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| global M1
M1=csvRead('C:\...) // importation des données excel
M1(1:9,:) = []; //on enlève les 0 du fichier de valeurs expérimentales
err=[];
kk = [0.5e-11:0.01e-11:2e-11]; //intervalle de K
bb = [1.2:0.01:1.8];// intervalle de béta
//decsig = 0.20e-9; //0.20=>527845 //0.12=>7057308 // 0.18=>860977 //0.21 =>609155 // 0.24=>1838028
decsig = [0.17e-9:0.001e-9:0.23e-9]; // décalage de sigma crée
//decsig = 0; //si LS classique
for idec = 1:length(decsig)
mprintf('\n valeur de decalage : %e',decsig(idec));
for ikk = 1:length(kk)
err = [];
for ibb=1:length(bb)
// === least squares (LS) clasiques
//err(ibb) = sum((M1(:,3) - kk(ikk)*M1(:,2).^(-bb(ibb))).^2);
// === LS avec decalage en sigma
err(ibb) = sum((M1(:,3) - kk(ikk)*(M1(:,2)-decsig(idec)).^(-bb(ibb))).^2);//moindres carrés avec nouvelle fonction
// === LS en relatif
//err(ibb) = sum( ((M1(:,3) - kk(ikk)*M1(:,2).^(-bb(ibb)))./M1(:,3) ).^2 );
// === LS en relatif avec decalage en sigma
//err(ibb) = sum( ((M1(:,3) - kk(ikk)*(M1(:,2)-decsig).^(-bb(ibb)))./M1(:,3)) .^2);
end
[emin,imin] = min(err);
errmin(ikk) = emin;
ibbmin(ikk) = imin;
end
[emin,imin]=min(errmin);
kkopt(idec) = kk(imin);
bbopt(idec) = bb(ibbmin(imin));
LSmin(idec) = emin;
end
[XXX,imin]=min(LSmin);
mprintf('\r valeur optimal de K : %e',kkopt(imin))
mprintf('\n valeur optimale de beta : %e',bbopt(imin))
mprintf('\n valeur optimale de decalage : %e',decsig(imin))
mprintf('\n valeur de l''erreur : %e', LSmin(imin))
kkold = 7.07e-7;
bbold = 1.027;
clf
plot2d(M1(:,2),[M1(:,3), kkopt(imin)*(M1(:,2)-decsig(imin)).^(-bbopt(imin))]) |
Partager