Outils de visualisation
Contents
function VisualisationTP() clear all; close all;
Choix de la fonction à minimiser
f = @f5;
Comparaison des méthodes selon différents points de départ.
for iter=1:5
Initialisation du point de départ de la recherche La dimension est restreinte à 2 pour la visualisation
n = 2; x = 3*randn(1,n);
Initialisation des paramètres
epsilon = 0.00001; maxiter = 10;
Initialisation des compteurs d'évaluation de la fonction et se son gradient
global NB_EVAL_FONC; global NB_EVAL_GRAD; NB_EVAL_FONC = 0; NB_EVAL_GRAD = 0;
Lancement avec recherche Dichotomique
hold off; disp('Avec recherche dichotomique'); lineaire = @dichotomic; tau = 0.1:0.4:0.9; for i=1:length(tau) tic; [xD,kc,xsuite] = bfgsVisu(f,x,epsilon,maxiter,lineaire,tau(i)); toc disp(['Nombre d''évaluations de la fonction : ',num2str(NB_EVAL_FONC), ' et de son gradient : ', num2str(NB_EVAL_GRAD)]); [t,v] = feval(f,x); plot3(x(:,1),x(:,2),v,'ko','MarkerSize',8,'Linewidth',2); hold on; v = zeros(1,size(xsuite,1)); for k=1:size(xsuite,1) [t,v(k)] = feval(f,xsuite(k,:)); end if (kc==maxiter) plot3(xsuite(:,1),xsuite(:,2),v,'gx-','MarkerSize',6,'Linewidth',2); disp('pas de convergence'); else plot3(xsuite(:,1),xsuite(:,2),v,'rx-','MarkerSize',6,'Linewidth',2); end NB_EVAL_FONC = 0; NB_EVAL_GRAD = 0; end visualiser2Db(f,xlim,ylim);
Avec recherche dichotomique Elapsed time is 0.026160 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 36 Elapsed time is 0.005930 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 35 pas de convergence Elapsed time is 0.002025 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 30

Avec recherche dichotomique Elapsed time is 0.003703 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 59 Elapsed time is 0.002937 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 42 pas de convergence Elapsed time is 0.003078 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 47

Avec recherche dichotomique Elapsed time is 0.004269 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 69 Elapsed time is 0.002625 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 36 pas de convergence Elapsed time is 0.002748 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 41

Avec recherche dichotomique Elapsed time is 0.003680 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 59 Elapsed time is 0.002989 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 43 pas de convergence Elapsed time is 0.003255 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 49 pas de convergence

Avec recherche dichotomique Elapsed time is 0.003079 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 48 Elapsed time is 0.002707 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 37 pas de convergence Elapsed time is 0.002874 seconds. Nombre d'évaluations de la fonction : 0 et de son gradient : 43

Lancement avec recherche Armijo
hold off; disp('Avec recherche Armijo'); NB_EVAL_FONC = 0; NB_EVAL_GRAD = 0; lineaire = @armijo; sigma = 0.05:0.2:0.45; for i=1:length(tau) for j=1:length(sigma) tic; [xA,kc,xsuite] = bfgsVisu(f,x,epsilon,maxiter,lineaire,tau(i),sigma(j)); toc disp(['Nombre d''évaluations de la fonction : ',num2str(NB_EVAL_FONC), ' et de son gradient : ', num2str(NB_EVAL_GRAD)]); [t,v] = feval(f,x); plot3(x(:,1),x(:,2),v,'ko','MarkerSize',8,'Linewidth',2); hold on; v = zeros(1,size(xsuite,1)); for k=1:size(xsuite,1) [t,v(k)] = feval(f,xsuite(k,:)); end if (kc==maxiter) plot3(xsuite(:,1),xsuite(:,2),v,'gx-','MarkerSize',6,'Linewidth',2); disp('pas de convergence'); else plot3(xsuite(:,1),xsuite(:,2),v,'rx-','MarkerSize',6,'Linewidth',2); end NB_EVAL_FONC = 0; NB_EVAL_GRAD = 0; end end visualiser2Db(f,xlim,ylim);
Avec recherche Armijo Elapsed time is 0.013869 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.005049 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.001371 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.000883 seconds. Nombre d'évaluations de la fonction : 8 et de son gradient : 12 Elapsed time is 0.000852 seconds. Nombre d'évaluations de la fonction : 8 et de son gradient : 12 Elapsed time is 0.001295 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 18 Elapsed time is 0.001545 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 22 Elapsed time is 0.001865 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 28 Elapsed time is 0.001578 seconds. Nombre d'évaluations de la fonction : 20 et de son gradient : 24

Avec recherche Armijo Elapsed time is 0.001889 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.001770 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.002321 seconds. Nombre d'évaluations de la fonction : 23 et de son gradient : 33 Elapsed time is 0.001755 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.001725 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.002043 seconds. Nombre d'évaluations de la fonction : 21 et de son gradient : 29 Elapsed time is 0.001845 seconds. Nombre d'évaluations de la fonction : 18 et de son gradient : 26 Elapsed time is 0.002086 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 30 Elapsed time is 0.001866 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 28

Avec recherche Armijo Elapsed time is 0.001907 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.001765 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.002785 seconds. Nombre d'évaluations de la fonction : 28 et de son gradient : 39 pas de convergence Elapsed time is 0.001722 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.001749 seconds. Nombre d'évaluations de la fonction : 16 et de son gradient : 24 Elapsed time is 0.002121 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 30 Elapsed time is 0.001865 seconds. Nombre d'évaluations de la fonction : 18 et de son gradient : 26 Elapsed time is 0.002075 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 30 Elapsed time is 0.002482 seconds. Nombre d'évaluations de la fonction : 30 et de son gradient : 37

Avec recherche Armijo Elapsed time is 0.002447 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 32 Elapsed time is 0.002334 seconds. Nombre d'évaluations de la fonction : 22 et de son gradient : 32 Elapsed time is 0.002749 seconds. Nombre d'évaluations de la fonction : 28 et de son gradient : 39 pas de convergence Elapsed time is 0.001851 seconds. Nombre d'évaluations de la fonction : 18 et de son gradient : 26 Elapsed time is 0.001896 seconds. Nombre d'évaluations de la fonction : 19 et de son gradient : 27 Elapsed time is 0.002670 seconds. Nombre d'évaluations de la fonction : 29 et de son gradient : 39 Elapsed time is 0.002185 seconds. Nombre d'évaluations de la fonction : 24 et de son gradient : 32 Elapsed time is 0.002538 seconds. Nombre d'évaluations de la fonction : 30 et de son gradient : 38 Elapsed time is 0.004344 seconds. Nombre d'évaluations de la fonction : 61 et de son gradient : 69

Avec recherche Armijo Elapsed time is 0.001964 seconds. Nombre d'évaluations de la fonction : 17 et de son gradient : 25 Elapsed time is 0.001823 seconds. Nombre d'évaluations de la fonction : 17 et de son gradient : 25 Elapsed time is 0.002392 seconds. Nombre d'évaluations de la fonction : 24 et de son gradient : 34 Elapsed time is 0.001357 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.001353 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.001502 seconds. Nombre d'évaluations de la fonction : 15 et de son gradient : 21 Elapsed time is 0.001347 seconds. Nombre d'évaluations de la fonction : 13 et de son gradient : 19 Elapsed time is 0.001601 seconds. Nombre d'évaluations de la fonction : 17 et de son gradient : 23 Elapsed time is 0.001991 seconds. Nombre d'évaluations de la fonction : 24 et de son gradient : 30

end end