plot and save sous matlab
bonjour a tous
j'ai trois problèmes ou questions
on considère le code suivant par exemple
Code:
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
|
x1=-1.2; %point de départ imposé par mon énoncé:
y1=1; % P=[-1.2,1]
T=70;
RepetitionTfixe=0; %compteur à zéro
xbest=-1.2; % la meilleur solution est pour l'instant le pt de départ
ybest=1;
n=4;
while(T>0.01)
while(RepetitionTfixe<50)
x2= x1 + ( (rand(1,1)-rand(1,1))*n); %recherche d'un point voisin
y2= y1 + ( (rand(1,1)-rand(1,1))*n);
Delta=Rosenbrock(x2,y2)-Rosenbrock(x1,y1); %calcul du delta
if Delta<0
x1=x2;
y1=y2;
Gamma=Rosenbrock(xbest,ybest)-Rosenbrock(x1,y1);
if Gamma>0
xbest=x1;
ybest=y1;
end
else
p=rand(1,1); % on tire aléatoirement p entre 0 et 1
if p< exp(-Delta/T) % critère de metropolis
xbest=x2; % on sauve les valeurs
ybest=y2;
end
end
RepetitionTfixe=RepetitionTfixe+1;
end
T=0.99*T; % une méthode parmi d'autre de "cooling schedule"
n=0.99*n; % on diminue l'intervalle de recherche du point voisin
RepetitionTfixe=0; % remise à zéro du compteur une fois les 50 répétitions
plot(T,f_best)
end
[Rosenbrock(xbest,ybest) xbest ybest] |
où la fonction rosenbrock est(f(x,y)=100 (x²-y)²+(1-x)²)
1- je veux réécrire le code avec la notation f(x1,x2), ci facile mais pour moi je trouve le du conditions initiales est ce que je peut ecrire x11=-1.2 et x21=1 au lieu de x1=-1.2,y1=1.
2- je veux ploter dans la meme fenetre ( graphe) la courbe de ce code avec la courbe un autre code.
3-je trouve les resultats (lors de la repetitions du pro)par exemple
ans=
1 2 3
ans=
4 5 6
ans=
7 8 9
ans=
........
50 run
je veux sauvgarder tou ci resultat dans tableau quelle est la cammande
et merci d'avance